
Responsive Filemanager < 9.12.0 绕过上传限制导致RCE的PoC
Responsive Filemanager < 9.12.0 绕过上传限制导致RCE的PoC
上传新文件时,会经过函数 fix_filename:https://github.com/trippo/ResponsiveFilemanager/blob/9a7411f3eab3b7d8e2c78dcf40b4325bde2c548d/filemanager/upload.php#L112
在这个函数中,有函数 strip_tags,它会搜索括号并移除它们:https://github.com/trippo/ResponsiveFilemanager/blob/9a7411f3eab3b7d8e2c78dcf40b4325bde2c548d/filemanager/include/utils.php#L581
因此,我们可以发送文件名如 shell.php<.txt 的文件,由于 strip_tags 函数,它会被重命名为 shell.php。
但是,还有根据文件内容进行的额外检查:https://github.com/trippo/ResponsiveFilemanager/blob/9a7411f3eab3b7d8e2c78dcf40b4325bde2c548d/filemanager/upload.php#L101
因此,我们无法上传经典的PHP shell <?php system($_GET['c']);?>。但我们可以耍个小技巧:函数 get_extension_from_mime 是基于文件的前几个字符工作的。所以,如果我们用几个 'a' 字符开始我们的载荷,它会被检测为 txt 类型。
shell.php<.txt

