登录
首页 >  文章 >  php教程

Kali用Arachni检测PHP漏洞步骤详解

时间:2026-02-05 20:57:40 388浏览 收藏

大家好,今天本人给大家带来文章《Kali用Arachni挖PHP漏洞步骤详解》,文中内容主要涉及到,如果你对文章方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

不能。Arachni是黑盒Web扫描器,不分析PHP源码,仅通过请求响应推测漏洞,如根据PHP Warning识别LFI疑似点,但无法定位未过滤的$_GET等具体代码行。

kali怎么挖php漏洞_用arachni检测php站深层漏洞【步骤】

Arachni 能不能直接挖 PHP 代码层漏洞?

不能。Arachni 是 Web 应用扫描器,只做黑盒检测:它不读源码,不分析 eval()system() 或未过滤的 $_GET 变量,而是通过发请求、观察响应(状态码、响应体、重定向、报错信息等)推测漏洞存在。比如它可能发现一个参数触发了 PHP Warning: include(): Failed opening 'xxx' for inclusion,从而标记为「本地文件包含疑似点」,但不会告诉你哪行 PHP 代码漏了 basename() 过滤。

在 Kali 上跑 Arachni 扫描 PHP 站前必须确认的三件事

很多扫不出来或报错,其实是环境没对齐:

  • 目标站必须能被 Kali 主机正常访问(curl -I http://target.com 要返回 200/30x,不是超时或连接拒绝)
  • 关闭 Kali 自带的代理(如 Burp 或 FoxyProxy 正在监听 127.0.0.1:8080),否则 arachni 默认会走系统代理,导致请求全卡住
  • 确认目标站没有 WAF 拦截——Arachni 的默认 payload 触发率高,容易被云 WAF(如 Cloudflare)或 mod_security 直接封 IP。可先用 arachni --http-request-timeout=10 --scope-include-pattern=".*" http://target.com/ 加个超时再试,避免卡死

怎么让 Arachni 更大概率发现 PHP 特有漏洞(LFI/RFI/命令注入)

靠默认配置基本扫不到深层利用点。得手动调参,重点改这几个:

  • 启用高风险检查:--checks=*lfi*,*rce*,*exec*,*path_traversal*(注意用逗号分隔,不是空格)
  • 放宽路径遍历试探深度:--http-request-concurrency=5 --plugin-options='path_traversal.depth=6'(默认是 3,对嵌套多层的 include($_GET['p'].'.php') 不够)
  • 加一个常见 PHP 文件后缀试探:--audit-links --audit-forms --audit-cookies --scope-extend-path=.php,否则它可能跳过 /page.php?id=1 这类明显带 PHP 后缀的 URL
  • 如果目标用了 URL 重写(如 ThinkPHP 的 /index.php?s=/module/action),必须加 --scope-include-pattern="s=.*",否则 Arachni 会当成静态路径忽略

扫完怎么看结果里哪些是真 PHP 漏洞线索

Arachni 报告里一堆「Low severity」别急着关。重点关注这几类描述和 payload:

  • Path Traversal 类型中,vector 字段含 ../../../etc/passwd 且响应里真出现了 passwd 内容(不是 404 或空白)→ 很可能是 LFI
  • Remote Code Execution 类型中,payload 是 echo MD5(123);id,且响应体返回了 202cb962ac59075b964b07152d234b70uid=33(www-data) → RCE 成立
  • Server Side Include 报告里,response_body 显示出服务器时间、IP 或执行了 → 可能配合 PHP 的 virtual() 或 Apache 解析漏洞利用
  • 所有带 unvalidated redirect 的结果,如果 location 头里拼了 $_GET['url'] 且没过滤 ://,就可能绕过成 https://evil.com/?x=javascript:alert(1) → 这属于 PHP 逻辑缺陷,但 Arachni 只标「redirect」,得人工看

真正麻烦的是那些「没回显但请求被服务端执行了」的情况,比如命令注入盲打。Arachni 的 timing 插件(--checks=*timing*)会发 sleep(5) 类请求,但 PHP 的 max_execution_time 或 Nginx 的 fastcgi_read_timeout 可能截断响应,导致误判。这时候得切到手工验证,用 curl -v "http://t.com/p.php?c=id;sleep 5" 看真实耗时。

终于介绍完啦!小伙伴们,这篇关于《Kali用Arachni检测PHP漏洞步骤详解》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布文章相关知识,快来关注吧!

前往漫画官网入口并下载 ➜
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>