漏洞分析
漏洞触发点其实是string2array()这个函数造成的,先来看一下这个函数体:
function string2array($data) {
if(is_array($data)) return $data;
if($data == '') return array();
if(!strexists(strtolower($data), 'array')) return array();
@ini_set('display_errors', 'on');
@eval("\$array = $data;");
@ini_set('display_errors', 'off');
$array = isset($array)?$array:array();
return is_array($array)?$array:array();
}
可以看到其中有个eval(),那么意思是我们只要能够控制住$data这个变量,那么就可以任意代码执行了。
在/addons/vip/site.php中第1245行:
public function doWebeditval()
{
$arr = array();
$arr['success'] = 0;
$arr['val'] = '';
if ($this->input->post("dosubmit")){
//</