[极客大挑战2019]BuyFlag-创新互联
查看源码发现有个文件,然后打开。
然后打开得到三个提示。打开bp来分析。
他先说是要成为CUIT的学生,查看bp
发现这个cookie有点可疑,把它改成1看看。
变成了CUIT的学生。接下来就开始传密码了。
根据给的代码来传。这里就得了解php是咋样解析代码的了,这里有一篇别的师傅写的博客,可以看看。
PHP 浅谈 == 和=== 中,数字和字符串比较的问题。_Au.J的博客-博客
就是题目要求password得等于404,但又要求password不能是数字。
成功绕过。然后题目提示我没付钱,然后就接着去POST一下money.
结果提示长度太长了,就可以用下科学计数法或者是数组,为什么是数组呢。
看到限制长度时,就会猜想到它是用strcmp()函数来检测的。
int strcmp ( string $str1 , string $str2 ) 参数 str1第一个字符串。str2第二个字符串。如果
str1 小于 str2 返回< 0; 如果 str1 大于 str2 返回 >0;如果两者相等,返回 0。
如果我们传入非字符串类型的数据的时候,会return 0。也就是虽然报了错,但却判定其相等了,strcmp传入数组可直接返回0,所以可以传入money[]=1。返回0的话就可以绕过strcmp检测,直接读取flag了,strcmp(0)不执行。
password的另一种绕过方法。
is_numberic()函数漏洞:is_numeric函数对于空字符%00,无论是%00放在前后都可以判断为非数值,而%20空格字符只能放在数值后。
最后拿到flag.
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
文章名称:[极客大挑战2019]BuyFlag-创新互联
文章路径:http://scyanting.com/article/cdscsi.html