waf审计工具

lightbulb-framework的Python项目详细描述


#lightbulb
lightbulb是一个开源的python框架,用于审核web应用程序防火墙和过滤器。

<;p align="center">;
<;img src="https://lightbulb-framework.github.io/assets/images/logo5full.png"height="400">;
<;/p>;

远程过滤和消毒程序,也就是说,只要给出查询目标程序和观察输出的能力。

**sfadiff**:基于符号有限自动机(sfa)学习的黑盒差异测试算法

这样的差异可用于指纹识别或创建针对安全软件(如Web应用程序防火墙(WAF))的规避攻击,这些安全软件旨在检测对Web应用程序的恶意输入。

现代应用程序安全的基本构造块。例如,用于处理信用卡交易的组织的pci标准规定,面向internet的任何应用程序都应该受到waf的保护,或者成功地通过代码审查过程。然而,尽管web应用防火墙的流行和重要性,它的审计仍然是一项具有挑战性和复杂性的任务。查找绕过防火墙的攻击通常需要特定漏洞类的专家域知识。因此,没有掌握这些知识的渗透测试人员会留下公开的攻击字符串列表,比如xss备忘单,这通常不足以彻底评估WAF产品的安全性。

我们证明了自动机学习算法可以用来获得有用的waf模型。给出了这样一个模型,我们展示了如何手动或自动构造一个描述可能的攻击集的语法,然后根据获得的防火墙模型对其进行测试。此外,如果我们的系统无法找到攻击,则生成防火墙的正则表达式模型以供进一步分析。使用此技术,我们在流行的waf中发现了10多个以前未知的漏洞,如mod security、phpids和expose,允许我们绕过防火墙安装sql注入和xss攻击。最后,我们介绍lightbulb,一个开源的python框架,用于使用上述技术审计web应用程序防火墙。在发行版中,我们包含了一组用于查找漏洞的语法。

[![BHEU16演示文稿](http://image.slidesharecdn.com/another brick-161109104820/85/another-brick-off-the-wall-deconstructing-web-application-firewalls-using-automata-learning-1-320.jpg)(http://www.slideshare.net/einstais/another-brick-off-the-wall-deconstructing-web-application-firewalls-using-automata-lea)rning)


info\<;module\>;打印模块信息
library进入库
modules显示可用的应用程序模块
use\<;module\>;进入模块
start\<;modulea\>;\<;moduleb\>;|启动算法
帮助打印帮助
状态检查并安装所需的包
complete打印bash completion命令

当前模块信息
library输入库
options显示可用选项
define\<;option\>;\<;value\>;设置选项值
start initiate algoritm
complete打印bash completion命令

库命令:

位于灯泡/data/)
cat\<;folder\&module\>;打印请求的模块(文件夹必须位于灯泡/data/)
modules\<;folder\>;显示请求文件夹中的可用库模块(文件夹必须位于灯泡/data/)
search\<;keywords\>;使用逗号分隔的关键字搜索可用的库模块
complete打印bash completion命令

pip和build实用程序:

对于apt平台(ubuntu,debian…):
``bash
sudo apt get install flex
sudo apt get install python pip
sudo apt get install python dev
sudo apt get install build essential
``

(apt可选)如果要添加支持对于mysql测试:
``bash
sudo apt get install libmysqlclient dev
```

fedora…)如果您想添加支持MySQL测试:
``bash
sudo yum install-y mysql devel
sudo yum install-y mysql python
```

https://github.com/lightbulb framework/lightbulb framework
cd lightbulb framework
制作灯泡状态
`````

您还可以从pip存储库安装它。这首先需要安装最新的setuptools版本:

``bash
pip install setuptools--升级
pip install lightbulb framework
lightbulb status
````

env/bin/activate
pip安装灯泡框架
灯泡状态
````

"灯泡状态"命令将指导您安装mysqldb和openfst支持。如果在Linux中使用Virtualenv,则仅在安装libmysqlclient dev包时才需要"sudo"命令。


应注意,如果要使用BURP扩展,则不必使用"灯泡状态"命令。原因是这个命令安装了"openfst"和"mysql"绑定,默认情况下扩展使用的是jython,它不支持c绑定。建议仅当您想从设置中更改BURP扩展配置并启用本机支持时才使用该命令。

[Debian Linux上的灯泡安装](https://j.gifs.com/o75xwl.gif)](https://www.youtube.com/watch?V=JJW32JC744G)安装burp扩展名

如果希望使用新的gui,可以使用[burp套件]的扩展名(https://portswigger.net/burp/)。首先,您必须使用burp proxy和jython设置一个工作环境

*从[此处](http://www.jython.org/downloads.html)下载最新的jython
*找到本地python包安装文件夹*
*配置burp extender以使用这些值,如下所示*

<;img src="https://lightbulb-framework.github.io/assets/images/burp_jython_python.png"width="300">;

*选择新的灯泡模块("burp extension.py")并将扩展类型设置为"python"

<;img src="https://lightbulb-framework.github.io/assets/images/burp_extension.png"width="600">;

*您可以忽略此步骤,安装包含所有必需的python包的独立版本。您可以[在此处]下载它(https://github.com/lightbulb framework/lightbulb framework/files/2079793/lightbulb framework.zip)

\examples


查看[维基页面](https://github.com/lightbulb-framework/lightbulb-framework/wiki)以获取使用示例。

##贡献者

*乔治·阿吉罗斯
*伊奥尼斯·斯塔斯
*苏曼·贾纳
*安杰洛斯·D·克罗伊蒂斯
*阿吉洛斯·基亚亚斯


参考文献

**G.阿吉罗斯、I.斯塔斯、S.贾纳、A.D.克罗伊蒂斯和A.基亚亚斯。2016。sfadiff:使用黑箱差分自动机学习的自动规避攻击和指纹识别。在2016年ACM SIGSAC计算机和通信安全会议记录(CCS’16)。ACM,纽约,纽约,美国,1690-1701。DOI:10.1145/2976749.2978383*
**G.Argyros、I.Stais、A.Kiayias和A.D.Keromytis,"黑色回归:对消毒剂和过滤器进行正式的黑盒分析",2016年IEEE安全与隐私研讨会(SP),加利福尼亚州圣何塞,2016年,第91-109页。doi:10.1109/sp.2016.14*


欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java中运行时在两个枚举类之间切换   java如何让PicoContainer启动/停止/处置工厂注入的组件?   带有Recyclerview onClick的java多活动   java如何从TestNG tests和Selenium接口调用默认方法?   java无法在Eclipse3.5.2中折叠注释   RR和SJF CPU调度算法的Java代码   java从属性文件配置记录器   java Notify传输在字符更改后超过20个字节完成   java阵列究竟是如何工作的   java跨类/包维护全局但可变的变量   java向setMessageListener注册侦听器服务   java按钮单击不在片段中工作   java GSSExException:使用spnego在GSSAPI上未指定故障(机制级别:不支持/启用带有HMAC SHA196的加密类型AES256CTS模式)   用java绘制虚线的图形   java从networkdrive启动windows捆绑包使用不包括JRE?   多线程java线程体系结构与应用程序设计