js md5加密_前端加密加签之sqlmap自动化测试

转载https://blog.csdn.net/weixin_39945679/article/details/111042227

d502ceffe94e249190ee5f5a527c4487.gif

文章来源:酒仙桥六号部队

前言

前阵子遇到某项目,在渗透测试过程,本想使用sqlmap测试一下站点有没有sql注入,无奈发现站点对携带的所有请求参数,做了前端加密并且对加密证书做MD5,一旦改包服务器就提示数据被篡改。于是我想到mitmproxy,可以让sqlmap将明文参数代理到mitmproxy然后使用手写的python脚本加密后发到服务器,从而实现自动化测试。

前置知识

AES 加密模式介绍

AES 加密的模式主要有五种:ECB (电子密码本模式)、CBC(密码分组连接模式)、CTR(计算器模式)、CFB(密码反馈模式)、OFB (输出反馈模式)。这五种工作模式主要是在加密器的使用上有所区别。在这里主要介绍下 ECB 和 CBC 这两种开发者最常用的两种加密方式。

ECB 模式

其使用方式是一个明文分组加密成一个密文分组,相同的明文分组永远被加密成相同的密文分组。直接利用加密算法分别对每个 64 位明文分组使用相同的 64 位密钥进行加密。每个明文分组的处理是相互独立的。

优点:

简单;

有利于并行计算。

缺点:

相同的明文块会加密成相同的密文块,安全性低。

CBC 模式

引入一个初始向量 IV,它的作用跟 MD5 加盐有些类似,可以防止相同的明文块加密成同样的密文块。IV 是初始向量,参与第一个明文块的异或,后续的每一个明文块,都与它前一个密文块相异或。这样就能保证相同的明文块不会被加密为相同的密文块。

优点:能隐蔽明文的数据模式,在某种程度上能防止数据篡改 , 诸如明文组的重放 , 嵌入和删除等,安全性高。

缺点:无法并行计算,性能相对 ECB 低,会出现错误传播 (errorpropagation)。

MitmProxy介绍

顾名思义,[mitmproxy](https://mitmproxy.org/) 就是用于 MITM 的 proxy,MITM 即中间人攻击(Man-in-the-middle attack)。用于中间人攻击的代理首先会向正常的代理一样转发请求,保障服务端与客户端的通信,其次,会适时的查、记录其截获的数据,或篡改数据,引发服务端或客户端特定的行为。

不同于 fiddler 或 wireshark 等抓包工具,mitmproxy 不仅可以截获请求帮助开发者查看、分析,更可以通过自定义脚本进行二次开发。举例来说,利用 fiddler 可以过滤出浏览器对某个特定 url 的请求,并查看、分析其数据,但实现不了高度定制化的需求,类似于:“截获对浏览器对该 url 的请求,将返回内容置空,并将真实的返回内容存到某个数据库,出现异常时发出邮件通知”。而对于 mitmproxy,这样的需求可以通过载入自定义 python 脚本轻松实现。

案例

在一次漏洞挖掘过程中,发现请求参数加密,并对加密参数做了MD5校验。我们该如何利用mitmproxy配置代理给sqlmap,并自动化将参数加密转发到服务器,让sqlmap正常工作。

发现加密

点击查询功能,使用burp抓包发现,请求参数做了加密。

8e62ba9a08113f6ea822b82fc3ad8ba7.png

逆向加密算法

右键查看登陆网页源代码寻找加密方法。

设置功能断点,点击查询发现使用的是AES加密。

98b072ff0ce30cf117cf469022f5d20c.png

获取aes加密的key和iv。

35552f20739c952a39f51d744150e1c2.png

站点还对密文和ID等做了MD5赋值给UVD参数。

a35d8cf904c6af26d1283e5c244aa849.png

这时候我们有了加密的大致思路。

明文 -> AES加密  -> 密文

密文 + _cssstyleuser + _formPageGuid  -> MD5

将密文和MD5同时传入服务器。

编写自动化脚本

写一个mitmproxy代理脚本实现对参数加密和加签。

7daf18d66d35fe330de1786eecb80f37.png

最后,启用mitmproxy代理并加载脚本。

mitmdump.exe -p 8080 -s [python脚本]

c10f0d8af1d9bafbf0b8aeccd227325b.png

启动sqlmap并设置mitmproxy的代理(注意需要将res.txt的密文参数替换成明文)。

python sqlmap.py -r res.txt --proxy=http://127.0.0.1:8080
      
      

61952748871271a06569da766a1f00d3.png

成功跑出了注入漏洞。

4b47a39a4edeb9d176b403ede8aa6bf9.png

总结

站点有时会通过加密或加sign等方式使自动化工具无法使用,当我们遇到加密参数时我们可以分析前端JS文件,逆向加密过程和加密方式。了解自动化工具的工作原理前提下,再借助可编程的WEB代理等工具,可以使自动化工具依旧可以用

参考资料

https://www.freebuf.com/sectool/146578.html用 Mitmproxy 辅助 Sqlmap 自动化利用特殊漏洞https://mitmproxy.org/mitmproxy官网手册
      
      

0320201bc83980083b56d42e2c409180.png

推荐文章++++

d84cc57086baade7589ced9d65f9bdf7.png

*利用sqlmap 获取管理员账号密码

*通过 selenium 和 flask 中转后利用 sqlmap 进行注入

*与 Sqlmap 结合攻击

3260d201ad654d4cf616e7d8c8e9961f.png

743630b3161c4de9c6195371c14fe864.gif

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

J0hnson666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值