[极客大挑战 2019]BuyFlag 解题思路

进入靶场后,进行一波浏览,没有什么功能点,在MENU下有PAYFLAG,点击后有新页面pay.php

页面下方有提示,You must be a student from CUIT ,You must be answer the correct password

右键查看页面源代码,存在提示,money和password需要通过POST的方式进行传参。密码为404时返回密码正确,此时知道了密码,先进行抓包尝试。

抓包重发后,提示只有cuit的学生能访问,看到cookie中有user=0,改为user=1尝试一下

用户正确了,但是密码404并没有正确,查询源代码中用来传输密码的函数is_numeric的用法,得知需要数字+字符才返回为真

尝试password=404a,发现口令还是错误,排查后发现未用POST方法传参,使用POST方法传参后口令正确。提示需要购买flag,在参数后加上money=100000000

提示字符过长,这里查看了php版本为5.3.3,就用到strcmp()函数绕过,在PHP5.3之前,传入数据的类型为字符串类型,当传入的类型不是字符串类型,函数就会发生错误,显示报错信息后会return 0,即传入的如果不是字符串即会报错,从而实现绕过。

即如果传入的如果是password[]=1即以数组传入特点,就会产生爆错,但返回的仍然是假,即0,从而实现了绕过

此处参考https://blog.dandelioncloud.cn/article/details/1594146531932557314

进行一波尝试,flag到手

  • 12
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值