抽空做点简单的 CTF 题 :)
0x00 目录
0x01 Web2
F12 查看源码即可获得 flag
0x02 计算器
这个页面会向后端请求一个简易计算验证码,但后面的输入框只能输入长度为一的字符,F12 修改即可
0x03 web基础$_GET
题目提供了源码
$what=$_GET['what'];
echo $what;
if($what=='flag')
echo 'flag{****}';
使用 get 方式接收名为 what 的参数,当 what 参数值为 flag 时输出 flag
构造 payload
http://123.206.87.240:8002/get/?what=flag
0x04 web基础$_POST
源码和上一题一样,只是改成 POST 方法接收参数
$what=$_POST['what'];
echo $what;
if($what=='flag')
echo 'flag{****}';
上 burp 抓包,change request method,再在消息主体里面加上 what=flag 即可
0x05 矛盾
$num=$_GET['num'];
if(!is_numeric($num))
{
echo $num;
if($num==1)
echo 'flag{**********}';
}
的确挺矛盾的,flag 只有在 num==1 且 num 不为数字的情况下输出,不过 php 是弱类型语言,在 num 变量与数字进行对比时会发生类型转换,所以其实并不需要 num 为数字,只需要在 1 后面加上任意字符即可。
payload:
http://123.206.87.240:8002/get/index1.php?num=1lol
0x06 Web3
一进去就给我弹框,关掉后 F12 看到有一串注释:
KEY{J2sa42ahJK-HS11III}
K
,显然是 ASCII,使用在线转换工具转换之。
0x07 域名解析
题目这一句话看的我没头没脑的,然后去 123.206.87.240 看来一眼,提示 400。结合代码想了想也大概猜到代码逻辑了,应该是后端会对 HOST 头进行校验,如果是 flag.baidu.com 则返回 flag
结果还真是这回事~
0x08 你必须让他停下
打开后疯狂刷新,网页内的 hint 也看的我脑壳疼,Stop at panda? 哪来的 panda?
观察了一阵子隐约看到其中有一张图片被刷新出来了,查看 burp 的 HTTP history,发现刷新出的那张是 10.jpg
再看了看网页源码,发现 flag 在刷新出图片时会出现在源码中,于是凭着惊人的手速我获得了 flag~
淦