SQLmap简介:
sqlmap是一种开源的渗透测试工具,可以自动检测和利用SQL注入漏洞以及接入该数据库的服务器。它拥有非常强大的检测引擎、具有多种特性的渗透测试神器、通过数据库指纹提取访问底层文件系统并通过外带连接执行命令。
支持的数据库:MySQL,Oracle, PostgreSQL, SQL Server, Microsoft Microsoft Access, IBM DB2, SQLite, Firebird, Sybase and SAP MAXDB
sqlmap五种不同的注入模式:
UNION query SQL injection(可联合查询注入)
uError-based SQL injection(报错型注入)
uBoolean-based blind SQL injection(布尔型注入)
uTime-based blind SQL injection(基于时间延迟注入)
uStacked queries SQL injection(可多语句查询注入)
设置目标的URL:-u /--url 最基本格式 sqlmap -u “http://www.target.com/index.php?id=1” • -m 从文本中获取多个目标扫描,但是每一个一个 url. sqlmap -m urllist.txt • -r 从文件中加载 HTTP 请求,这样的话 就不需要在去设定cookie,POST 数据 ......
sqlmap常用参数:
--dbs 返回当前连接的数据库
--current-db 返回当前网站数据库的数据库用户
-D 指定数据库系统的数据库名
--tables 列举数据库表
-T 指定数据库表名
--columns 列举数据库表中的字段
-C 指定数据库表中的字段名
--dump 获取整个表的数据
设置回显等级:
参数:-v 默认为1:
0、只显示python错误以及严重的信息。
1、同时显示基本信息和警告信息。(默认等级)
2、同时显示debug信息。
3、同时显示注入的payload。
4、同时显示HTTP请求。
5、同时显示HTTP响应头。
6、同事显示HTTP响应页面。
设置HTTP数据包相关参数
参数:--data 此参数是把数以POST方式提交,sqlmap会像检测GET参数一样检测POST过去 的参数。
python sqlmap.py -u "http://www.target.com/vuln.php" --data="id=1"
参数:--cookie 当web需要登录的时候,需要我们抓包获取cookie参数,然后复制出来,加到--cookie参数中。
设置HTTP数据包相关参数
HTTP User-Agent 头
参数:--random-agent 会从sqlmap/txt/user-agents.txt中随机产生User-Agent头。
sqlmap -u “http://www.target.com” --level 3 --andom-agent --dbs
sqlmap 检查uesr-agent中的注入点, level>=3才会去检查user-agent头是否存在注入漏洞
设置探测等级:
--level 共有五个等级,默认为1,sqlmap使用的payload可以在xml/payloads.xml中看到,自己也可以根据相应的格式添加自己的payload。
level>=2的时候就会测试HTTP Cookie。
level>=3的时候就会测试HTTP User-Agent/Referer头。
level=5 的时候会测试HTTP Host。
进入数据库的命令参数:
--users 列数据库管理用户,当前用户有权限读取包含所有用户的表的权限时,就可以列出所有管理用户。
--current-user 在大多数据库中可以获取到管理数据的用户。
--is-dba 判断当前的用户是否为管理,是的话会返回True。
--proxy 指定一个代理服务器 eg: –proxy http://xxxxx:8080
--os-shell 前提:需要网站的物理路径,其次是需要有FIILE权限。