BUUCTF [极客大挑战 2019]BuyFlag

BUUCTF [极客大挑战 2019]BuyFlag

网页源码分析

  • WEB类型的漏洞第一步先查看网页源码,尝试从前端页面中找到提示,我们通过分析该靶场前端源码,果然在 pay.php页面中发现了如下提示代码:

    <!--
    	~~~post money and password~~~
    if (isset($_POST['password'])) {
    	$password = $_POST['password'];
    	if (is_numeric($password)) {
    		echo "password can't be number</br>";
    	}elseif ($password == 404) {
    		echo "Password Right!</br>";
    	}
    }
    -->
    
  • 分析代码。在该代码中有提示我们应该以POST的方式来传入money 和 password 这两个参数,而 isset() 的作用是判断是否有password值的传入(具体用法参照:菜鸟教程:PHP isset()函数),is_numeric()作用如字面意思,是用来判断是否为数字。总之我们可以初步理解为在该页面上需要以post方式提交money和password两个参数,而且password不能为数字且要与404相匹配,除此之外,我们还需要解决页面一直强调的“student from CUIT” 问题。

抓包并尝试修改

  • 首先我们用抓取原始数据包得:

    在这里插入图片描述

    回显页面为部分代码为:

    在这里插入图片描述

    在该数据包中发现cookie中的user=0,这里不得不吹一波小迪老师(小迪老师yyds),之前他在视频中演示过一个靶场,好像是i 春秋里面的(具体忘了),里面有个类似的问题,就是一个登陆界面的数据包的cookie中出现了login=0,表示未登录,然后在数据包中将login改为1后,就直接跳到了登录后的界面,这里我就直接联想到user是不是和登录身份有关,第一时间想到了改为1或者"student from CUIT"或者"cuit’s student"等。

  • 修改user并且使用POST的方式提交password和money,这里password由于不能为404,我就首先尝试了’404’,money为100000000:

    在这里插入图片描述

    回显页面部分代码为:

    在这里插入图片描述

    说明我们user猜测正确了,但是password有问题。

  • 当时我是猜测这里对password使用的是字符匹配机制,可能只会检测前三个字符,就在去掉了引号,在404后面加了个空格然后再次send该数据包:

    在这里插入图片描述

    回显页面部分代码:

    在这里插入图片描述

    事实证明password正如我猜测得那样,后续发现使用在404后面加上任意字符都可绕过。

  • 此时页面回显提示Nember过长,也就是money的值过长,这里我想了很多办法,包括使用科学计数法,字符串转换等,就在我即将崩溃的时候,看到了这篇文章PHP弱类型比较(松散比较)方面的漏洞,发现涉及strcmp漏洞,并且password的绕过也属于该文章中提到的弱口令,最后使用了money[]=1 成功绕过,得到flag。

    在这里插入图片描述

小结

对于弱口令以及strcmp漏洞的相关知识不够了解,还需要继续努力,另外关于解题过程中user的出现并且快速想到和解题相关,要归功于小迪老师,最后小迪老师yyds,我是菜鸡,还要继续努力!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丙戌年1101

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值