当前位置:网站首页>web逆向之丁香园
web逆向之丁香园
2022-08-10 20:55:00 【不爱打代码的程序员】
文章目录
1.比较常规的web逆向流程,找关键词sign,查找发现痕迹比较多,换noncestr
2.找到sign=o,进入api()函数
3. 缺什么补什么,不需要补环境
4.node环境右键运行现成的代码
function wordsToBytes(e) {
for (var t = [], n = 0; n < 32 * e.length; n += 8)
t.push(e[n >>> 5] >>> 24 - n % 32 & 255);
return t
}
n = {
utf8: {
stringToBytes: function stringToBytes(e) {
return n.bin.stringToBytes(unescape(encodeURIComponent(e)))
},
bytesToString: function bytesToString(e) {
return decodeURIComponent(escape(n.bin.bytesToString(e)))
}
},
bin: {
stringToBytes: function stringToBytes(e) {
for (var t = [], n = 0; n < e.length; n++)
t.push(255 & e.charCodeAt(n));
return t
},
bytesToString: function bytesToString(e) {
for (var t = [], n = 0; n < e.length; n++)
t.push(String.fromCharCode(e[n]));
return t.join("")
}
}
};
r = n;
a = r.utf8;
i = r.bin;
function bytesToWords(e) {
for (var t = [], n = 0, r = 0; n < e.length; n++,
r += 8)
t[r >>> 5] |= e[n] << 24 - r % 32;
return t
}
l = function sha1(e) {
e.constructor == String ? e = a.stringToBytes(e) : "undefined" !== typeof t && "function" == typeof t.isBuffer && t.isBuffer(e) ? e = Array.prototype.slice.call(e, 0) : Array.isArray(e) || (e = e.toString());
var n = bytesToWords(e)
, r = 8 * e.length
, i = []
, l = 1732584193
, s = -271733879
, c = -1732584194
, u = 271733878
, f = -1009589776;
n[r >> 5] |= 128 << 24 - r % 32,
n[15 + (r + 64 >>> 9 << 4)] = r;
for (var d = 0; d < n.length; d += 16) {
for (var p = l, h = s, y = c, m = u, b = f, v = 0; v < 80; v++) {
if (v < 16)
i[v] = n[d + v];
else {
var g = i[v - 3] ^ i[v - 8] ^ i[v - 14] ^ i[v - 16];
i[v] = g << 1 | g >>> 31
}
var k = (l << 5 | l >>> 27) + f + (i[v] >>> 0) + (v < 20 ? 1518500249 + (s & c | ~s & u) : v < 40 ? 1859775393 + (s ^ c ^ u) : v < 60 ? (s & c | s & u | c & u) - 1894007588 : (s ^ c ^ u) - 899497514);
f = u,
u = c,
c = s << 30 | s >>> 2,
s = l,
l = k
}
l += p,
s += h,
c += y,
u += m,
f += b
}
return [l, s, c, u, f]
}
function bytesToHex(e) {
for (var t = [], n = 0; n < e.length; n++)
t.push((e[n] >>> 4).toString(16)),
t.push((15 & e[n]).toString(16));
return t.join("")
}
function api(e, t) {
var n = wordsToBytes(l(e));
return t && t.asBytes ? n : t && t.asString ? i.bytesToString(n) : bytesToHex(n)
};
function randomWords() {
for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 8, t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "alphabet", n = "", r = {
alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
number: "0123456789"
}[t], o = 0; o < e; o++)
n += r.charAt(Math.floor(Math.random() * r.length));
return n
}
noncestr = randomWords(8, "number")
console.log(noncestr)
timestamp = Date.now()
console.log(timestamp)
c = "xxx"+noncestr+"&serverTimestamp=0×tamp="+timestamp
sign = api(c)
console.log(sign)
边栏推荐
- ArcPy读取Excel时序数据、批量反距离加权IDW插值与掩膜
- 【Windows】你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问,这些策略可帮助保护你的电脑
- 睡前故事|用Bitmap与AST做一个配置化时长系统
- Object.assign用法 以及 与$.extend的区别
- 每次打开chrome会跳出What's new
- C语言详解系列——关于调试那些事
- Before implementing MES management system, these three questions to consider
- 突破次元壁垒,让身边的玩偶手办在屏幕上动起来!
- ACM模板笔记:最长不下降/上升子序列
- Are you hungry - Institution tree radio
猜你喜欢
Are you hungry - Institution tree radio
Knowledge map Knowledge Graph
paddle 35 paddledetection保存训练过程中的log信息
数字化转型:如何引导创新领导者
带你一文读懂SaaS版多租户商城系统对多品牌企业的应用价值
【vulhub】MySql身份认证绕过漏洞复现(CVE-2012-2122)
用示波器揭示以太网传输机制
svg+元素js实现在图片上描点成框,并获取相对图片的坐标位置
Detailed explanation and use of each module of ansible
win7开机有画面进系统黑屏怎么办
随机推荐
A fullGC problem troubleshooting caused by groovy
The evolution history of Go programmers
快消品行业经销商协同系统:实现经销商可视化管理,提高沟通执行效率
变量和它的特性——《mysql 从入门到内卷再到入土》
TortoiseSVN小乌龟的使用
实施MES管理系统前,这三个问题要考虑好
一次由groovy引起的fullGC问题排查
2021DozerCTF
C. Rotation Matching
npm warn config global `--global`, `--local` are deprecated. use `--location=global` instead.
二级指针的简单理解
【nvm】【node多版本管理工具】使用说明和踩坑(exit status 1)
关于 NFT 版权保护的争议
微擎盲盒交友变现-vp_ph打开慢优化
睡前故事|用Bitmap与AST做一个配置化时长系统
基于Pix4Dmapper的空间三维模型重建应用——空间分析选址
【CMU博士论文】视频多模态学习:探索模型和任务复杂性,152页pdf
流程控制结构——《mysql 从入门到内卷再到入土》
2021DASCTF实战精英夏令营暨DASCTF July X CBCTF 4th
日期选择器组件(限制年份 设定仅展示的月份)