江苏网站建设效果,展示网站和营销网站的区别,市场调研报告范文2000,网站系统定制NSS [SWPUCTF 2021 新生赛]PseudoProtocols
先看题目#xff0c;题目要求我们先找到hint.php。 看这个get请求头#xff0c;我们先用php://filter协议读一波 得到提示#xff0c;让我们前往/test2222222222222.php 源码如下 ?php
ini_set(max_execution_time题目要求我们先找到hint.php。 看这个get请求头我们先用php://filter协议读一波 得到提示让我们前往/test2222222222222.php 源码如下 ?php
ini_set(max_execution_time, 180);
show_source(__FILE__);
include(flag.php);
$a $_GET[a];
if(isset($a)(file_get_contents($a,r)) I want flag){echo success\n;echo $flag;
}
?代码分析 ini_set(max_execution_time, 180);
将PHP脚本的最大执行时间设置为180秒。
if(isset($a)(file_get_contents($a,r)) I want flag)
如果“a”变量被设置并且读取“a”变量的【文件】内容等于“I want flag”则输出“success”和flag的值。
接下来有两种解法
1、php://input
此方法需要条件即开启allow_url_includeOn。
实际上这相当于一个远程包含的利用。
php://打开文件流后我们直接在流里面写入我们的恶意代码此时包含既可执行代码。
?aphp://input// 然后在POST里传入I want flag则成功读取Flag2、data://
data://本身是数据流封装器其原理和用法跟php://input类似但是是发送GET请求参数。
?adata://text/plain,I want flagdata协议data协议是一种特殊的URL协议可以将数据直接嵌入到URL中而无需使用外部文件或数据源。data协议的语法如下
data:[media type][;base64],data前两个变量可以不要HASKELL具体用法就如下payload
payload?adata://text/666,I want flag
//正确用法text/后面跟的是plain我这里用的666但flag也出来了。