关于php伪协议在ctf中的调查

2023-06-05


1


php://input协议


第一个例子


flag.php

看看上面的php代码,就知道读取文件的内容是thisisisi。 只有在test显示flag的时候,我们才知道这个文档有这样的内容,我们可以使用php。://本协议php://input可以获得原始post数据,只有浏览请求的原始数据的阅读流,并将post请求中的数据作为PHP代码执行,并绕过以下操作:


使用条件:


allow_url_fopen:off/on


allow_url_include:on


第二个例子


php:实现代码执行//input
test1.将php改为以下

代码执行是通过POSTphp代码实现的。


执行php代码?等一下,我能写一个句子吗?试试POST这个代码。’);?>


注意:只有php5.2..17 下一次测试成功,其它都报错了,原因不明。


php://filter/convert.base64-encode/resource=

查看另一个代码:


怎样显示flag?.php的内容是什么?不会直接显示,这个php就要用了。://filter/convert.base64-encode/resource=取源代码并导出base64编码,否则将直接作为php代码执行,看不到源代码内容。


php://filter也可以在双off的情况下正常使用;


allow_url_fopen:off/on
allow_url_include:off/on

Base64解密获取原始数据:


使用反序列化读取文件


借鉴2016xctf 一个问题的思路,代码让我简化:


file);
 return'yes';
    }
}
$a= new flag();
$a->file= 'php://filter/convert.base64-encode/resource=flag.php';
$data= serialize($a);
echo$data.'
'; echounserialize($data);

对flag类进行定义,并重写tostring(),我们先new一个新的目标,然后给变量赋值,最后实例化。


假设实例化后的变量在某个问题中是可控的,我们知道类内容,那么我们可以通过可控变量读取任意文件。在上述代码中,flag在反序列化过程中完成。.读取php文件


2


file://协议


file://双off条件下协议也可以正常使用;


allow_url_fopen:off/on


allow_url_include:off/on


file://用于浏览本地文件系统,通常用于在CTF中读取本地文件而不受allow_url_fopen和allow_url对include的影响


日前某比赛web的第二个问题是通过注入控制反序列化,file:///协议阅读本地文件


注:file://协议必须是绝对的路径


zip:bzip2///://, zlib://协议


正常使用双off前提是正常使用


allow_url_fopen:off/on


allow_url_include:off/on


payload:


http://127.0.0.1/cmd.php?file=zip://D:/soft/phpStudy/WWW/file.jpg#code.txt


首先要实施的PHP代码写好文件名为phpcode。.txt,phpcode.用txt压缩zip,压缩文件叫file。.zip,如能上传zip文件就可以直接上传,如果不能就把file上传。.zip重命名为file。.在上传jpg之后,其它几种压缩格式也可以这样操作。


因为#在get请求中会忽略后面的参数值,所以在使用get请求时,url代码应该是#,在这里检测相对路径是不可行的,所以我们必须使用绝对路径。


3


phar协议


1.jpg是含有1个jpg的一个.php压缩包,改变后缀名称,包括以下方法。


include.php?f=phar://./images/1.jpg/1.php


4


zlib://协议


使用方法:


compress.zlib://file.gz


绝对路径


http://127.0.0.1/cmd.php?file=compress.zlib://D:/soft/phpStudy/WWW/1.jpg


相对路径


http://127.0.0.1/cmd.php?file=compress.zlib://./1.jpg


5


总结


以上只是最基本的例子,在ctf中要能够灵活运用,常言道再难的问题也离不开基础。


题外话:最近国内ctf比赛越来越国际化,pwn、re题占绝大多数,web题很少或没有直接,作为一只web狗要坚强地走下去。



本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。

免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com