一、有限制的本地文件包含漏洞绕过:
漏洞代码:
<?php
include($file.".html");
?>
该代码会默认给文件加一个.html后缀
导致无法找到该文件

绕过方式:
上传html文件


不能上传html文件时其他绕过方法
第一种方式 %00截断
条件:magic_quotes_gpc=off PHP版本<5.3.4
第二种路径长度截断
条件:windows ,点号需要长度256;linux 长度需要4096.
Windows下目录最大长度为256字节,超出的部分会被==丢弃==;
Linux下目录最大长度为4096字节,超出的部分会被==丢弃==。
成功截断
/././././././././.(后面省略许多/.)

或者…………………………….
二、有限制的远程文件包含漏洞:
测试代码也是一样的。
<?php
$file =
?>



1.第一种问号绕过
问号后面的值会当成参数
yuancheng.txt–>yuancheng.txt.html

2.第二种井号绕过
号(%23)不是注释

3.当allow_url_include和allow_url_fopen设置为off时绕过
在PHP配置文件中,“allow_url_include”wrapper默认设置为“Off”,指示PHP不加载远程HTTP或FTP URL,从而防止远程文件包含攻击。但是,即使“allow_url_include”和“allow_url_fopen”都设置为“Off”,PHP也不会阻止加载SMB URL。而这就极有可能被滥用来从SMB共享加载远程托管的PHP Web shell。
SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
smb.conf配置文件:
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = indishell-lab
security = user
map to guest = bad user
name resolve order = bcast host
dns proxy = no
bind interfaces only = yes
[ica]
path = /var/www/html/pub
writable = no
guest ok = yes
guest only = yes
read only = yes
directory mode = 0555
kali搭建SMB
1.启动samba

2.

3.创建pub共享文件夹

4.设置权限

5.

6.修改配置文件


7.重启smaba

8.在共享文件里编写木马

9.打开运行框

10.访问共享文件夹

11.进行文件包含
成功绕过