veryphp
缝合怪
<?php
error_reporting(0);
highlight_file(__FILE__);
include("config.php");
class qwq
{
function __wakeup(){
die("Access Denied!");
}
static function oao(){
show_source("config.php");
}
}
$str = file_get_contents("php://input");
if(preg_match('/\`|\_|\.|%|\*|\~|\^|\'|\"|\;|\(|\)|\]|g|e|l|i|\//is',$str)){
die("I am sorry but you have to leave.");
}else{
extract($_POST);
}
if(isset($shaw_root)){
if(preg_match('/^\-[a-e][^a-zA-Z0-8]<b>(.*)>{4}\D*?(abc.*?)p(hp)*\@R(s|r).$/', $shaw_root)&& strlen($shaw_root)===29){
echo $hint;
}else{
echo "Almost there."."<br>";
}
}else{
echo "<br>"."Input correct parameters"."<br>";
die();
}
if($ans===$SecretNumber){
echo "<br>"."Congratulations!"."<br>";
call_user_func($my_ans);
}一堆阴间正则,看着都累。
不过这里师弟跟我说可以不用绕直接POST,我还是跟着预期解弄。
首先过滤了下划线,跟spaceman那道题很像,直接通过空格或者加号绕过过滤。
绕过这个正则之后需要传入第一个变量shaw_root,这个变量需要满足一定的正则匹配,且该变量长度为29。
随便搞个payload
给了md5爆破长度,索然无味.jpg。
拿到$SecretNumber
最后进入call_user_func,比较简单,直接调用类的方法。
Last updated