1.题目分析
1.1发现allow_url_include 是on状态
既然已经直接包含了phpinfo()是文件,首先搜索了一下allow_url_include,发现是处于打开的状态。 既然 allow_url_include打开 尝试远程文件包含。 什么是远程文件包含 当被包含的文件在第三方服务器时,就叫远程文件包含。 allow_url_include:是否允许include/require远程文件
2.php伪协议
题目是使用$_REQUEST方法接送数据,get方法和post方法都可以使用,意味着直接能使php协议:php://input用包含post中的代码 php://input php://input访问请求的原始数据的只读流(read-only stream),会将post请求中的数据作为php代码执行。
2.1使用php://input协议执行post里的代码 <?php sysytem(‘ls’)?> 执行后看到dle3....php文件
使用``php://filter/read=convert.base64-encode/resource=dle345aae.php ``因为PHP文件是在不能直接显示的,所以使用了base64编码显示.
解码
3. 也可以使用cat dle345aae.php命令拿下flag