代码审计:
不难发现代码中给出了两个条件,且贱贱的把flag拆分到两个条件中。
条件1:
if($a==0 and $a){
echo $flag1;
}
说明:参数a=0且a为真才能得到半个flag.
条件2:
if(is_numeric($b)){
exit();
}
说明:is_numeric()函数可以参考https://www.runoob.com/php/php-is_numeric-function.html
如果b为数字则返回,即b不能为数字。
条件3:
if($b>1234){
echo $flag2;
}
说明:b要求大于1234才能得到另外半个flag.
条件2要求b不为数字条件3要求大于1234,此问题涉及到php弱类型比较。(可以上网搜搜)
在本题中弱类型比较时,1234=1234a。所以b=1235a时既不为数字同时也大于1234.
所以:http://111.198.29.45:56898/index.php?a=%220%22&b=1235a 补充条件就可以得到flag。
我也是刚学web,只能先从简单的开始了,加油加油!
zouchengzhi1021
发布了16 篇原创文章 · 获赞 0 · 访问量 193
私信
关注
标签:1234,攻防,数字,simple,numeric,flag,条件,php
来源: https://blog.csdn.net/zouchengzhi1021/article/details/104055602