绕过 WAF:绕过一些 WAF 设备的 Burp 插件

我写了这个插件使用的技术博客文章在这里一会儿回来。如果存在特定标头,许多 WAF 设备可能会被诱骗相信请求来自自身,因此是可信的。绕过方法的基础知识可以在此处的 HP 博客文章中找到。

一段时间以来,我一直在 Burp 中实施匹配/替换规则,以将这些标头自动添加到发送到受 WAF 保护的站点的请求中,但决定创建一个插件,可用于将标头添加到主动扫描、转发器请求、入侵者请求中等等。我从 Fishnet Security 那里看到这篇文章,这真的让我大开眼界。

首先,我在 Python 中实现了该插件,因为它既快速又简单,而且我实际上在最近的一个项目中很快就需要它。然后我做了一些关于如何将它实现为 Java 扩展以提高效率的快速研究。

要使用此插件添加必要的头文件,首先您需要下载插件的 Python 版本、插件的 Java 版本或 Java 源代码并自行编译。有了插件后,启动 Burp 并导航到“Extender->Extensions”,然后单击“添加”按钮。选择扩展类型“Java”(如果使用 Java 插件)或“Python”(如果使用 Python 版本),然后导航到扩展路径。配置应该类似于:

添加扩展

现在应该加载插件并显示如下内容:

加载扩展

现在您需要导航到“选项(这里是Project options)->会话”,然后单击“会话处理规则”配置部分的“添加”按钮,如下所示:

添加会话规则

给规则起个名字,然后在“Rule Actions”部分点击“Add”按钮,选择“Invoke a Burp extension”,如下图:

编辑会话规则

您应该能够在下拉框中选择“绕过 WAF”,如下所示:

扩展操作处理程序

单击“确定”,然后选择“范围”选项卡。启用要在扩展范围内的所有工具,然后设置范围。我喜欢为所有工具启用范围,并将请求的范围限制为已添加到套件范围的那些,如下所示:

规则范围

绕过 WAF 包含以下功能:

大多数新功能都基于 Ivan Ristic 在此处和此处找到的 WAF 绕过工作。每个功能的描述如下:

  1. 用户可以修改每个请求中发送的 X-Originating-IP、X-Forwarded-For、X-Remote-IP、X-Remote-Addr 标头。这可能是该工具中最重要的绕过技术。将 WAF 配置为信任自身 (127.0.0.1) 或上游代理设备的情况并不少见,这正是该绕过的目标。
  2. “Content-Type”标头可以在每个请求中保持不变,从所有请求中删除,或者修改为每个请求的许多其他选项之一。一些 WAF 只会根据已知的内容类型解码/评估请求,此功能针对该弱点。
  3. 也可以修改“Host”标头。配置不当的 WAF 可能被配置为仅根据在此标头中找到的主机的正确 FQDN 来评估请求,这正是绕过的目标。
  4. 请求类型选项允许 Burp 用户仅在给定的“GET”或“POST”请求方法上使用剩余的绕过技术,或者将它们应用于所有请求。
  5. 路径注入功能可以不修改请求,注入随机路径信息信息(/path/to/example.php/randomvalue?restofquery),或注入随机路径参数(/path/to/example.php;randomparam=randomvalue?重置查询)。这可用于绕过依赖路径信息的编写不当的规则。
  6. 路径混淆功能将路径中的最后一个正斜杠修改为一个随机值,或者默认情况下什么都不做。最后一个斜杠可以修改为许多值中的一个,这在许多情况下会导致仍然有效的请求,但可以绕过依赖路径信息的写得不好的 WAF 规则。
  7. 参数混淆功能是特定于语言的。PHP 会丢弃每个参数开头的 +,但是可能会为特定的参数名称编写写得不好的 WAF 规则,从而忽略开头带有 + 的参数。同样,ASP 在每个参数的开头丢弃一个 %。
  8. “设置配置”按钮激活您选择的所有设置。

