来自:FreeBuf.COM,*参考来源:kalitutorials, secist 编译
http://www.freebuf.com/articles/web/138589.htm
Web应用防火墙通常会被部署在Web客户端与Web服务器之间,以过滤来自服务器的恶意流量。而作为一名渗透测试人员,想要更好的突破目标系统,就必须要了解目标系统的WAF规则。如今,许多WAF都是基于签名的。下图简单描绘了一个Web应用防火墙的工作流程:
什么是基于签名的防火墙?
在基于签名的防火墙中你可以自定义签名,如果你知道某种网络攻击遵循某种类型的模式或签名。那么你就可以定义匹配模式过滤掉它们,例如:
Payload:-
将HTML标签转换为Unicode或Hex实体
如果防火墙正在过滤html标签,如<,>。我们则可以尝试将这些实体进行Unicode或Hex转码再进行发送,如果被转化为原始形式,那么这也将成为我们的一个突破口。我们可以使用以下代码进行判断:
listofPayloads = ['','\u003cb\u003e','\x3cb\x3e']
for payLoads in listofPayloads:
maliciousRequest = mec.Browser()
formName = 'waf'
maliciousRequest.open("http://check.cyberpersons.com/crossSite
Check.html")
maliciousRequest.select_form(formName)
maliciousRequest.form['data'] = payLoads
maliciousRequest.submit()
response = maliciousRequest.response().read()
print "---------------------------------------------------"
print response
print "---------------------------------------------------"
我的输出结果如下:
从结果可以看到,并没有编码的条目被转换为其原始格式。
总结
通过本文的介绍,相信大家已经对防火墙有了一个基本的了解和认识。作为一名安全测试人员,了解和掌握防火墙的工作机制是非常必要的。而对于企业而言,更不能忽视了安全的重要性。
●编号667,输入编号直达本文
●输入m获取文章目录
Python编程
更多推荐《18个技术类公众微信》
涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。