BUUCTF-[极客大挑战 2019]BuyFlag 记录

22.[极客大挑战 2019]BuyFlag

打开是个这样的网站,网页出现三个提示,需要100000000money,密码要正确,还必须为学生身份。

抓包,发现cookie为0,随之改成看看,提示密码不正确,出现源码。源码意思需要password不能为数字但又必须为404

is_numeric函数对于空字符%00,无论是%00放在前后都可以判断为非数值,而%20空格字符只能放在数值后。所以,查看函数发现该函数对对于第一个空格字符会跳过空格字符判断,接着后面的判断。

接着需要money为10000000

太长了,这里有两种方法,一是改成科学计数法.

第二种

nt strcmp ( string

str2 );

参数 str1第一个字符串。str2第二个字符串。如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。

可知,传入的期望类型是字符串类型的数据,但是如果我们传入非字符串类型的数据的时候,这个函数将会有怎么样的行为呢?实际上,当这个函数接受到了不符合的类型,这个函数将发生错误,但是在5.3之前的php中,显示了报错的警告信息后,将return 0 ,也就是虽然报了错,但却判定其相等

你可能感兴趣的:(BUUCTF-[极客大挑战 2019]BuyFlag 记录)