以上是题目
找大佬文章拜读一下
说是利用php伪协议的
不太理解
原理
PHP向用户提供的指定待打开文件的方式,是一个文件流
PHP的Filter机制,可对目前的协议进行一定的处理,比如将当前文件流的内容进行Base64编码。
使用方法php://filter/read=convert.base64-encode/resource=xxx
利用Filter机制,构造形如以上的攻击数据可以读取文件,拿到各种文件的源码
构造解题payload
php://filter 读取源代码并进行base64编码输出,不然会直接当做php代码执行就看不到源代码内容了。
下面我们构造url,下面是通用格式
http://127.0.0.1/cmd.php?file=php://filter/convert.base64-encode/resource=cmd
然后咱们就可以得到如下base64的代码
最后base64解码一下flag就出来了