web安全实战:题目来源:首页 - Bugku CTF
1、题目:你必须让他停下
打开题目如下图:快速进行的跳动页面,其中一个页面有ctf图标,依旧题目提示,你必须让他停下,可以考虑是否信息停下就能看到,这里停下的方式,可以直接查看源代码。
查看源代码ctrl+u,源代码如下图,看到提示flag is here ,想到多个页面是否其中一个含有flag,多次刷新后找到flag
其实这里有明显提示,所有弹出的页面中,有个有ctf标识的,flag就在那个页面中,只是因为弹出太快无法停止,这里选择在源代码中直接刷新
作为本题参考,一般源代码找不到信息,想到使用其他工具,提出一种解题思路是使用kali linux中的burpsuit。
逐个查看数据包,发现flag就在其中,这里对burpsuit不做介绍。
2、题目:变量
打开题目,如下图所示,flag在变量中,然后一段php代码,出现php代码一般需要理解代码,从中找出flag,
下面给出关键注释:
if(isset($_GET['args'])){ 这行代码检查是否设置了GET参数args。
$args =$_GET['args']; 如果args参数被设置,它的值将被存储在变量$args中。
if(!preg_match("/^\w+$/",$args)){ 这行代码使用正则表达式检查$args是否只包含字母、数字和下划线。
die("args error!"); 如果$args不符合正则表达式的规则,脚本将输出"args error!"并终止执行。
eval("var_dump($$args);"); 这行代码是关键,它使用了PHP的eval函数,这是一个非常危险的函数,因为它可以执行传入的任何PHP代码。在这里,它尝试输出$$args变量的内容,这意味着它将输出与$args值同名的变量的内容。
使用get方式传递参数,加入传递args=x这是函数打印x中的内容,而并没有设置x的内容,所以为NULL,我们思考该传递什么参数可以打印出flag呢?PHP中GLOBALS存储了所有变量,我们尝试,得到flag,这需要一定PHP的基础,请读者学习相关知识。
flag{227cd0b14f680a42054f041fc5cfe6c4}
3、题目:头等舱,题目打开如下所示
源代码中也没有有效信息,上工具!
先点开御剑目录扫描看看有什么:啥也没有
使用burpsuit查看(工具使用方法及介绍需要读者自己学习,后面有空,看需要也会给大家更新)
开启拦截,拦截请求报文,然后发到各个模块看看
我们在repeater中发现,给出的回应报文,含有flag,恍然大悟,题目名称是头等舱,响应头,是不是已经给了提示,但是这个提示对我来说真是一言难尽。