访问/login
发现一个登入框,但是点击发现无法提交
观察路径发现:http://www.bmzclub.cn:20607/login.php?zhongzi=show.php
猜测是任意文件读取
尝试访问/etc/passwd
下面就是考虑日志文件包含
index.php,无法读取。考虑伪协议
解码:
<?php error_reporting(0); if (isset($_GET['url'])) { $ip=$_GET['url']; if(preg_match("/(;|'| |>|]|&| |python|sh|nc|tac|rev|more|tailf|index|php|head|nl|sort|less|cat|ruby|perl|bash|rm|cp|mv|\*)/i", $ip)){ die("<script language='javascript' type='text/javascript'> alert('no no no!') window.location.href='index.php';</script>"); }else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){ die("<script language='javascript' type='text/javascript'> alert('no flag!') window.location.href='index.php';</script>"); } $a = shell_exec("ping -c 4 ".$ip); echo $a; } ?>
发现是get传入url的命令执行
但是过滤了不少东西
但是不是很难绕,第一层没过滤|,cat可以用od,tail或者ca\t之类的绕过
空格用$IFS,至于flag用/????