题目
题目为simple_php,根据题目信息,判断是关于php代码审计的.
小宁听说的很对,PHP的最好的语言。
打开题目,得到一串php代码
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
简单审计下代码,发现需要以get的方式传入两个参数a和b。
a参数的要求 a必须等于0且a为真
b参数的要求 b不能为数字且b大于1234
来看代码
if($a==0 and $a){
echo $flag1;
}
因为php是弱类型语言,当不同类型的值进行==比较的时候会发生类型转换。
所以,只需要使a=0e1
下一段代码
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
get的b不能是数字,但又必须大于1234,这里可以用b=12345a绕过
结合一下
?a=0e1&b=12345a
得到flag
原创文章,作者:陌涛,如若转载,请注明出处:https://imotao.com/4068.html