• Home
  • About
    • Aquilao'Blog photo

      Aquilao'Blog

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

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

BugkuCTF Web Part 2

24 Oct 2019

0x00 目录

  • 0x01 本地包含
  • 0x02 变量1
  • 0x03 Web5
  • 0x04 头等舱
  • 0x05 网站被黑
  • 0x06 管理员系统
  • 0x07 Web4
  • 0x08 flag在index里

前八道 Web 题见 BugkuCTF Web Part 1

0x01 本地包含

打开网页之后获得题目源码

<?php
    include "flag.php";
    $a = @$_REQUEST['hello'];
    eval( "var_dump($a);");
    show_source(__FILE__);
?>

包含了 flag.php,得想办法 var_dump() 出 flag.php 中的 flag

用 readfile() 函数读取 flag 即可

payload:

http://123.206.87.240:8003/?hello=readfile(%22flag.php%22)

0x02 变量1

打开网页后获得一个 hint

flag In the variable !

和题目源码

<?php  
    error_reporting(0);
    include "flag1.php";
    highlight_file(__file__);
    if(isset($_GET['args'])){
        $args = $_GET['args'];
        if(!preg_match("/^\w+$/",$args)){
            die("args error!");
        }
        eval("var_dump($$args);");
    }
?>

源码和上题很类似,就是加了对参数的判断

只需要想办法让 var_dump() 中输出的可变变量 显示出 flag1.php 中的变量

使用超全局变量 $GLOBALS 即可

payload:

http://123.206.87.240:8004/index1.php?args=GLOBALS

0x03 Web5

F12 即可发现网页有个隐藏的 div 里面放着 jsfuck

在 console 中运行一下即可获得 flag

然而事情却没有这么简单~

被耍了,按照网页提示把 flag 转换为大写即可

0x04 头等舱

进去之后的确啥也没有,尝试抓包看看

flag 在 response 的头里送上门了~

0x05 网站被黑

打开一看是个黑页,啥也没有

就扫了扫目录

扫到个 shell.php,访问康康

看起来是个 webshell,可以尝试爆破一波

输入密码,拿到 flag

0x06 管理员系统

进去一看是一个登录框,登陆时尝试用 burp 抓包

提示要本地管理员登录,好吧上 XFF 头伪造 ip。具体可以看 HTTP 基础 0x05 节“一些需要注意的 HTTP Headers”部分

这一关过了,剩下的只需要爆破就可以了

0x07 Web4

根据提示查看源码,发现有一段 js 其中部分被 url 编码了,最后再解码拼接执行

尝试复制到 console 中运行

发现在 eval 的时候失败了。尝试去掉 eval 函数先看看 js 的整体内容

里面有一段字符串,提交即可获得 flag

0x08 flag在index里

让我们点击

点击后 url 变的十分可疑,结合题目名猜测是存在文件包含

文件包含读取 php 文件内容的话需要使用php://filter封装协议对源码进行 base64 编码,具体可移步 File Inclusion 的利用 0x04 节 “封装协议(Wrappers) 在 FI 中的利用” 部分

构造 payload

http://123.206.87.240:8005/post/index.php?file=php://filter/read=convert.base64-encode/resource=index.php

再 base64 解码获得 flag



CTF Share Tweet +1