目录遍历抓取如何防护?百度云防护完整配置指南,让攻击者无处遁形

攻击者通过简单的../../组合,就能读取你服务器上的配置文件、数据库密码、甚至源代码——这就是目录遍历攻击,也叫路径穿越。它是Web安全中最常见的高危漏洞之一,攻击者利用它来探测网站结构、扫描敏感文件、窃取核心数据。今天我们就来聊聊,如何用百度云防护WAF构建从“自动拦截”到“精准打击”的完整防御体系。

一、 目录遍历攻击是什么?为什么防不住?

目录遍历(Directory Traversal/Path Traversal)是指攻击者通过操纵URL中的路径参数,使用../..\等字符“跳出”当前目录,访问服务器上本不应被公开的敏感文件。

典型攻击手法

攻击目标恶意URL示例
读取密码文件?page=../../../../etc/passwd
读取数据库配置?file=../../config/database.php
读取备份文件?path=../backup.sql
编码绕过?page=..%252f..%252f..%252fetc/passwd(双重URL编码)

为什么传统防护防不住?

  1. 变体极多:攻击者可以组合../..\、URL编码、双重编码、Unicode编码等多种形式,传统的关键词匹配很难覆盖全部。
  2. 正常业务混淆:某些合法的文件管理功能确实需要路径跳转参数,简单封禁../会误伤正常业务。
  3. 慢速扫描:攻击者使用大量代理IP,每个IP只发少量请求,传统的频率限制难以识别。

二、 百度云防护“多层防御”体系

百度云防护WAF针对目录遍历攻击提供了四个层次的防护,层层递进,既能高效拦截攻击,又能避免误伤正常业务。

第一层:基础Web防护引擎(开箱即用)

接入域名后,WAF的基础Web防护引擎默认开启,目录遍历(路径绕过) 是其核心检测能力之一。引擎基于百度云安全AI分析能力,能够自动识别并拦截包含路径穿越特征的恶意请求。

操作路径
登录百度云防护控制台 → 防护配置Web防护Web基础防护

防护等级建议

  • 中级策略集(默认):满足大多数场景,推荐日常使用
  • 高级策略集(严格):防护粒度更精细,可拦截复杂绕过特征,建议业务稳定后开启

处置动作

  • 拦截:命中规则的请求立即阻断,返回403
  • 观察:只记录不拦截,适合新业务试运行,确认无误后再改为拦截

第二层:自定义规则(正则精准打击)

基础引擎可能漏掉一些变种攻击,或者你需要更精细的控制。百度云防护的自定义规则现已全面支持正则表达式匹配,一条规则就能覆盖数十种攻击变体。

配置入口

登录控制台 → 安全防护自定义规则添加规则

推荐规则1:拦截路径穿越符号(一条规则防全部)

配置项内容
规则名称阻断目录遍历攻击
匹配字段URI Path
操作符正则匹配
匹配内容(\.\./|\.\.\|\.\.[0-9a-f]%|\.\.%5c|\.\.[/\\]\.\.)
处置动作拦截

这条规则能够匹配../..\、URL编码后的%2e%2e%2f、双重编码等各类变体。

推荐规则2:拦截敏感备份文件扫描

配置项内容
规则名称拦截敏感文件扫描
匹配字段URI
操作符正则匹配
匹配内容\.(bak|old|backup|swp|sql|tar\.gz|zip|rar|conf|log)$
处置动作拦截

攻击者常用DirBuster等工具扫描备份文件,这条规则可以一网打尽。

推荐规则3:拦截参数中的路径遍历

