php官方手册中发现create_function函数,就等同于function函数的作用;
create_function函数
<?php
$newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);');
echo "New anonymous function: $newfunc\n";
echo $newfunc(2, M_E) . "\n";
// outputs
// New anonymous function: lambda_1
// ln(2) + ln(2.718281828459) = 1.6931471805599
?>
function函数
<?php
function newfunc($a,$b){
return "ln($a) + ln($b) = " . log($a * $b);
}
echo "New a us function: newfunc()\n";
echo newfunc(2, M_E) . "\n";
//New anonymous function: newfunc()
//ln(2) + ln(2.718281828459) = 1.6931471805599
?>
因为creat_function函数的特性,所以可以利用creat_function()代码注入;
利用方法:id=1;}phpinfo();/*
利用原理:源代码
function newfunc(){
echo "test";
}
注入后代码:
function newfunc(){
echo "test";}phpinfo();/* //这里的;}将前面的function函数闭合且/*将后面的函数注释从而进行任意代码执行漏洞
}
<