求助一道ctf代码审计题
<?phpif (isset($_GET['source'])) {
highlight_file(__FILE__);
} elseif (isset($_GET['file'])) {
$file=$_GET['file'];
if (preg_match('/(f|l|a|g|\.|p|h|p|\/|\$|;|\"|\`|\|)/i',$file)) {
die('Illegal characters detected');
}
assert_options(ASSERT_BAIL,1);
assert("'flag.php'==='$file'");
echo file_get_contents($file);
} else {
?>
<form action method="GET">
<label>Give me a file name:</label>
<input type="text" name="file" placeholder="flag.php"/>
<input type="submit" value="Read File" />
</form>
<a href="?source">Get the source.</a>
<?php
}
?> 代码注入,团队群有人 问过这个题目 pyload:' or system('dir') or '1'=='1 然后 中间 自由发挥,别被正则匹配到就OK 已解决,非常感谢。 bob1994 发表于 2019-12-5 15:56
已解决,非常感谢。
请问以下怎么解决的啊? wuyoukm 发表于 2019-12-4 10:50
然后 中间 自由发挥,别被正则匹配到就OK
感觉中间的命令绕不过去,全都过滤了。 jimkgh 发表于 2019-12-14 15:59
感觉中间的命令绕不过去,全都过滤了。
通配符绕过
页:
[1]