[极客大挑战 2019]BuyFlag
点击右上角的菜单
题目是让我们买flag,那就点击payflag
但是提示告诉我们钱不够
如果你想要买这个flag:你必须是来自CUIT的学生;你必须输入正确的密码
先看一下源代码里面有没有什么东西,在最后发现代码
只要$password == 404为真,那么,就可以绕过。函数is_numeric()判断其中的参数是数字还是其他,如果是数字则判断为真,否则为假。
is_numeric函数对于空字符%00,无论是%00放在前后都可以判断为非数值,而%20空格字符只能放在数值后
看到新的提示,你必须是来自CUIT的学生,直接抓包看看是什么情况
只有在cookie:user=0,那我们将其换为1试试
显示长度太长
可以构造1e10来表达100000000
还能通过常用绕过strcmp方法:money[]=1, 对于strcmp如果强行传入其他类型
反而会出现报错,恰好利用这一点就可以达到绕过的目的了
两种方法都是可以的