目录枚举(Directory Enumeration)漏洞,是一种常见的安全漏洞,允许攻击者枚举服务器上的目录或文件结构,进而获取敏感信息、识别潜在的弱点或利用已知漏洞进行攻击。
最近碰到一个问题,用户建企业网站要求非常严格,登录页面不允许外网访问、注册登录不允许错误提示、用户首次登录强制要求修改密码等,WordPress本身无相关设置,只能通过配置Nginx、修改程序文件、添加强化代码实现。
还有个漏洞就是随便域名后面添加一个字母,会自动跳转到相近的页面。
这个也不能说是漏洞,是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;
}