php之chr()和intval()的trick--day1
这道题是自己从github上面下载下来的。
从这道题学了PHP俩个trick
首先介绍一下chr()和intval()的trick
chr()函数在进行运算的时候有先将数字mod 256 然后在进行chr()转换
<?php
$a=65;
$b=65+256;
echo chr($a);#输出A
echo chr($b);#也输出A
?>
另一个是intval()函数。
大概思路就是通过16进制绕过
但是我想可能是因为现在PHP7版本没有这个漏洞了~
我也不清楚,希望大佬能够说明一下。
最后附上题目:
<?php
error_reporting(0);
require 'flag.php';
$value = $_GET['value'];
$password = $_GET['password'];
$username = '';
for ($i = 0; $i < count($value); ++$i) {
if ($value[$i] > 32 && $value[$i] < 127) unset($value);
else $username .= chr($value[$i]);
if ($username == 'w3lc0me_To_sec_WIki' && intval($password) < 232 && intval($password + 1) > 233) {
echo 'Hello '.$username.'!', '<br>', PHP_EOL;
echo $flag, '<hr>';
}
}
highlight_file(__FILE__);
他们的坚强他们的梦
他们的苦只有自己懂

浙公网安备 33010602011771号