前端参数加密加签下的渗透测试解决方案


告别繁琐配置!用CloudX插件轻松破解加密加签请求

目录

  1. 痛点起源:为何需要这样的工具?
  2. 宝藏登场:CloudX项目简介
  3. 实战演示:一步步破解加密登录流程

    1. 靶场环境与抓包分析
    2. 前端逆向分析加密逻辑
    3. CloudX配置与规则设置
    4. 效果验证:重放与爆破测试
  4. 总结

痛点起源:为何需要这样的工具?

起因,最近一直苦于各种站点加密加签以及防重放机制下,如何配合bp实现便捷的重放,爆破测试。网上找了很多,但都要么配置繁琐,要么需要写就代码,不够简便。要么无法配合bp只能单次,太麻烦了。

宝藏登场:CloudX项目简介

于是我发现了一个宝藏项目,作者出于这一痛点,开发了个bp插件。

项目链接: https://github.com/cloud-jie/CloudX

下面演示一下作用。

实战演示:一步步破解加密登录流程

1. 靶场环境与抓包分析

加解密靶场

进入发现是个spring+vue的,开局一个登陆框,这在现实渗透测试非常常见。

webpack打包,

登录抓包,发现参数名和参数一起全是密文,响应包也是加密,请求头存在时间戳,请求id,签名。(如图框中所示)

这极大限制了我们进行重放攻击,请求id唯一,需要实时获取,时间戳也需要实时,签名也需要对应生成参数内容生成。
在这种情况下,我们前端逆向在拿到加解密逻辑后进行重放攻击需要同时对三个请求头实时获取,请求体也需要对应加密,这是个难点。难不成我只能拿到了一个个发放然后解密单独看吗?这非常麻烦不方便。

2. 前端逆向分析加密逻辑

js逆向找出加密逻辑:
看包/api/user/login这个接口发送数据
直接搜索没找到,删除到login

css不用管,在js中下断点。断住

发现上面就是sign,requestId,timestamp的获取逻辑,
r获取一个时间戳,n转成json,i为p函数,别扣了进去

发现p函数就是生成32个随机的十六进制字符串
s就是三个拼接起来的md5值。
请求体是l函数,ok别扣了,进去

aes的cbc加密,密钥1234567891234567,iv:1234567891234567 填充(padding):Pkcs7
欧克现在知道了加密逻辑

3. CloudX配置与规则设置

工具使用:

发送到插件上

请求体,双击选择aes

按照其加密选,填充这个自动就可以解密出,然后添加。

同样设置请求头


选择32位 然后添加规则(但是这里有个问题,他是32为随机数字加26位字母,网站是“0123456789abcdef”随机,但是发送验证没问题。)
sign也按照逻辑添加

调整到和js一样的顺序

配置规则如下

4. 效果验证:重放与爆破测试

发送到重放模块,直接明文,可以正常测试

发送到爆破模块

明文正常爆破

总结

于是这个工具就来了,完美解决了我的痛点,可以配合bp进行便捷的加密重放和爆破了。

声明:智爱的博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 前端参数加密加签下的渗透测试解决方案


手握日月摘星辰,世间无我这般人