Pikachu 靶场精讲
在初次访问时,Pikachu 平台会显示警告,解决此问题需要在 php.ini 文件中将 allow_url_include 设置为 On。
注意修改与网站对应的 PHP 版本相关的 php.ini 文件。修改后,重启中间件服务(例如,重启 phpstudy)。
分析源码,后端路径为 pikachu-master\vul\fileinclude\fi_remote.php。其基本逻辑与本地文件包含相同,主要区别在于传参方式,详情在本地包含中已有解释。
在靶场中,随机选择一个文件并提交查询,以 Kobe Bryant 为例,URL 变为。此时可自行操控 filename 内容,演示常见方法。
利用 PHP 伪协议,如 file://,用于访问本地文件系统,不受 allow_url_fopen 与 allow_url_include 的限制。演示中,更改 filename 参数为 file:// 目标路径(D:\phpstudy_pro\WWW\pikachu-master\vul\fileinclude\info.php),成功访问目标文件。更多用法请自行尝试,完整 Payload 如下。
file:// 与远程或本地无关,其演示基于 allow_url_include 设置为 On 的情境。利用此技术,可从其他服务器传输文件。
假设在本地创建一个模拟攻击者放置恶意文件的服务器(127.0.1.1),并在此服务器上创建名为 hack.txt 的恶意文件,注意文件后缀与服务器语言不一致,以防被恶意服务器解析。此处使用 txt 格式,因 include() 函数会以 PHP 格式解析任何文件,写入一句话木马。
通过浏览器访问此文件,可以看到木马内容。将访问的文件更换为远程服务器上的恶意文件,完整 URL 如下。使用蚁剑测试,成功建立连接。
版权声明:本文由哟品培原创或收集发布,如需转载请注明出处。