所有这些功能都可以结合起来提供多种旁路选项。我打算在未来的版本中至少添加以下功能:

  1. HTTP 参数污染 - 自动对 GET/POST 参数执行 HPP 攻击。
  2. HTTP 请求走私 - 自动对每个请求执行 HTTP 请求走私攻击,其中在开头添加虚拟请求并在末尾添加真实(走私)请求。

我一直在快速添加功能,并且很可能在任何人实际阅读本文时上述内容都已包含在代码中。

这就是您需要做的所有事情。您可以在此处获取扩展名。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Bash脚本教程之命令提示符

目录 环境变量 PS1 颜色 环境变量 PS2,PS3,PS4 用户进入 Bash 以后,Bash 会显示一个命令提示符,用来提示用户在该位置后面输入命令。 环境变量 PS1 命令提示符通常是美元符号$,对于根用户则是井号#。这个符号是环境变量PS1决定的,执行下面的命令,可以看到当前命令提…

windows apache部署php,Windows下部署Apache+PHP+MySQL运行环境实战

首先是MySQL,(这边吐槽一下被Oracle收购的MySQL)一步一步往下,无需更多的配置然后安装Apache,也是一步一步往下安装PHP,(我偷懒我自豪, 在PHP下载页面找那个Installer的文件.......吐槽可能不是最新的版本 ~)下载页面安…

粉丝提问:有没有人会做彩虹表

彩虹表就是一个庞大的、针对各种可能的字母组合预先计算好的哈希值的集合,不一定是针对MD5算法的,各种算法的都有,有了它可以快速的破解各类密码。越是复杂的密码,需要的彩虹表就越大,现在主流的彩虹表都是100G以上。 …

javax.cache_新的Java缓存标准(javax.cache)

javax.cache这篇文章探讨了新的Java缓存标准:javax.cache。 它如何适应Java生态系统 该标准由JSR107开发,作者是共同规范负责人。 JSR107包含在JSR342开发的Java EE 7中。 Java EE 7将于2012年底完成。但是与此同时,javax.cache将在Java SE …

oracle修改某表中的顺序,oracle 数据库 , 表中字段顺序修改

1.首先需要sys或者system权限操作2.查询需要更改的表的IDselect object_id from all_objects where owner ‘用户名‘ and object_name ‘tableName‘; 注:表名需要大写3.通过ID查询出该表所有字段的顺序select obj# , col# , name from sys.col$ where obj# ‘…

clearfix清除浮动

在开发html页面时&#xff0c;我们经常会用到css的清除浮动&#xff0c;这里我推荐一种版本的清除方法&#xff0c;个人感觉非常好用。 .clearfix:before,.clearfix:after{content:"";display:table; } .clearfix:after{clear:both;} .clearfix{*zoom:1; } 1 <!DO…

fofa自动化爬虫脚本更新+详解

fofa自动化爬虫脚本更新详解 起因 最近要用到fofa爬虫&#xff0c;为什么要用爬虫不用api&#xff0c;问就是穷&#xff0c;想起来之前写过一个相关的脚本&#xff1a;Fofa-python-脚本&#xff0c;是很久以前写的了&#xff0c;之前写的时候有点问题&#xff0c;昨天重新修…

【APICloud系列|16】苹果开发者账号如何更改双重认证的手机号

按照一般的更改流程&#xff1a; 现在苹果账号安全系统升级&#xff0c;一般需要同意协议或者和本公司密切相关的人员才能操作。我这种借苹果手机操作的人除外。 那我用win7电脑如何操作呢&#xff1f; 登录苹果开发者账号&#xff0c; 进入如下管理账号地址&#xff1a;htt…

使用Hibernate JPA的自定义布尔用户类型

ANSI SQL 1999标准引入了BOOLEAN数据类型&#xff08;尽管遗憾的是仅作为可选功能&#xff09;。 但是到目前为止&#xff0c;大多数主要的数据库系统仍未实现它。 结果&#xff0c;布尔列以各种方式实现。 例如&#xff0c;包含“ Y”或“ N”的CHAR列&#xff0c;或使用BIT列…

JS文件信息收集工具-LinkFinder

