活动介绍

借github上韩国师傅的一个源码实例再次理解.htaccess的功效1

preview
需积分: 0 0 下载量 62 浏览量 更新于2022-08-03 收藏 2.6MB PDF 举报
《深入理解.htaccess:从韩国师傅的GitHub实例中学习安全防护》 .htaccess,全称是"HyperText Access",是Apache服务器中的一个配置文件,它允许我们在网站的根目录下进行局部配置,以实现诸如URL重定向、限制访问、设置自定义错误页面等功能。在本文中,我们将通过分析一个韩国开发者在GitHub上的源码实例,进一步探讨如何理解和利用.htaccess进行安全防护。 源码中禁止了特定文件后缀的访问,如`.htaccess`,这是因为这类文件通常包含敏感信息,如服务器配置。然而,未禁用.htaccess文件本身意味着攻击者可能通过篡改该文件来改变目录的PHP配置,从而实现恶意解析。 代码中,服务器会创建临时文件,并通过`explode()`函数以"."为分隔符将文件名分解为数组。接着,删除数组的最后一个元素(即文件后缀),并用`empty()`函数检查数组的第一个元素是否为空。这里需要注意,`$ext`变量存储的是被删除的后缀,而不是删除后的数组。通过实验,我们发现即使数组的第一个元素为空,但只要数组有其他元素,`count()`函数仍会返回非零值,因此可以通过传递".."形式的文件名绕过此WAF(Web应用防火墙)。 接下来,WAF检查文件是否存在敏感字符,以及通过`image_type()`函数判断文件类型。这一步可以通过在HTTP请求中修改文件头信息来规避,特别是当文件头被识别为合法图像格式时,如XBM。XBM是一种ASCII格式的位图图像,可以被PHP解析。通过定义宏,我们可以伪造XBM文件头,使文件大小满足1337像素,从而通过WAF检查。 文章最后提出了一个新颖的思路,利用.htaccess文件来篡改服务器配置。创建一个包含错误路径的PHP配置文件(如`shell.php`),利用Apache的错误日志功能,在/images目录下创建含有恶意代码的`shell.php`文件。然后,上传一个包含宏定义的.htaccess文件,使得.jpg文件被解析为PHP。通过上传..htaccess文件,我们可以绕过之前的WAF,成功实现恶意代码的执行。 总结来说,理解.htaccess文件的机制及其在安全防护中的作用至关重要。攻击者可能会利用其漏洞进行恶意操作,而防御者则需要通过合理的配置和WAF来防止此类攻击。同时,本文的实例展示了如何通过分析源码来提升安全意识,以及如何利用技巧来规避WAF,这对于开发者和安全从业者来说都是一次宝贵的学习机会。
身份认证 购VIP最低享 7 折!
30元优惠券