最近sqlmap的题真的太烧脑了,看一下这道题
打开界面,让我传入一个file直接操作
看见allow_url_include 状态为on,想到了php伪协议,用filter读取flag.php里面的信息构造
url ?file=php://filter/read=convert.base64-encode/resource=flag.php
发现一串编码, 猜测是base64加密以后的编码,然后进行解码
欧克任务结束!!!
接下来同样是一道php伪协议的题,[SWPUCTF 2021 新生赛]PseudoProtocols
打开看见hint.php由于最近一直刷这种题,就直接想到了filter直接读取文件。
但试了N次还是错误,在?前加了一个/才正确,记得加/,然后base64解码
<?php
//go to /test2222222222222.php
?>
直接访问test2222222222222.php
a参数利用file_get_contents()函数只读形式打开,打开后内容要与"I want flag"字符串相匹配,才能执行下面的文件包含$file参数。
看到用的是file_get_contents()函数打开text参数,以及后面的文件包含函数,自然的想到php伪协议中的data://协议。
构造?a=data://text/plain;base64,SSB3YW50IGZsYWc= 。得到flag。
解释一下,后面SSB3YW50IGZsYWc=,就是i want flag的base64编码,而不是随便一个编码
其实大概的意思就是通过文件伪协议往a里面赋值,因为a是只读不能通过手动赋值
如果php伪造协议没记住,可以看我的另一篇csdnphp伪协议(文件包含应用)_偶尔躲躲乌云334的博客-CSDN博客