-
写在前面
最近在学习CTF web相关知识,顺带学习php,在攻防世界平台上做做题。遇到了一道名为easyphp的题目,对我这个新手一点也不easy,于是决定把过程记录下来。
参考了官网上shuita111师傅的WP,这里主要写得更加完整详细一些。
-
正文部分
首先看代码,大概能够看出需要咱们传入的a、b、c满足中间那些条件,然后可以获得key1和key2,最后得到flag。
<?php
highlight_file(__FILE__);
$key1 = 0;
$key2 = 0;
$a = $_GET['a'];
$b = $_GET['b'];
if(isset($a) && intval($a) > 6000000 && strlen($a) <= 3){
if(isset($b) && '8b184b' === substr(md5($b),-6,6)){
$key1 = 1;
}else{
die("Emmm...åæ³æ³");
}
}else{
die("Emmm...");
}
$c=(array)json_decode(@$_GET['c']);
if(is_array($c) && !is_numeric(@$c["m"]) && $c["m"] &