0x00前言
本篇文章作者YanXia,本文属i春秋原创奖励计划,未经许可禁止转载。地址https://bbs.ichunqiu.com/thread-63328-1-1.html
在某次项目中遇到了一个请求包与返回包数据加密的情况。相信各位在平常也可能会遇到,随写下此文与诸君分享(请原谅厚码)
0X01正文
我们先随便找一处功能点在下断点前我先抓个包给你们看看
平常遇到了是不是就想放弃了?莫慌,待我操作一番。
我们先在功能中下个断点
点击获取验证码
可以发现已经在断点处暂停了
分别为
- 继续执行F8
- 跳过下一个函数调用F10
- 进入下一个函数调用F11
- 跳出当前函数SHIFT+F11
- 单步调试F9
这里我们直接先跳到下个函数调用
一直F10一直到看起来像加密的函数
从名字上看就可以知道这是个DES加密
跟进去看看
这里直接就知道了。这个网站是用DES加密,模式为ECB padding为Pkcs7以及key的值。并且加解密函数也都有了,也就不用继续再跟了。
我们用console控制台调试一下
可以发现成功解密了
再试试调用下加密模块
可以发现是一样的。
那么这个网站的加密对于我们来说跟没有是一样的了,似入无人之境。我们再解密下刚才的返回包看看说了什么
可以发现也成功的解密了出来。
一般这种加密的网站只要能解密出来就很容易存在些漏洞。of course这里也是有滴。
我就直接开讲了,不多逼逼废话了。
这里我们来到修改密码的功能点
有一个很经典的resetPwdstep1.jsp
尝试改成2看看
可以,很经典。不过就算这样抓包,我们还是不知道请求包该怎么构造(看上面就知道比较复杂)。我们先正常请求获取波构造
可以看到这里头待有个个加密data解密下看看
sjh000代表了手机号 yzm000则是验证码。不过问题不大。我们把验证码修改成000000看看
666直接注册成功了(其实经过测试。在resetPwdstep2.jsp下只要验证码不为空。任意六位数字都可以导致密码修改成功,也是醉了 )
为了更方便点呢。其实直接抓修改密码的包进行重复发包即可(对于验证码的校验仅在step1)
dlmm00是设置的密码 利用md5进行加密
LIKE THIS
而且在该注册处还存在用户枚举以及横向手机号短信轰炸漏洞,可以利用这个地方对已注册手机号进行枚举,然后搭配任意密码修改即可~~~
0x02结尾
本次分享就到这里。
本文章仅供安全人员学习攻防技术,请勿用于任何非法行为!!!**
本文章仅供安全人员学习攻防技术,请勿用于任何非法行为!!!
本文章仅供安全人员学习攻防技术,请勿用于任何非法行为!!!