0x00 前言 我们在渗透测试的之前&#xff0c;信息收集是必要的步骤&#xff0c;而JS文件中往往会暴露出很多的信息&#xff0c;比如一些注释的中铭感信息&#xff0c;内网ip地址泄露等等&#xff0c;还会有一些绝对路径或者相对路径的url&#xff0c;而这些url中很有可能就存在…

extjs中Store和grid的刷新问题

问题1&#xff1a;Store.load() 和Store.setproxy()区别 问题2:修改后的Grid 更新&#xff1a; Store.reload() 问题3&#xff0c;store删除后刷新会出问题 Store移除一行&#xff1a;Store.removeAt(Number index) 从数据集中删除指定索引位置的记录     或者Store.reload…

linux将txt文件复制为bak,Linux命令:cp (copy)复制文件或目录

复制文件&#xff0c;只有源文件较目的文件的修改时间新时&#xff0c;才复制文件cp -u -v file1 file2.将文件file1复制成文件file2cp file1 file2.采用交互方式将文件file1复制成文件file2cp -i file1 file2.将文件file1复制成file2&#xff0c;因为目的文件已经存在&#xf…

【APICloud系列|28】苹果开发者账号应该如何续费?

本次更新时间:2020/7/13 登录苹果开发者账号,一般还有1个月到期官方会给你发邮件,不懂英文的可以使用谷歌翻译功能。 目前的后台提醒是这样的,我给你翻译一下 这个如果没有到期,使用Apple Developer这个应用程序进行充值缴费。 对应地址:https://developer.apple.com/i…

linux中第一个进程的形成,Linux进程管理

1.进程基本概述定义&#xff1a;进程是已经启动的可执行程序的运行中实例。/proc目录下以数字为名的目录&#xff0c;每一个目录代表一个进程&#xff0c;保留着进程的属性信息&#xff0c;每一个进程的PID是唯一的&#xff0c;就算进程退出了&#xff0c;其他进程也不会占用其…

XX(北京)科技股份公司为啥需要购置服务器?

其实老板只是要一个量化的标准,只是没人能讲明白,我简单陈述一下: 公司现在只有一台阿里的1核两G的1M带宽服务器40G,属于低配,买了3年的,打了三折花了2800元左右,为啥需要额外购置服务器呢? 目前服务器上有,一个后台管理系统,一个小程序,一个APP,一个网站,目前就…

[BZOJ 1588] [HNOI 2002] 营业额统计

1588: [HNOI2002]营业额统计 Time Limit: 5 SecMemory Limit: 162 MBDescription 营业额统计 Tiger最近被公司升任为营业部经理&#xff0c;他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger拿出了公司的账本&#xff0c;账本上记录了公司成立以…

Python----socket编程

socket 一、socket是什么&#xff1f; socket 通常也称为“套接字”&#xff0c;用于描述 IP 地址和端口&#xff0c;是一个通讯链的句柄。应用程序通常通过 “套接字”向网络发出请求或者应答网络请求。说白了&#xff0c;就是一种通讯机制。它类似于公司的电话客服部门&…

怎样编写测试类测试分支_测试技巧–不编写测试

怎样编写测试类测试分支对此没有太多疑问&#xff0c;测试代码的方式是一个有争议的问题。 不同的测试技术由于各种原因&#xff08;包括企业文化&#xff0c;经验和总体心理观点&#xff09;而受到不同开发人员的青睐。 例如&#xff0c;您可能更喜欢编写经典的单元测试&#…

linux文件权限umask,linux系统中UMASK权限的用法讲解

原标题&#xff1a;linux系统中UMASK权限的用法讲解umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限。这里要说明两点&#xff1a;1、针对目录来说x权限代表可以进入该目录&#xff0c;所以说对于这个权限初始赋值是没什么问题的;2、针对文件的x的权限代表执行…

怎么样才算高级java工程师

高级水平&#xff1a; 1.能对需求进行架构设计&#xff0c;选择框架以适应最合适的业务&#xff0c;作为某个项目的领导&#xff0c;带领团队完成项目。 2.有自己的开源项目&#xff0c;可以写出自己的组件&#xff0c;对开源的框架能够进行二次编写&#xff0c;java核心技术有…