攻防世界simple_php题解

发布时间 2023-07-09 15:38:03作者: 风铃学安全

今天也是看到一道很有意思的题目(什么叫做很有意思,大佬的Wirteup看了几遍都看不懂)也是避免像我一样的菜狗踩坑就写了这篇文章,关于攻防世界的题解风某挑有代表性的写(有些太过简单怕大佬暴打我)

先分析一下题目,得知flag是由flag1和flag2组成的,另外提一嘴:很多人拿到题目发现自己不会php,那这个时候怎么办呢,当然是百度、必应、谷歌[doge]

a和b是两个变量,这两个变量都利用get去传参

然后是看到三个flag估计是要我们去判断——都判断为真得到两部分flag

拓展:

php中有两种比较符号

=== 会同时比较字符串的值和类型

== 会先将字符串换成相同类型,再作比较,属于弱类型比较

也就是说$a和0的数据类型不相等,但最后的结果是0就可以,那么a=不是数字开头的任何玩意都能得到flag1

接下来就是flag2了

用你那双明亮的眼睛来看看有什么函数(如果你眼瞎就不用看了)if()函数、is_numeric()函数,先看if()函数

用小学数学也知道b要大于1234

再来看numeric()函数

这里稍微用下我的工地英语

if如果numeric数值的exit退出---如果b是数字,那么就咋样我也不知道怎么翻译,如果你用过cmd你输入exit()然后他就无了用屁股想都知道应该类似于运行结束或无法运行这些鬼玩意(毕竟咋也不会php)就得到b不能是数字,由于php弱类型的转化所以要同时满足这两个条件即使b大于1234在拼接任意字符串,如6666yyds

去试试

拿到flag

总结:利用代码审计再进行弱类型比较

点个关注吧,求求了

在说件事:275875303 这是我建的交流群,欢迎各位大佬和像我一样的菜狗进群交流