[极客大挑战 2019]BuyFlag

解题步骤

首先观察打开的页面以及审查页面的原始代码,发现并没有什么特别的代码提示,然后我们点开页面中的菜单,出现了一个PAYFLAG,推测与我们题解有关,故点开

在这里插入图片描述

点开后跳到了一个pay.php的页面,我们使用 Burpsuite 抓包并分析出现页面的源代码,出现了几行可能与题解相关的代码提示以及一段 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>";
	}
}
-->

通过分析这些信息得,想要得到Flag,必须满足以下两个条件:

  • Cuit's students的身份访问
  • post money & password两个参数,且必须POST正确的password,从php代码中得,该password还应该满足:不能为数字,但必须==404这两个条件;而money我们可以知道为 100000000

首先我们从HTTP得请求包中,可以看到Cookie: user=0这个选项:
在这里插入图片描述

根据经验,我们将user=0改为user=1,并发出,得到回显:
在这里插入图片描述

说明我们满足了Cuit's students这个条件,接下来,我们post money & password这两个参数。关于money我们提交money=100000000,关于password,由于其不能为纯数字,但要等于 404,我们可以考虑加入截断符号%00或者空格%20,但注意只能加在404后面,故我们提交password=404%00,整个post语句就为money=100000000&password=404%00,查看回显页面:

在这里插入图片描述

出现了上述提示,说明password正确的,但是money所提交的数字太长了,这里我们用到科学计数法来缩短字符长度,将 100000000 变为 10e8,修改后的post语句就为money=10e8&password=404%00,查看回显:

在这里插入图片描述

得到flag,解题完毕

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

丙戌年1101

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

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

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

打赏作者

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

抵扣说明:

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

余额充值