easyphp之create_function
适用范围:PHP 4> = 4.0.1
,PHP 5
,PHP 7
(从PHP 7.2.0
开始,create_function()
被废弃)
源码:
1 |
|
这道题只有短短的7行,关键就是create_function。
查阅资料发现①create_function这个函数会内部执行eval()函数,具体执行的是后面的语句。②每次刷新,产生的匿名函数后面的数字都会依次增加。
可以看到,create_function()产生了一个匿名函数,函数名叫%00lambda_1,并且会执行后面的语句。所以,运用到这题上,可以通过对隐藏函数名最后的数字进行“爆破”,不断地刷,刷出来
create_function后记:
1 |
|
代码审计
①$sort_by 是我们能控制的地方
②存在create_function()
③$sort_function是create_function的eval部分
④$sort_by在$sort_function里面有拼接
思路:通过$sort_by将$sort_function后面闭合,达到执行我们想要执行的语句v
payload:
1 | http://127.0.0.1/test.php/?sort_by=%27%22]);}phpinfo();/* |