配置项内容
规则名称拦截参数路径穿越
匹配字段Query String Parameter(参数名如filepagepath
操作符正则匹配
匹配内容\.\.[\\/]
处置动作拦截

针对常见的动态参数(如?file=?page=?path=),专门拦截其中的路径穿越符号。

第三层:精准自定义CC防护(压制慢速扫描)

如果攻击者使用大量代理IP慢速扫描目录,传统的频率限制可能失效。此时可以用精准自定义CC对特定扫描行为进行限频。

推荐配置:限制对文件参数的高频探测

配置项内容
防护类型精准自定义CC
匹配条件Query String Parameter(如filepagepath
统计对象IP
统计时长60秒
阈值20次
处置时长300秒
处置动作JS挑战或拦截

为什么有效:正常用户极少在短时间内对同一个动态参数发起数十次请求,而目录遍历扫描工具却会对一个参数疯狂尝试不同的路径组合。通过限频规则,可以高效压制扫描流量。

第四层:白名单与IP地址簿(防止误伤)

如果你的业务确实需要合法的路径跳转(比如某些文件管理接口必须接收../参数),必须通过白名单来规避误拦。

方案一:按IP放行(适用于内网或合作伙伴)

  1. 创建IP地址簿,将公司出口IP、合作伙伴回调IP等加入
  2. 在自定义规则中引用该地址簿,匹配条件设为IP属于地址簿,处置动作设为放行

方案二:按路径豁免(适用于特定接口)

配置项内容
匹配字段URI Path
逻辑符前缀匹配
匹配内容/legacy/file-manager/
处置动作放行(并勾选“跳过检测模块”)

三、 服务器端配合加固(双重保险)

除了WAF层面的防护,服务器配置同样重要。

Nginx配置加固

location ~* \.(php|conf|sql|bak|old|log)$ {
    deny all;
}

# 防止 alias 使用不当导致的路径遍历
location ^~ /download/ {
    alias /var/www/files/;
    disable_symlinks on;
    if ($uri ~* "\.\./|\.\.") {
        return 403;
    }
    autoindex off;
}

核心要点:

  • 使用^~前缀匹配,优先级高于正则匹配,防止其他location干扰
  • 启用disable_symlinks on;防止符号链接绕过
  • 用正则过滤\.\./\.\.,拦截原始和编码后的路径遍历
  • 设置autoindex off;禁止目录列表,防止信息泄露

Apache配置加固

<Directory "/var/www/html">
    Options -Indexes
    php_admin_value open_basedir /var/www/html
</Directory>

# 使用mod_rewrite拦截路径遍历
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} "@rx \.\." [NC]
RewriteRule .* - [F]

# 禁用.htaccess文件覆盖
<Directory />
    AllowOverride None
</Directory>

robots.txt辅助(非安全手段)

/robots.txt中屏蔽搜索引擎对敏感目录的抓取,但这只是“君子协定”,恶意爬虫不会遵守:

User-agent: *
Disallow: /admin/
Disallow: /backup/
Disallow: /config/
Disallow: /data/

重要提醒:robots.txt不能作为安全防护措施,仅供搜索引擎管理使用。

四、 完整配置清单

防护层次配置要点目的
基础引擎Web基础防护 → 高级策略集自动拦截已知路径遍历攻击
自定义规则(正则)正则匹配 (\.\./|\.\.\\)拦截所有路径穿越变体
自定义规则(后缀)正则匹配 \.(bak|sql|conf)$拦截敏感备份文件扫描
精准CCfile/page 等参数限频压制慢速扫描流量
白名单合法业务路径或IP设为放行避免误伤正常业务
服务器加固Nginx/Apache禁用目录列表、过滤../双重保险
robots.txt屏蔽敏感目录抓取辅助(非安全手段)

五、 验证防护效果

配置完成后,务必进行验证:

  1. 查看攻击日志:在百度云防护控制台的【攻击详情】中筛选被拦截的路径遍历请求,确认规则生效。
  2. 测试路径遍历:尝试访问https://你的域名/../../../../etc/passwd,应返回403或被拦截。
  3. 测试备份文件扫描:尝试访问https://你的域名/config.php.bak,应被拦截。
  4. 检查误报:观察是否有正常请求被误拦,如有,及时添加白名单。

六、 主机吧小结

目录遍历攻击虽然手法多样,但百度云防护WAF提供了从“基础引擎自动拦截”到“正则精准打击”再到“CC限频压制”的完整防御链路。合理配置上述规则,可以有效拦截99%以上的目录遍历扫描,同时确保正常业务不受影响。

如果你还在为目录遍历攻击发愁,或者想为网站做一次全面的安全体检,欢迎联系主机吧。我们提供免费安全评估和配置指导,助你构建从WAF到服务器的立体防线。


主机吧 | 百度云防护官方合作伙伴
提供WAF接入、高防CDN、高防IP、高防服务器、SSL证书一站式服务
让每一次路径遍历都无处遁形,让每一台服务器都固若金汤。

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