如何测试接口是否存在SQL注入的漏洞?Sqlmap使用记录
- 运维笔记
- 4天前
- 111热度
- 0评论
PHP没写好,就很容易出现SQL注入的BUG,老司机也难免有翻车的时候,我也不例外。
于是在网上搜索许久,找到一款非常实用的测试工具:Sqlmap
Sqlmap
Github:https://github.com/sqlmapproject/sqlmap
Sqlmap是一个非常流行的开源工具,用于自动化SQL注入测试。它支持多种数据库管理系统,并提供了大量的选项来自定义测试过程。
1.安装使用
Sqlmap基于Python开发,运行的话可以直接拉取Git仓库的代码,通过命令行运行:
python sqlmap.py -u http://127.0.0.1:9506/sell/lists?shop=1
Sqlmap 将会自动识别出Get参数,执行Sql注入测试。
2.命令选项
指定自定义请求头:
python sqlmap.py -u http://127.0.0.1:9506/sell/lists?shop=1
--headers="Content-Type: application/jsonnAuthorization:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"
强制清除缓存重新开始:
python sqlmap.py -u http://127.0.0.1:9506/sell/lists?shop=1 --flush-session
指定测试深度,风险等级:
python sqlmap.py -u http://127.0.0.1:9506/sell/lists?shop=1 --level 5 --risk 3 --method POST
--data {"pageSize":30,"page":1,"name":"好香佬","depart":12,"start":["2024-11-07","2024-11-09"]}
指定日志输出目录:
python sqlmap.py -u "http://example.com/index.php?id=1" --dump --output-dir=/path/to/output
3.关于日志
结果将保存在指定的输出目录中,通常包括以下文件:
- data.json:包含提取的数据。
- log.txt:包含SQLMap的日志信息。
- dbs.txt:包含发现的数据库列表。