| 
TA的每日心情|  | 奋斗 2023-5-13 09:25
 | 
|---|
 签到天数: 89 天 [LV.6]常住居民II | 
 
| 一.前言 网址:aHR0cHM6Ly93d3cuc3VwZXJiZWQuY24v
 技术:手扣去除花指令
 
 二:寻找sign值
 我们打开F12抓包,然后随便上传个图片,抓到一个post包。post包里面有好几个值,只有sign是加密的。
 
 1   通过关键词搜索sign并找不到我们想要的关键地方。所以我选择使用xhr断点。
 
 三:使用XHR断点寻找关键位置
 
 我们把网址添加到xhr断点位置之后上传图片。
 
 2   发现断点已经断了下来
 
 3   将混淆后的代码选中可以发现是一个send函数,那么小括号里面的数据应该就是发送的数据了。
 
 4   在本文件中搜索_0x568870,发现总共有12个。从第665行可以发现new FormData(),_0x568870是一个对象,从746到752行可以看出数据一个一个被append添加到_0x568870对象里面。
 
 5   但是我们要寻找的是sign,sign到底在哪里呢,混淆的代码我一个个查看了发现sign在749行,被混淆过了,所以通过关键词搜索不到。
 
 6   在749行下断点按F8,便可以查看到sign的数值_0x4e837a,_0x4e837a是从上面第745行传进来的。也可以看到很亮眼的记个大字MD5,便可以判断那便是sign加密的函数。但是那段代码是混淆过的,我们需要解混淆。
 
 7   四:手撕去除花指令
 
 将那一行加密代码扣下来。第一个函数_0x25869b['UFsia']调用了后面的参数(md5, _0x25869b[_0x1ee3('119', '@)]$')](_0x25869b[_0x1ee3('11a', 'a]$L')](_0x25869b['KWyrc'](_0x4fe853, '_'), _0x38facc['ts']), '_') + _0xd5726e);我们需要去查看_0x25869b['UFsia']究竟有什么用,做了什么功能。
 
 8   将断点下到第745行,然后便去控制台打印_0x25869b['UFsia']
 
 9   发现_0x25869b['UFsia']是一个函数,而且函数的作用是把第二个参数传进第一个参数里面然后返回。
 
 10   第一次代码改写:
 
 11   仔细观察改写后的代码可以发现是_0x25869b[_0x1ee3('119', '@)]$')]函数调用了后面的参数_0x25869b[_0x1ee3('11a', 'a]$L')](_0x25869b['KWyrc'](_0x4fe853, '_'), _0x38facc['ts']), '_'
 那我们便继续寻找_0x25869b[_0x1ee3('119', '@)]$')]函数,在控制台打印以后双击便可查看函数,发现这个函数的作用是第一个参数与第二个参数相加。继续改写这段代码
 
 12   第二次代码改写:
 
 13   仔细观察改写后的代码可以发现是_0x25869b[_0x1ee3('11a', 'a]$L')]函数调用了后面的参数_0x25869b['KWyrc'](_0x4fe853, '_'), _0x38facc['ts']
 那我们便继续寻找_0x25869b[_0x1ee3('11a', 'a]$L')]函数,在控制台打印以后双击便可查看函数,发现这个函数的作用是第一个参数与第二个参数相加。继续改写这段代码
 
 14   第三次代码改写:
 
 15   仔细观察改写后的代码可以发现是_0x25869b['KWyrc']函数调用了后面的参数_0x4fe853, '_'
 那我们便继续寻找_0x25869b['KWyrc']函数,在控制台打印以后双击便可查看函数,发现这个函数的作用是第一个参数与第二个参数相加。继续改写这段代码
 
 16   第四次代码改写:
 
 17   花指令已经清除的差不多了,只需要找剩下的值替换进去就可以拿到sign的值了。
 在控制台输出_0x4fe853,_0x38facc['ts']和 _0xd5726e的值
 
 18   第五次代码改写:
 
 19   解完混淆发现函数是一个md5里面传入一个未定义和两个下划线跟两段数字
 将值进行md5加密跟参数进行对比,未定义是token,因为我们没有登录所以没有token,登录之后就不是未定义了,中间那段数字是ts是段时间戳,第三段数字是参数nonce,而sign就是几个参数拼接起码md5加密的。
 
 20   六.结尾
 此教程仅供学习交流使用,如有侵犯权益,联系作者删除。
 
 | 
 评分
查看全部评分
 |