*本文为攻防世界新手练习区“simple_PHP”一题的解题攻略*
先读题:
题目描述:小宁听说PHP是最好的语言(我不同意!),于是她简单学习之后写了几行PHP代码。
进入在线环境:
来分析这段PHP代码,首先创建了两个GET变量a和b,然后进行了三次判断,
第一次判断,同时满足a=0和a为真才能显示出flag1这个变量。
因为PHP语言中“==”为弱类型判断,会自动把判断转为同类型再比较,
故PHP中可以得到“abc” == 0 为真,所以我们在URL栏手动传参a=abc:
得到了flag1。
接下来两个if都是与b相关的。
第二个if中,is_numeric()函数判断一个变量是否为数字或者数字字符串,是返回true,否返回false。我们需要这个函数返回false以避免退出程序。
第三个if中,b>1234即可获得flag2。
在PHP的弱类型比较中,12345a>1234为true,而is_numeric(12345a)返回为假,故我们可以给b赋值12345a
同上在URL中手动传参:
得到了剩下一半的flag。
Flag Get√!
资料:
HTTP方法:https://www.runoob.com/tags/html-httpmethods.html
PHP中$_GET变量:https://www.runoob.com/PHP/PHP-get.html
PHP is_numeric()函数:https://www.runoob.com/PHP/PHP-is_numeric-function.html
END
2022/2/26
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。