• Home
  • About
    • Aquilao'Blog photo

      Aquilao'Blog

      现在开始去做说不定还来得及

    • Learn More
    • Email
    • Instagram
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

BugkuCTF Web Part 1

11 Oct 2019

抽空做点简单的 CTF 题 :)

0x00 目录

  • 0x01 Web2
  • 0x02 计算器
  • 0x03 web基础$_GET
  • 0x04 web基础$_POST
  • 0x05 矛盾
  • 0x06 Web3
  • 0x07 域名解析
  • 0x08 你必须让他停下

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}

&#75,显然是 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~

淦



CTF Share Tweet +1