《Web安全测试学习手册》- 分布式部署文件可读

0x00 分布式部署文件可读

1)什么是分布式部署文件可读

Apache中的.htaccess或者”分布式配置”了针对目录改变配置的方法,即,在特定的文档目录中放置包含或多个指令的,以作用于此目录及其子目录。

这个文件默认情况下客户端是不可读的,假设客户端能够读取此文件,攻击者利用这一特性可以获取分布式配置的指令,泄漏服务器端敏感信息。

2)分布式部署文件可读的特点

  • .ht开头文件可读

0x01 分布式部署文件可读 - 风险等级

0x02 分布式部署文件可读 - 原理

客户端请求类似于如下URL:

  • http://payloads.online/.htaccess

Web中间件将读取.htaccess文件内容响应给客户端,客户端能够获取分布式配置指令。

0x03 分布式部署文件可读 - 常见场景

  • Apache Web 服务器

0x04 测试方案

使用CURL访问分布式配置文件

命令:curl -I http://payloads.online/.htaccess

➜  ~ curl -I http://10.211.55.12/.htaccess
HTTP/1.1 200 OK
Date: Sat, 28 Apr 2018 02:31:02 GMT
Last-Modified: Sat, 28 Apr 2018 02:30:16 GMT
ETag: "17-56adf66b3a848"
Accept-Ranges: bytes
Content-Length: 23

若响应状态码为200则存在此风险

0x05 修复方案

在Apache的配置文件httpd.conf中添加:

<Files ".ht*">
    Require all denied
</Files>

修复后:

➜  ~ curl -I http://10.211.55.12/.htaccess
HTTP/1.1 403 Forbidden
Date: Sat, 28 Apr 2018 02:35:22 GMT
Content-Type: text/html; charset=iso-8859-1