一进来就是PHP正则表达式
if ("POST" == $_SERVER['REQUEST_METHOD'])
需要用POST
方式提交。
if (0 >= preg_match('/^[[:graph:]]{12,}$/', $password)) { echo 'Wrong Format'; exit; }
这里只需要有连续12
个以上的非控制字符就可以,比如空格
,tab
等。
$reg = '/([[:punct:]]+|[[:digit:]]+|[[:upper:]]+|[[:lower:]]+)/'; if (6 > preg_match_all($reg, $password, $arr)) break;
这里有点难理解,这里指的是将$password
分成连续的符号punct
或者数字digit
或者大写upper
或者小写lower
能分成6段以上即可。
$arr
这个变量没看到,可能是在flag.php
里面有吧。。。$ps = array('punct', 'digit', 'upper', 'lower'); foreach ($ps as $pt) { if (preg_match("/[[:$pt:]]+/", $password)) $c += 1; } if ($c < 3) break;
在密码里面至少要看到符号
,数字
,大写
,小写
至少出现三种。
if ("42"==intval($password)&&"42"!=$password) echo $flag; else echo 'Wrong password'; exit;
这里就是典型的弱类型比较了,只要满足上面的要求即可,随便测试了下42.Hell0World!
就可以了。
flag
,这里多说一下,不是非得用科学计数法
才行,我看所有的writeup
里面都写的42.0000000e+1
这种。。。
联系客服