CTF——web安全(二)

文章讲述了在CTF竞赛中,如何通过观察页面动态、分析PHP代码和利用BurpSuite工具来解决两个Web安全题目。第一个题目涉及快速跳动页面中的CTF标志,通过查看源代码找到;第二个题目涉及PHP变量和eval函数,通过理解代码逻辑和全局变量找到flag。第三部分提到了利用工具如御剑进行目录扫描和BurpSuite的拦截功能来获取隐藏信息。
摘要由CSDN通过智能技术生成

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,恍然大悟,题目名称是头等舱,响应头,是不是已经给了提示,但是这个提示对我来说真是一言难尽。

  • 15
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值