kali怎么挖php漏洞_用sqlmap检测php注入型漏洞【方法】

14次阅读

sqlMap 不挖 php 漏洞,只检测利用 SQL 注入;能否使用取决于 URL 是否存在可控数据库查询参数,与是否为 PHP 无关;需先手动验证注入迹象,再合理配置 sqlmap 参数绕过 WAF 或适配响应格式。

kali怎么挖php漏洞_用sqlmap检测php注入型漏洞【方法】

SQLMap 本身不“挖 PHP 漏洞”,它只检测和利用 SQL 注入——而 PHP 只是常见承载注入点的后端语言之一。能不能用 sqlmap,关键看目标 URL 是否存在可被控制的数据库查询参数,跟是不是 PHP 关系不大。

怎么确认一个 PHP 页面有 SQL 注入点?

别急着上 sqlmap,先手动验证是否存在注入迹象:

  • 在参数值末尾加单引号(如 ?id=1'),看是否报错(mysql syntax ErrorUnclosed quotation mark 等)
  • 用布尔盲注试探:?id=1 AND 1=1?id=1 AND 1=2,观察页面响应是否不同(内容变化、响应时间差异)
  • 注意:很多现代 PHP 应用用 pdo 预处理或 ORM,即使参数拼接也不一定可注入;反之,老式 mysql_query($_GET['id']) 类代码大概率可打

sqlmap 怎么跑带参数的 PHP URL?

最基础命令就是指定 URL 和参数,sqlmap 会自动识别并测试:

sqlmap -u "http://target.com/page.php?id=1" --batch

常见补充选项:

立即学习PHP免费学习笔记(深入)”;

  • --level=3 --risk=3:提高检测深度(默认 level=1,不测 cookie/UA 等位置)
  • -p "id,user" :显式指定要测试的参数名(避免误测无关参数)
  • --dbms="mysql":若已知后端数据库类型,能跳过 DBMS 指纹环节,提速
  • 如果页面需要登录,用 --cookie="PHPSESSID=abc123"--auth-type=basic --auth-cred="user:pass"

为什么 sqlmap 在 PHP 页面上跑不动或报错?

不是 PHP 的问题,而是环境或交互逻辑卡住了:

  • 目标用了 WAF(如 Cloudflare、ModSecurity):sqlmap 默认请求特征明显,容易被拦截;可加 --random-agent--delay=1 或用 --tamper=space2comment 绕过
  • PHP 页面返回 jsON 或 JS 跳转:默认 sqlmap 依赖 html 响应体判断,需加 --skip-heuristics 或用 --technique=B(仅布尔盲注)
  • 参数被二次编码(如 %2527%27 的再编码):用 --url-encode 或手动解码后再喂给 sqlmap
  • Kali 自带的 sqlmap 版本太旧(如 1.3.x):某些 PHP 8+ + PDO 场景识别不准,建议 git clone 官方最新版

真正麻烦的从来不是“PHP 还是 python”,而是你没看清那个 ?id=1 后面到底有没有拼进 query(),以及服务器有没有在你发第 3 个 payload 时就把你的 IP 加进 iptables。

text=ZqhQzanResources