微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

攻防世界web新手练习区-“simple_php”攻略

*本文为攻防世界新手练习区“simple_PHP”一题的解题攻略*

 

 

先读题:

 

题目标题“simple_PHP”,简单的PHP

题目描述:小宁听说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] 举报,一经查实,本站将立刻删除。

相关推荐