如何测试接口是否存在SQL注入的漏洞?Sqlmap使用记录

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:包含发现的数据库列表。