目录枚举(Directory Enumeration)漏洞,是一种常见的安全漏洞,允许攻击者枚举服务器上的目录或文件结构,进而获取敏感信息、识别潜在的弱点或利用已知漏洞进行攻击。
最近碰到一个问题,用户建企业网站要求非常严格,登录页面不允许外网访问、注册登录不允许错误提示、用户首次登录强制要求修改密码等,WordPress本身无相关设置,只能通过配置Nginx、修改程序文件、添加强化代码实现。
还有个漏洞就是随便域名后面添加一个字母,会自动跳转到相近的页面。
例如输入:https://xxxxx/i会跳转到https://xxxxx/intro
这个也不能说是漏洞,是WordPress通过redirect_canonical过滤器实现的,用来控制 WordPress 对内容的重定向行为,WordPress 会根据请求的 URL 判断是否需要重定向到规范URL,以防止搜索引擎索引重复内容。
下面是解决办法:
可以通过在主题中添加相关代码或修改服务器配置文件禁止WordPress目录枚举。
在主题中添加禁止目录枚举代码
将下面代码添加到当前主题函数模板functions.php中:
- add_filter( 'redirect_canonical', 'prevent_directory_enum_redirect', 10, 2 );
- function prevent_directory_enum_redirect( $redirect_url, $requested_url ) {
- return $requested_url;
- }
修改服务器配置禁止目录枚举
在Apache的配置文件httpd.conf中添加:
- <Directory "/path/to/your/wordpress/root">
- Options -Indexes
- </Directory>
/path/to/your/wordpress/root需要替换为你实际的WordPress网站根目录路径
在Nginx的配置文件nginx.conf中添加:
- location / {
- autoindex off;
- }