运用Python检测并绕过Web应用程序防火墙

访客5年前关于黑客接单640

Web运用防火墙一般会被布置在Web客户端与Web服务器之间,以过滤来自服务器的歹意流量。而作为一名浸透测验人员,想要更好的打破方针体系,就有必要要了解方针体系的WAF规矩。现在,许多WAF都是根据签名的。下图简略描绘了一个Web运用防火墙的作业流程:
什么是根据签名的防火墙?
在根据签名的防火墙中你能够自界说签名,假如你知道某种 *** 进犯遵从某种类型的形式或签名。那么你就能够界说匹配形式过滤掉它们,例如:
Payload :- alert`1`
上面界说的是一种常见的XSS payload,咱们知道一切这类进犯都或许包括- >“”这些字符 ,因而咱们能够在WAF中设定一个包括这些字符的的过滤规矩,咱们能够进行如下界说:
alert(*)
榜首个签名将过滤任何包括字符串的恳求,第二个将过滤任何包括alert(*)字符串的恳求。
怎么判别方针环境是否布置防火墙?

当咱们对一个体系进行浸透时,假如你疏忽了防火墙的存在,那么就会为咱们的测验带来许多的费事。因而在开端真实的浸透之前,咱们更好能先判别下方针体系是否存在WAF。那么咱们该怎么进行判别呢?咱们还拿以上界说的payload来举例。在一般情况下,假如咱们在一个布置有WAF的体系上履行以上payload,那么在http的呼应中咱们将能捕获到WAF留下的轨道:
HTTP/1.1 406 Not Acceptable
Date: Mon, 10 Jan 2019
Server: nginx
Content-Type: text/html; charset=iso-8859-1
Not Acceptable!Not Acceptable! An appropriate representation of the
requested resource could not be found on this server. This error was generated by Mod_Security
能够看到,咱们的payload被名为Mod_Security的防火墙给过滤了。在本文中我将教咱们编写一个简略的python脚本,以协助咱们完结检测使命并绕过防火墙。
过程1:界说HTML文档和PHP脚本!
首要,咱们有必要界说咱们的HTML文档来注入payload和相应的PHP脚本以处理数据。
HTML文档界说如下:
html>
body>
form name="waf" action="waf.php" method="post">
Data: input type="text" name="data">br>
input type="submit" value="Submit">
form>
body>
html>
 PHP脚本:
html>
body>
Data from the form :  echo $_POST["data"]; ?>br>
body>
html>
 过程2:预备歹意恳求!
为了检测防火墙的存在与否,第二步咱们需求创立一个会被防火墙阻挠的歹意跨站脚本恳求。这儿我将用到一个名为“Mechanize”的python模块,了解更多关于此模块的信息,请阅览下文:
Automate Cross Site Scripting (XSS) attack using Beautiful Soup and Mechanize
假如你现已了解了Mechanize模块,能够越过此文章的阅览。现在,咱们就能够对恣意页面供给的Web表单建议恳求了。完成代码如下:
import mechanize as mec
maliciousRequest = mec.Browser()
formName = 'waf'
maliciousRequest.open("http://check.cyberpersons.com/crossSiteCheck.html")
maliciousRequest.select_form(formName)
让我来简略解说下这几行代码的意图:
在榜首行代码,咱们首要导入了mechanize模块,并给它了一个简称’mec’以便咱们后续运用。
要想运用mechanize下载网页,咱们需求实例化浏览器。因而在第二行代码中,咱们实例化了浏览器。
在过程1中咱们界说了咱们的HTML文档,其间表单名称为“waf”。因而在第三行代码中,咱们需求告知mechanize要挑选以此命名的表单进行提交,所以formName变量为‘waf’。
第四行代码便是翻开方针URL地址,并提交咱们的数据。
最终咱们运用’select_form()’函数传递’formName’变量。
在以上的HTML文档中,咱们只界说了一个表单输入字段,咱们将运用该字段注入咱们的歹意payload,并经过查看http呼应信息来判别方针是否布置了Web运用防火墙。
过程3:预备payload
在HTML文档中咱们界说了一个名为’data’的输入字段:
input type="text" name="data">
因而,咱们能够运用以下代码来提交咱们的payload:
crossSiteScriptingPayLoad = "svg>script>alert`1`p>"
maliciousRequest.form['data'] = crossSiteScriptingPayLoad
榜首行代码咱们首要将payload赋给了变量‘crossSiteScriptingPayLoad’。
第二行代码咱们将payload提交给了表单字段“data”。
过程4:提交表单并记载呼应
下面咱们提交此表单并记载呼应信息:
maliciousRequest.submit()
response = maliciousRequest.response().read()
print response
提交表单
将呼应赋给变量。
将将呼应信息打印出来。
因为我现在并未装置布置防火墙,所以我得到了如下呼应:

能够看到payload被打印在了HTML文档中,这也阐明运用程序代码中没有任何的过滤机制,而且因为没有防火墙的维护,咱们的歹意恳求也未被阻挠。

[1] [2] [3]  黑客接单网

相关文章

Brida:运用Frida进行移动使用浸透测验

Brida是一款 Burp Suite 扩展,作为一座桥梁衔接着Burp Suite以及Frida,以协助用户修正运用程序与后端服务器之间的通讯数据为己任。在剖析移动端运用时遇到运用运用随机密钥式对称...

DedeCMS v 5.7 sp2 RemoveXSS bypass

DedeCMS 简称织梦CMS,当时最新版为 5.7 sp2,最近又去挖了挖这个CMS,发现过滤XSS的RemoveXSS函数存在缺点导致能够被绕过。 相关环境 源码信息:DedeCMS-V5.7-U...

第六届全国网络安全大赛代码审计全解

 XDCTF是一项面向全国在校大学生的信息安全类竞赛,由西电信息安全协会与网络攻防实训基地联合举行。旨在增强学生对网络常识的爱好,进步学生学习网络技术的积极性,培育学生的立异 认识、协作精力和理论联系...

RIG exploit kit:歹意活动剖析陈述

尽管攻击方式不算复杂,但是RIG仍然能通过一些恶意软件活动获得较大的流量。而那些利用被黑站点和恶意广告,重定向到RIG的流量,是通过服务端的302跳转机制,或者是通过客户端的iframe和JS脚本...

抽象语法树分析寻找FastJSON的Gadgets-黑客接单平台

0×01导言 在计算机科学中,笼统语法树是源代码语法结构的一种笼统表明,它以树状的办法体现编程言语的语法结构,树上的每个节点都对应为源代码中的一种语法结构。笼统语法树能够说是静态代码剖析中最常用的,也...

向Web服务器投递恶意挖矿软件的蠕虫-黑客接单平台

实践中,面向公共互联网供给服务的体系或服务器,都是处于边际方位的。所以无论是物联网设备仍是企业级服务器,只要能被外界访问到,那就会无时无刻被进犯。 最近,咱们发现了一种进犯方法,多个公司Apache...