thinkphp多语言RCE原理分析
内容提要
ThinkPHP多语言RCE漏洞复现,通过传入参数实现目录穿越和文件包含,利用pearcmd.php文件包含漏洞进行RCE攻击。漏洞影响范围为ThinkPHP v6.0.1~v6.0.13和v5.0.x、v5.1.x版本。漏洞利用条件包括服务器安装pear、register_argc_argv设置为On以及存在文件包含漏洞。建议及时升级修复漏洞。
关键要点
-
ThinkPHP多语言RCE漏洞复现通过参数传入实现目录穿越和文件包含。
-
漏洞影响范围为ThinkPHP v6.0.1~v6.0.13和v5.0.x、v5.1.x版本。
-
漏洞利用条件包括服务器安装pear、register_argc_argv设置为On以及存在文件包含漏洞。
-
环境准备包括清理Composer缓存和手动编辑composer.lock文件。
-
多语言功能开启后,通过get、header、cookie等位置传入参数实现RCE。
-
Lang.php中的parse函数和load函数是漏洞触发点。
-
构造合适的参数以利用文件包含漏洞。
-
利用../../../目录穿越绕过文件包含限制。
-
需要确保服务器上安装pear,并且register_argc_argv设置为On。
-
payload示例展示了如何利用该漏洞进行攻击。
延伸问答
ThinkPHP多语言RCE漏洞的影响范围是什么?
漏洞影响范围为ThinkPHP v6.0.1~v6.0.13和v5.0.x、v5.1.x版本。
如何利用ThinkPHP多语言RCE漏洞进行攻击?
通过传入参数实现目录穿越和文件包含,利用pearcmd.php文件包含漏洞进行RCE攻击。
利用ThinkPHP多语言RCE漏洞需要满足哪些条件?
需要服务器安装pear,register_argc_argv设置为On,并且存在文件包含漏洞。
在ThinkPHP中,哪个文件的函数是漏洞触发点?
Lang.php中的parse函数和load函数是漏洞触发点。
如何准备环境以复现ThinkPHP多语言RCE漏洞?
需要清理Composer缓存,删除vendor目录和composer.lock文件,并重新安装依赖。
如何构造参数以利用ThinkPHP的文件包含漏洞?
需要利用../../../目录穿越绕过文件包含限制,并构造合适的参数。