ciscn2020复现-web-Easytrick。可以先做一下这个题,
在我本地http://localhost/renew/easytrick.php。这个。
这里就看出来的file_get_contents等文件包含漏洞的威力了,直接给我干到D盘,超出了网站的根目录了,
详细讲了INF和PHP精度绕过的内容,也是上个题的wp
描述一下,如果还记得的话,就不看了,,,懒批
这个INF是个好东西,自身是浮点型,但是和本身的字符串型不相等。但是彼此的md5确实相等的,
还有那个PHP的精度,好像就是在15位的时候0.1 != 0.100000000000001,。但是这时候,进行函数运行算,比如strlen(),md5()就会变成0.1来算,
具体几位什么样子,当场试就好,快得很
当超过15位的时候,0.1 == 0.100000000000000000001了。然后 后面的依旧当作0.1计算, 就是中间有个界限,那个时候,直接相等,是不相等的,后来就相等了,可以做绕过的时候用
下面是我自己为了加强记忆记录的
<?php
$a=11;//值相同的数字和字符串是若等于的 1 和 '1sdfsdf',相等
$w=(string)$a;
var_dump(md5($a)==md5($w));//bool(true)md5这里那个PHP高精度的也会相等,可以看那个网站里面的
$b='11[sdf]sdfasdf';
var_dump($a==$b);//boo(true)
//讲真的我就感觉这就比较奇怪,可能INF比较特殊
$c=INF;
$d='INF';
var_dump($c==$d);//bool(false)
<?php
$a=INF;//比15位多的时候,才是相等
$b='INF';//inf默认是float类型的
var_dump($a);//double(INF)
echo "<br>";
var_dump($b);//string(3)"INF"
echo "<br>";
var_dump($a==$b);//bool(false)
echo "<br>";
var_dump(md5($a) === md5($b) );//奇怪的是md5之后却是相同的
?>
找了个和null差不多的,我也不是到是不是差不多,,
null和“null”的md5,不相等
但是INF和’INF’的md5确实相等的
<?php
$a=null;//
$b='null';//
var_dump($a);//NULL
echo "<br>";
var_dump($b);//string(4) "null"
echo "<br>";
var_dump($a==$b);//bool(false)
echo "<br>";
var_dump(md5($a) === md5($b) );// bool(false) 找个null试一试