ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

018-混淆案例:gov电子采购网

018-混淆案例:gov电子采购网

案例网址:gov电子采购网(RSA+sha1+md5)

找加密参数

通过py代码发现这些参数需要带,加密参数为:nsssjss和sign:

刷新网页然后重新翻页触发接口,通过搜索可确定——其他接口没有这两数据那说明这两个参数值都需要逆向

Nsssjss参数加密位置+复现逻辑

先来定位Nsssjss参数,通过关键字搜索即可:

找到之后开始分析,首先是入参,看样子就时间戳会发生变化:

然后看函数:

看着像是RSA,进来看:

标准RSA,直接开始复现加密逻辑,根据刚才的分析代码可写成这样:

然后RSA加密最重要的密钥还没有,找一下密钥:

会是其他接口传入的吗,刷新页面搜索一下有没有数据包响应值中存在密钥:

也没有,那就是前端生成,要么是混淆字符串拼接密钥,要么就是算法生成,我们找一下t生成的地方:

p函数就在上方,然后找一下入参o:

往上面继续翻就找到了,全扣下来,运行:

这个参数简单,下面开始sign参数

sign参数加密位置+复现逻辑

sign参数可能比较难搜,直接xhr看看:

跟到异步前,发现外面没有加密的参数传入了:

那就进函数中看看是不是拦截器:

标准拦截器,一步一步往下运行看看哪里出现加密值:

然后发现运行过了此行之后就出现加密值了,所以打断点再次运行过来看看:

控制台输出确认一下:

那就进去看:

混淆的,但是一点一点找赋值位置就会发现加密位置:

r生成位置打断点后分析,入参为字符串拼接可以直接看:

看样子也就是时间戳在变化,可以多触发几次对比对比,然后开始分析p和x函数:

函数都有混淆,看不出什么,所以可以看看函数执行后的结果来判断:

很可能是sha1和md5组合,验证一下:

这里直接手搓即可,但是我像抠一下混淆,先将代码拿到本地(可以全拿下来之后通过搜索来确定在那个函数,然后其他全都删掉):

这里面有两个大数组,两个打乱数组的方法,还有两个解密函数,我们扣那个sha1的吧(p函数,其实就是o函数),f是解密函数:

然后找大数组(p先执行那应该是在上面的,不行就一个个试试):

然后找打乱数组的函数,方法:看那个函数传了大数组的函数,那个就是打乱大数组的放方法:

全拿下来试试:

开补:

打印看看:

没毛病,兄弟,下面复现逻辑:

md5还不好写?拿下✌

py调用

result:

小结

混淆只是降低代码可读性,其实该怎么逆向怎么逆向就行,多注意关键字,如果不想分析或者是自创算法和魔改算法就记住三个点:大数组,(自执行)打乱数组的函数,解密函数,文章如有问题请及时提出,加油加油

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进