CBJS:文件上传 4

💡 原文约300字/词,阅读约需2分钟。
📝

内容提要

文章讨论了攻击者通过上传特制文件和利用Apache服务器配置漏洞获取服务器控制权的方法。攻击者利用PHP模块处理文件,上传特制的.htaccess文件以改变文件处理方式,从而执行系统命令,并通过调整URL参数获取敏感信息。

🔎

延伸解读

Apache 版本与 .htaccess 上传风险

文章指出,Apache 2.3.8 及更早版本默认允许上传 .htaccess 文件,而后续版本默认禁用该功能。但若服务器配置不当,仍可能允许写入 .htaccess。本例中 Apache 2.4.52 因配置允许,攻击者得以利用。这提醒管理员应检查 Apache 配置,确保 .htaccess 文件不可被上传,尤其是在文件上传功能中。

文件扩展名过滤的绕过思路

服务器端通过 explode() 截取文件名最后一部分并与扩展名数组比较,这种过滤方式可能被绕过。攻击者上传 .htaccess 文件,将自定义扩展名(如 .pho)映射到 PHP 模块处理,从而执行恶意代码。防御时不应仅依赖扩展名黑名单,而应结合白名单、文件内容检测和重命名策略。

命令执行与敏感信息获取

上传的 hello.pho 文件包含 system() 函数,可执行系统命令。攻击者通过调整 URL 参数,利用命令执行读取根目录下的敏感文件(flag)。除 system() 外,passthru() 等函数也可达到类似效果。这凸显了文件上传漏洞结合服务器配置错误可能导致严重的信息泄露和服务器控制权丧失。

❓

Q&A

攻击者如何通过文件上传获取服务器控制权?

攻击者通过上传特制的.htaccess文件来改变Apache服务器的文件处理方式,从而执行系统命令。

Apache服务器如何处理上传的PHP文件?

Apache服务器需要PHP模块来处理.php文件,并将结果返回给Apache。

上传的.htaccess文件有什么作用?

.htaccess文件可以改变Apache服务器的文件处理方式,使其能够执行特定的系统命令。

攻击者如何利用URL参数获取敏感信息?

攻击者通过调整URL参数来寻找敏感信息的标志(flag)。

在Apache服务器上,.htaccess文件的写入权限如何影响安全性?

Apache服务器的配置如果允许写入.htaccess文件,攻击者可以利用这一点执行恶意代码,增加安全风险。

攻击者如何执行系统命令?

攻击者可以上传一个包含system()函数的文件,通过该函数执行系统命令。

🏷️

标签

➡️

继续阅读