最近在一道题目里面学到了一个新的小技巧 在php中,字符串是可以递增的,如下: 但是不可递减 这道题是这样的
<?php
error_reporting(0);
if ($_GET['looklook']){
highlight_file(__FILE__);
}else{
setcookie("hint", "?looklook", time()+3600);
}
if (isset($_POST['ctf_show'])) {
$ctfshow = $_POST['ctf_show'];
if (is_string($ctfshow) || strlen($ctfshow) <= 107) {
if (!preg_match("/[!@#%^&*:'\"|`a-zA-BD-Z~\\\\]|[4-9]/",$ctfshow)){
eval($ctfshow);
}else{
echo("fucccc hacker!!");
}
}
} else {
phpinfo();
}
?>
可以看到,这里长度的限制是107,我们如果拼接一个_GET,如果硬从C开始自增,那可能会超过限制,T理C太远了,所以这里学到了两个新的操作
在这篇文章有写到(也是原题)
$_=C/C ---> NAN
$_=1/C ---> INF
但是这不是string类型,但在php里面,我们可以通过拼接一个字符串来让他转成String类型 比如这里我写如下代码
<?php
$a = (C/C.C);
$b = (1/C.C);
var_dump($a);
var_dump($b);
成功得到string类型,这里我们就使用索引就可以单选中字母了 这样做就可以从N开始递增了,避开了长度的限制
|