TP5.0.24漏洞分析:getshell尝试与exploit

需积分: 0 40 下载量 83 浏览量 更新于2024-08-05 2 收藏 963KB PDF 举报
"记一次tp5.0.24 getshell1" 本文主要记录了一次针对ThinkPHP 5.0.24版本的getshell尝试,getshell是指在Web应用程序中获取服务器shell权限的一种攻击手段。作者提到这个站点可能是阉割版的TP5.0.24,通常认为这个版本不应该存在远程代码执行(RCE)的漏洞。 在尝试过程中,作者首先尝试了一个常见的错误报告,发现该站点使用的是ThinkPHP 5.0.24。虽然预期可能不会有RCE漏洞,但作者仍决定尝试利用已知的漏洞进行攻击。通过构造特定的URL参数,如`_method=__construct&method=get&filter[]=call_user_func&get[]=phpinfo`,成功触发了phpinfo()函数的执行,显示了服务器的一些配置信息,包括禁用的函数列表。 在发现可以执行部分代码后,作者尝试利用file_put_contents函数创建一个包含恶意PHP代码的文件,例如`axgg.php`,并试图通过POST请求执行,但未能成功。接着,作者尝试了其他方法,如利用think\app\invokefunction、call_user_func_array函数组合,以及利用session来写入恶意代码,同样未能达到预期效果。 这些尝试反映了攻击者通常在寻找和利用Web应用漏洞时的步骤,他们可能会尝试各种方法来绕过安全限制,寻找可以执行任意代码的入口点。在ThinkPHP框架中,某些函数和方法如果被不当使用或配置,可能会成为攻击的目标,例如`call_user_func`、`assert`、`file_put_contents`等。 对于开发者来说,了解这些攻击手段非常重要,因为这有助于他们在编写代码时避免类似的错误,并采取必要的安全措施。例如,限制对敏感函数的访问,对用户输入进行严格的过滤和验证,以及定期更新和打补丁以防止已知漏洞被利用。同时,禁用不必要的函数,如`eval`,可以显著降低被getshell攻击的风险。 这篇记录提醒我们,即使被认为相对安全的版本也可能存在潜在的漏洞,而且攻击者会不断尝试新的攻击方式。因此,持续的安全审计和防御策略升级对于任何Web应用程序来说都是至关重要的。