常见WAF绕过思路】的更多相关文章

WAF分类 0x01 云waf 在配置云waf时(通常是CDN包含的waf),DNS需要解析到CDN的ip上去,在请求uri时,数据包就会先经过云waf进行检测,如果通过再将数据包流给主机. 0x02 主机防护软件 在主机上预先安装了这种防护软件,可用于扫描和保护主机(废话),和监听web端口的流量是否有恶意的,所以这种从功能上讲较为全面.这里再插一嘴,mod_security.ngx-lua-waf这类开源waf虽然看起来不错,但是有个弱点就是升级的成本会高一些. 0x03 硬件ips/ids…
1,大小写混排 这可以算最容易想到的方式了.大小写绕过用于只针对小写或大写的关键字匹配技术,正则表达式 /express/i 大小写不敏感即无法绕过,这是最简单的绕过技术. 举例: z.com/index.php?page_id=- uNIoN sELecT ,,, 减少漏报方法:对每个关键字或每种情况都做大小写转换的处理. 2,替换关键字 这种情况下大小写转化无法绕过,而且正则表达式会替换或删除 select.union 这些关键字,如果只匹配一次就很容易绕过. 举例: z.com/index…
大纲: WAF防护原理讲解 目录扫描绕过WAF 手工注入绕过WAF sqlmap绕过WAF 编写salmap绕过WAF 过WAF一句话编写讲解 菜刀连接绕过WAF webshell上传绕过WAF 提权绕过WAF WAF绕过原理详解 知己知彼百战百胜 了解WAF防护原理 查看WAF防护位置 熟悉防护规则 了解防护机制 查看拦截时间阀值 目录扫描绕过WAF 两种方式: 1.修改客户端IP 2.减慢扫描速度 3.通过代理欺骗WAF 手工注入绕过WAF 搭建测试环境 了解绕过原理 熟悉常见绕过构造语句…
本课重点 案例1:上传数据包参数对应修改测试 案例2:safedog+云服务器+uploadlabs测试 案例3:safedog+云服务器+uploadlabs_fuzz测试 案例4:文件上传安全修复方案-函数自定义及WAF 案例1:上传数据包参数对应修改测试 上传参数名解析:明确哪些东西能修改? Content-Dispostion:一般可更改 name:表单参数值,不能更改 filename:文件名,可以更改 Content-Type:文件MIME,视情况而定 案例2:safedog+云服务…
从偶然的机会发现一个mysql特性到wooyun waf绕过题 MayIKissYou | 2015-06-19 12:00 最近在测试的时候,偶然的机会发现了一个mysql的特性, 为啥是偶然的机会呢..... 一次测试的过程中我在mysql的console下做了如下的操作: 看出些什么了么? 我当时发现报错的时候例如-+{等符号 报错的时候提示的是''(双引号里没东西),但是如select后面添加1 a等内容的时候报的是 selecta,select1等等. 想到共性了么,-+{等等内容是能…
说到APP手势密码绕过的问题,大家可能有些从来没接触过,或者接触过,但是思路也就停留在那几个点上,这里我总结了我这1年来白帽子生涯当中所挖掘的关于这方面的思路,有些是网上已经有的,有些是我自己不断摸索所发现的. 这里说下APP手势密码绕过的危害,手势密码一般应用在支付类,金融类,安全类等相关的APP,比如XX金融,XX支付,XX钱包,XX安全中心等APP,这些基本都会有手势密码,手势密码是一个用户的第一把APP锁,如果这个锁攻破了,那么后面也就容易对用户造成威胁,虽然这个问题利用起来是需要物理操…
一,畸形包绕过 1.先关闭burpsuite长度更新,为get请求,先使用bp的method转换为POST请求 2.get请求中空格使用%20代替,Connection改为keep-alive 二,分块传输绕过waf 1.先在数据包中添加Transfer-Encoding: chunked 2.数字代表下一列字符所占位数,结尾需要两个回车  三,协议覆盖waf绕过 1.首先将数据包转换为文件上传包格式,使用bp工具change body encoding 2.删除多余空格 3.添加参数filen…
原文:https://mp.weixin.qq.com/s/aeRi1lRnKcs_N2JLcZZ0Gg 0X00    Fuzz/爆破 fuzz字典 1.Seclists/Fuzzing https://github.com/danielmiessler/SecLists/tree/master/Fuzzing 2.Fuzz-DB/Attack https://github.com/fuzzdb-project/fuzzdb/tree/master/attack 3.Other Payload…
文件上传在数据包中可修改的地方 Content-Disposition:一般可更改 name:表单参数值,不能更改 filename:文件名,可以更改 Content-Type:文件 MIME,视情况更改 常见绕过WAF的方法 数据溢出-防止WAF匹配(xxx...)' 符号变异-防止WAF匹配(' " ;) 数据截断-防止WAF匹配(%00 ; 换行) 重复数据-防止WAF匹配(参数多次) WAF绕过简单演示 我以靶场upload-labs第二关进行演示. 我们开启安全狗的上传防护: 第2关上…
#一点补充 在老版本的安全狗中,可通过构造payload: http://xx.xx.xx.xx/sqli-labs/Less-2/index.php/x.txt?id=1 and 1=1 可通过index.php/x.txt正常解析. 根据mysql的一些特性的payload: %23x%0aunion%23x%0Aselect%201,2,3 等价于: # union# select 1,2,3 %20union%20/*!44509select*/%201,2,3 等价于: union /…
WAF绕过神器 (过安全狗.智创SQL注入) 发布时间:-- :10文章来源:网络文章作者:panni007 点击次数: 次 分享到: QQ空间 QQ微博 新浪微博 开心网 人人网 摘要:起因: bystander分享了简单绕过安全狗进行任何操作 让狗形同虚设, 其中有个秒安全狗神器,刚好论坛有个关于安全狗突破的求助网站,我去试了试,发现可行,但是有一个问题: 就是上传后,无法查看源文件来看看上传后的地址..只能通过抓包来看了..在加上... 起因: bystander分享了 简单绕过安全狗进行…
#堆叠查询注入 1.堆叠查询概念 stacked injections(堆叠查询注入)从名词的含义就可以看出一应该是一堆(多条)sql语句一起执行.而在真实运用中也是如此,我们知道在mysql中,主要是命令行中,每一条语句后面加":"表示为语句的结束.这样我们就能想到是不是可以多句一起执行.而在不同额数据库中,堆叠的知识体系不同.堆叠注入只产生在一小部分数据库中. 在遇到我们知道管理员的账号和密码,密码是加密的,且无法解密:此时我们就可以使用堆叠注入进行插入数据,用户密码自定义的,可以…
关系型数据库 关系型数据库:指采用了关系模型来组织数据的数据库. 直白的说就是:关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织 当今主流的关系型数据库有:Oracle,Microsoft SQL Server,MySQL,PostgreSQL,DB2, Microsoft Access, SQLite,MariaDB Oracle Oracle特性: select id,contents,time from news where news_id=1 ① union…
前言: 起初是抓包时候查看返回状态码不一致,所以觉得是否可以通过修改状态码来达到绕过的目的,但是拦截响应包再替换手速不够,技术大哥就去搜了下,找到了一个方法,可以自动替换响应包内容. 在偏下方一点的地方有这个修改响应包的地方.Match是输入识别的内容需要使用正则表达式. replace填写被替换的内容. 这里要进行多次替换,所以这里一步一步来看 这里首先登录失败一次,在登录成功一次,看看数据包内容到底有什么不同, 下面的是登录失败内容,上面一点的是成功内容,这里看看有什么不同 这里内容从{"c…
场景 文章是关于某些客户端漏洞导致几个阿里巴巴网站的帐户被接管. 条件 TL;DR 必要条件,例如JSONP,某些浏览器处理cookie等行为. 攻击原理 大多数阿里巴巴的网站加载并执行外部JavaScript对象,JavaScript代码从名为的cookie中获取值uid.攻击者可以uid代表受害者将价值改变为恶意有效Payload,从而导致帐户接管. 漏洞发现的简要步骤 1.找到一个URL(ynuf.alipay.com),返回在许多阿里巴巴网站上执行的JavaScript代码. 2.实现了…
表面上看.在windows中. 假设是a进程创建了b进程,那么a进程就是b进程的父进程.反之,假设是b创建了a,那么b进程就是a的父进程,这是在windows出现以来一直是程序员们都证实的,可是在在win Vista后面有了一个新安全消息机制.UAC(user account control),这里科普下UAC的功能,事实上UAC就是大家常见的安装软件或者启动程序的时候的出现的全屏变暗的一个提示框,这里顺便提醒下大家不要把它的提醒级别减少.这里大家不要蓄意把他的提示级别较低.这样会带来非常大的安…
主要思路: 根据WAF部署位置,针对WAF.WEB服务器.WEB应用对协议解析.字符解析.文件名解析.编码解析以及SQL语法解析的差异,绕过WAF,将payload送至服务器执行. 常用绕过方法: 1.转换特征字符大小写 2.利用注释绕过 3.编码特征字符绕过 4.分隔重写特征字符绕过 5.利用截断字符绕过 6.变换变量位置绕过 7.针对域名保护的绕过 8.超大数据包绕过 9.转换数据提交方式绕过 10.HPP(HTTP参数污染)绕过 1.利用性能因素绕过. WAF在设计的时候都会考虑到性能问题…
研究过国内外的waf.分享一些绝技. 一些大家都了解的技巧如:/*!*/,SELECT[0x09,0x0A-0x0D,0x20,0xA0]xx FROM 不再重新提及. 以下以Mysql为例讲述这些技巧: tips1: 神奇的  (格式输出表的那个控制符) 绕过空格和一些正则匹配. Default mysql> select`version`() -> ; +----------------------+ | `version`() | +----------------------+ | 5…
WAF介绍 什么是WAF? Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品. 基本/简单绕过方法: 1.注释符 http://www.site.com/index.php?page_id=-15 /*!UNION*/ /*!SELECT*/ 1,2,3,4…. 2.使用大小写 http://www.site.com/index.php?page_id=-15 uNIoN sELecT 1,2,3,4…. 3.结合前面两种方法 http://…
目录 1.大小写绕过 2.简单编码绕过 3.注释绕过 4.分隔重写绕过 5.Http参数污染(HPP) 6.使用逻辑运算符 or /and绕过 7.比较操作符替换 8.同功能函数替换 9.盲注无需or和and 10.加括号 11.缓冲区溢出绕过 1. 大小写绕过这个大家都很熟悉,对于一些太垃圾的WAF效果显著,比如拦截了union,那就使用Union UnIoN等等.绕过 2.  简单编码绕过比如WAF检测关键字,那么我们让他检测不到就可以了.比如检测union,那么我们就用%55 也就是U的1…
---恢复内容开始--- What is UAC?…
0x1  白盒 0x2 黑盒 一.架构层 1.寻找源站==> 2.利用同网段==> 3.利用边界漏洞==> ssrf只是一个例子 二.资源限制 Waf为了保证业务运行,会忽略对大的数据包的检测 三.协议层 1.协议未覆盖绕过 举例,waf只对get请求检测,把get换成post绕过waf 2.参数污染 举例,index.php?id=1&id=2 Waf识别的是id=1,也只检测id=1 中间件识别的是id=2,在这注入 四.规则层面…
1.大小写绕过 这个大家都很熟悉,对于一些太垃圾的WAF效果显著,比如拦截了union,那就使用Union UnIoN等等绕过. 2.简单编码绕过 比如WAF检测关键字,那么我们让他检测不到就可以了.比如检测union,那么我们就用%55也就是U的16进制编码来代替U,union写成 %55nION,结合大小写也可以绕过一些WAF,你可以随意替换一个或几个都可以. 也还有大家在Mysql注入中比如表名或是load文件的时候,会把文件名或是表明用16进制编码来绕过WAF都是属于这类. 3.注释绕过…
1.大小写绕过 这个大家都很熟悉,对于一些太垃圾的WAF效果显著,比如拦截了union,那就使用Union UnIoN等等绕过. 2.简单编码绕过 比如WAF检测关键字,那么我们让他检测不到就可以了.比如检测union,那么我们就用%55也就是U的16进制编码来代替U,union写成 %55nION,结合大小写也可以绕过一些WAF,你可以随意替换一个或几个都可以. 也还有大家在Mysql注入中比如表名或是load文件的时候,会把文件名或是表明用16进制编码来绕过WAF都是属于这类. 3.注释绕过…
SQL注入 十六进制绕过引号 slect table_name from information_schema.table where table_schema="sqli"; slect table_name from information_schema.table where table_schema=0x73716c69; slect table_name from information_schema.table where table_schema=CHAR(115, 11…
再次骚扰 某SRC提现额度竟然最低是两千,而已经有750的我不甘心呐,这不得把这2000拿出来嘛. 之后我就疯狂的挖这个站,偶然发现了一个之前没挖出来的点,还有个存储型XSS! 刚开始来到这个之前挖过但没挖出来的站,看了一下感觉这站没啥东西了啊,然后来到评论区又一次测试了一下 先简单测试一下 心态:随意吧 <img src=0> 结果是一空的,啥也没有 普通的没用肯定是过滤了,想着直接抓包测试吧更快些 抓包后发现编码过 编码后:%3Cimg+src%3D%22javascript%3Aaler…
(1)大小写绕过 此类绕过不经常使用,但是用的时候也不能忘了它,他原理是基于SQL语句不分大小写的,但过滤只过滤其中一种. 这里有道题 (2)替换关键字 这种情况下大小写转化无法绕过而且正则表达式会替换或删除select.union这些关键字如果只匹配一次就很容易绕过 http://www.xx.com/index.php?page_id=-15 UNIunionON SELselectECT 1,2,3,4 (3)空格绕过 payload select/**/*/**/from/**/yz;…
文件夹下载不下来或者无法访问,很多时候是因为没有该文件夹的权限,或者没有将该文件夹挂载到对应docker下. 远程服务器和本地服务器测试结果不同,需要排查代码是否是git上同一版本的代码. 代码相同,输出不同,则查看输入的数据是否相同. 每次运行结果不同,则查看是否存在顺序可以变动的结果,如dateframe的排序. 如果运行结果没反应,查看输入输出 代码修改不生效,查看是否docker没有重新启动 TypeError: list indices must be integers or slic…
冒泡排序 通过相邻元素的比较和交换,使得每一趟循环都能找到未有序数组的最大值或最小值. 最好:O(n),只需要冒泡一次数组就有序了. 最坏: O(n²) 平均: O(n²) *单项冒泡 function bubbleSort(nums) { for (let i=0 , len=nums.length; i<len-1; i++) { //如果一轮比较中没有需要交换的数据,则说明数组已经有序,主要是为了对[5,1,2,3,4]之类的数组进行优化. let mark = true; for (le…
首先,从问题出发: http://ac.scmor.com/ 在谷歌学术镜像网收集着多个谷歌镜像的链接.我们目标就是要把这些链接拿到手. F12查看源码可以发现,对应的a标签并不是我们想要的链接,而是一个js点击函数. 其实在 onclick="visit('AD0mWAw2VVYgWiAdDB4LHQwqaxY2XxcVL0M9FiEYTxM=')" 上面一段代码里,AD0mWAw2VVYgWiAdDB4LHQwqaxY2XxcVL0M9FiEYTxM=就是加密后的url链接. vi…