最近在一道题目里面学到了一个新的小技巧
在php中,字符串是可以递增的,如下:
但是不可递减
这道题是这样的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?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太远了,所以这里学到了两个新的操作
在这篇文章有写到(也是原题)
1
2
|
$_=C/C ---> NAN
$_=1/C ---> INF
|
但是这不是string类型,但在php里面,我们可以通过拼接一个字符串来让他转成String类型
比如这里我写如下代码
1
2
3
4
5
6
|
<?php
$a = (C/C.C);
$b = (1/C.C);
var_dump($a);
var_dump($b);
|
成功得到string类型,这里我们就使用索引就可以单选中字母了
这样做就可以从N开始递增了,避开了长度的限制