当前位置: 代码迷 >> 综合 >> 第二十一题——[极客大挑战 2019]BuyFlag
  详细解决方案

第二十一题——[极客大挑战 2019]BuyFlag

热度:72   发布时间:2023-11-19 19:41:45.0

题目地址:https://buuoj.cn/challenges

解题思路

第一步:进入题目,从左边菜单下拉栏进入PAYFLAG页面

第二步:在PAYFLAG页面使用f12查看提示发现一行注释的php,要求提交password

在这里插入图片描述

第三步:使用burpsuite抓包修改参数获取flag

  1. 使用burpsuite抓包发现参数user=0,并且提交类型为get
    在这里插入图片描述

  2. 结合提示必须来自CUIT,将user修改为1,发现CUIT的检测值为user的值。
    在这里插入图片描述

  3. 根据提示需要post提交password参数且值为404,但不能是纯数字。通过修改提交请求,将get改为post,再将password值设置为404%20绕过纯数字检测。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. 根据提示添加money参数,提示数字过长
    在这里插入图片描述

  5. 将money参数改为数组以绕过检测,获取flag
    在这里插入图片描述

知识点

  1. bool is_numeric ( mixed $var )
    is_numeric函数对于空字符%00,无论是%00放在前后都可以判断为非数值,而%20空格字符只能放在数值后。
  2. strcmp(string1,string2)
    当这个函数接受到了不符合的类型,这个函数将发生错误,但是在5.3之前的php中,显示了报错的警告信息后,将return 0,所以可以用数组绕过检测。