文章总结: 该文档是H&NCTF竞赛中一道文件包含漏洞的解题思路。核心难点在于file参数限制严格,必须以.php结尾且禁止…和://,导致常规路径穿越和PHP伪协议失效。关键突破是利用服务器上存在的pearcmd.php进行参数注入,通过config-create参数写入PHP文件,最终实现列目录并读取flag。可操作建议是遇到类似限制时,可尝试利用服务器组件如PEAR进行参数注入。 综合评分: 78 文章分类: CTF,WEB安全,渗透测试,漏洞分析
2026 H&NCTF-include
原创
識. 識.
0xNyx
2026年8月3日 07:56 安徽
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
复现的靶场是wss协议,下载工具后即可简单部署本地
抓包看看回显
经过测试发现必须以 .php 结尾: 否则返回 “template must end with .php”,禁止 ..: 防止路径穿越
禁止 ://: 阻止 PHP 流封装器 (php://filter, file://, data:// 等),过滤器使用strpos()函数,位于 /var/www/html/index.php 第 12 行include() 在第 113 行
最终发现pearcmd.php存在于/usr/local/lib/php/pearcmd.php
pearcmd.php是Pear工具的核心执行文件,是具体实现 pear 功能的脚本
/usr/local/lib/php/pearcmd.php&+config-create+/<?=implode(",",scandir("/"));?>+/tmp/ls.php
CLI参数注入写文件
/tmp/ls.php,包含ls.php列目录
PEAR-RCE-读flag,
包含flag.php
总结:
include题主要解决的是受限制的文件包含问题。刚开始抓包发现 file 参数限制很多,必须以 .php 结尾,还禁止 .. 和 ://,所以普通路径穿越和 PHP 伪协议都不能用。后来发现服务器里有 /usr/local/lib/php/pearcmd.php,可以利用 PEAR 参数注入写 PHP 文件。关键点是过滤只检查 file 参数,不检查后面的 query string 参数,所以可以把代码传进 pearcmd.php。最后先用 scandir() 列目录找到 /flag,再用 file_get_contents() 读取。难点是思路要从“直接包含文件”转到“先写文件再包含执行”。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:0xNyx 識. 識.《2026 H&NCTF-include》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。





![[漏洞原理]|log4j2远程代码执行漏洞原理](/images/random/titlepic/13.jpg)




评论