登录
首页 >  文章 >  php教程

Kali挖掘PHP漏洞与后渗透技巧

时间:2026-01-26 20:36:44 127浏览 收藏

本篇文章给大家分享《Kali如何挖掘PHP漏洞及后渗透技巧》,覆盖了文章的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

phpsploit 是基于 HTTP 的交互式后渗透通信框架,不能直接拿 shell,需先获得可控 PHP 执行入口(如 eval($_GET['x'])),再通过构造正确 payload endpoint 建立稳定会话。

kali怎么挖php漏洞_利用phpsploit维持php后渗透洞【技巧】

phpsploit 是什么,能直接拿 shell 吗

phpsploit 不是自动漏洞利用工具,它本身不“挖洞”,也不扫描 PHP 服务是否存在 eval()system() 或反序列化漏洞。它是一个轻量级的、基于 HTTP 的交互式后渗透通信框架,前提是——你已经通过其他方式(比如手动代码审计、sqlmap --os-shell、或已知 RCE payload)拿到了一个可控的 PHP 执行入口(例如 shell.php?cmd=ls 这类可执行命令的页面)。

它的核心作用是:把零散的、一次性的 PHP 命令调用,封装成稳定、带会话管理、支持插件和文件传输的交互式 shell 环境。

  • 不能替代 gobusternikto 扫目录、找 phpinfo.php
  • 不能绕过 disable_functions —— 它只是帮你更方便地调用已有的可用函数
  • 依赖目标服务器上能成功执行 base64_decode()eval()(或 assert()create_function() 等等)

怎么让 phpsploit 连上一个已有 PHP 执行点

关键不是“装 phpsploit”,而是构造好那个 payload endpoint。常见失败原因是 payload 格式不对或被 WAF 拦截。

假设你已确认 http://target.com/test.php 存在如下代码:

eval($_GET['x']);

那么你启动 phpsploit 的命令应该是:

./phpsploit -u "http://target.com/test.php?x="
  • -u 后面必须是完整 URL,且参数名(这里是 x)要和目标脚本里接收的变量名一致
  • 如果目标用的是 $_POST['cmd'],就得配合 -X POST -d "cmd=" 参数,不能只靠 -u
  • 若目标开了 open_basedir 或禁了 proc_openshell 插件会卡住,此时应先用 run ls -la 测试基础命令是否通
  • 遇到 403/500 但手工 curl 能执行,大概率是 phpsploit 默认 User-Agent 被 WAF 拦了,加 --user-agent "Mozilla/5.0" 试试

disable_functions 绕过失败时,phpsploit 还能做什么

systemexecshell_exec 全被禁用,但 file_get_contentsscandirreadfile 还开着,phpsploit 依然有用——重点转向信息收集和横向移动准备。

  • run file_get_contents('/etc/passwd') 读敏感文件(注意路径是否受限)
  • run print_r(scandir('/var/www/html')) 列目录,找备份文件、配置文件、数据库连接脚本
  • upload /local/config.php /var/www/html/config.php.bak 备份原始配置,为后续改写铺路
  • 如果 curlfile_put_contents 可用,可通过 download 插件拉取远程恶意 payload 再 eval,绕过本地上传限制

此时别硬刚 shell,优先导出数据库连接串、JWT 秘钥、API token —— 很多时候比弹 shell 更快见效。

为什么连上了却卡在 “Loading plugins…” 或 “No response”

这是最常被忽略的网络与环境细节问题。phpsploit 本质是发 HTTP 请求并解析响应体里的 base64 编码结果,任何破坏这个闭环的环节都会中断。

  • 目标响应里不能有额外输出:比如 echo "debug";print_r($GLOBALS)、甚至末尾多一个空格或换行,都会导致 base64 解码失败
  • 确保目标 PHP 脚本以 die()exit() 结尾,避免输出 HTML 模板或 footer
  • 如果目标用了 gzip 压缩(ob_start('ob_gzhandler')),phpsploit 默认不处理压缩响应,会解码失败 —— 此时需手动 patch 源码或换用未压缩的 endpoint
  • 某些 CDN(如 Cloudflare)会缓存 200 响应,导致你改了 payload 脚本但 phpsploit 仍收到旧响应,加时间戳参数绕过:?x=...&t=171xxxx

真正卡住的时候,别急着换工具,先用 curl -v 抓原始请求/响应,看 body 是否干净、是否含不可见字符、是否被重定向 —— 这些细节比选什么 payload 更决定成败。

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

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