[SWPUCTF 2021 新生赛]PseudoProtocols
看到提示和地址栏 很明显了吧 伪协议
base64解码可得
<?php
//go to /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;
}
?>
//学习一个新函数
//file_get_contents() 是一个 PHP 内置函数,它的作用是读取文件的内容并返回一个字符串。它的第一个参数是文件名,第二个参数是一个可选的打开模式,用于指定文件的读取方式。'r' 模式表示以只读方式打开文件。
此题有俩种解法
- php://input 此方法需要前提条件,即开启allow_url_include=On。
相当于一个远程包含的利用,php://打开文件流后,直接写入恶意代码。
- data://text/plain,
data://本身是数据流封装器,他们原理类似,input是POST,而data是GET
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?