某翻译平台--sign和请求体解密逆向分析(脱敏版)

声明


本文章中所有内容仅供学习交流使用,不得用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关。

若擅自使用本文讲解的技术而导致的任何意外,作者均不负责。文中若有侵权内容,请立即联系作者删除!

〇:友情提示


  1. 本文章已在微信公众号【逆向学习日记】发布,若在【优快云】中无法全部查看,可以直接点击【某翻译平台–sign和请求体解密逆向分析(脱敏版)】查看。
  2. 在微信公众号【逆向学习日记】也可以阅读更多文章。
  3. 感谢关注微信公众号和阅读文章的朋友!

Ⅰ:目标


  1. 网址:aHR0cHM6Ly93d3cuZGVtby5jb20vdHJhbnNsYXRl
  2. 接口:aHR0cHM6Ly9pZmFueWkuZGVtby5jb20vaW5kZXgucGhwP2M9dHJhbnMmbT1meSZjbGllbnQ9NiZhdXRoX3VzZXI9a2V5X3dlYl9uZXdfZmFueWkmc2lnbj0uLi4=
  3. sign加密 content解密

Ⅱ:抓包分析


  1. 首先通过观察接口请求的参数以及响应体数据,我们发现请求参数sign和响应体的content是加密了,这就需要我们进行分析加解密的算法逻辑。在这里插入图片描述在这里插入图片描述

  2. 我们本次尝试使用通过 url 关键字定位,我们直接搜索 /index.php 。在这里插入图片描述

  3. 通过观察,很明显第一个js中包含的不像我们的请求接口 url ,那么我们直接看第二次 js,直接点击进去,在对应的位置打上断点,并重新请求。在这里插入图片描述

  4. 可以发现断点断在此处,其中 r 就是sign的值,我们就要看 r 的生成过程,向上看可以发现 r 的生成过程,我们直接修改复刻在本地js文件中并运行。在这里插入图片描述

  5. 发现 m() 的函数未定义,此时需要看 m() 的逻辑,并补上。 直接在m() 处打上断点,并重新发送请求。在这里插入图片描述

  6. 直接在控制输入 m() 看他的函数体,并定位到位置打上断点,并释放断点。在这里插入图片描述在这里插入图片描述

  7. 此时我们观察他的上下代码,可以看到他是webpack打包的,此时可以我们直接看他的加载器以及加载的模块,但是在这里,我们直接单步一直的跟,直到在reset的方法中有 this._doRest 方法。该方法有很明显的MD5字眼,我们有理由怀疑是MD5算法,在这里我们直接先当作MD5处理,复刻在本地js中。在这里插入图片描述在这里插入图片描述在这里插入图片描述

  8. 接着再跑本地js代码,发现报错,但是观察浏览器的值就是固定的,从右边的调用栈就可以发现,当然也可以追踪他的算法,就是浏览器加载的时候生成的,我们把固定值替换,再跑代码。在这里插入图片描述在这里插入图片描述在这里插入图片描述

  9. 可以看到浏览器和我们的目前生成的 r 的值是一样吗,但是继续报错,此时我们再继续补上缺少的代码。并执行js代码在这里插入图片描述在这里插入图片描述在这里插入图片描述

  10. 可以看到本地生成的值和浏览器的值是一样的。此时sign的加密算法就搞定了。

  11. 此时我们现在就要看响应体解密算法。通过观察代码发现,请求接口后面跟着的是then关键字,这就说明可能是异步,其中第一个函数的参数就是响应体。我们打上断点并释放到此处。在这里插入图片描述

  12. 发现 e 就包含我们的加密结果。我们直接看谁处理了 e 就行。可以看到是 x.B6 函数处理,我们直接看他的函数体,并断点进入。在这里插入图片描述

  13. 可以看到类似 AES 解密的样子,直接复刻本地js 先进行解密。在这里插入图片描述

  14. 可以看到解密成功,算法是AES解密无误

  15. 当然解密在这个网址中也有投机的办法,观察他的控制台,他居然把添加了埋点,并且把明文输出,这是我们就可以定位他所在js文件的地方。在这里插入图片描述在这里插入图片描述在这里插入图片描述

  16. 这也可以追踪到加解密的算法,前面的sign算法可以通过webpack方式解决。

Ⅲ:总结


本次逆向过程还算比较顺利,在以后的逆向过程中,可以观察是否有投机的办法,这也是很快定位的。需要具体调试网页,公众号【逆向学习日记】回复【某翻译】获取地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值