《Web安全攻防 渗透测试实战指南》学习笔记(8) - WAF

如有侵权,请联系删除

简介

WAF,俗称”狗“。就是看门狗的狗。主要功能就是保护web应用不受黑客的入侵。
WAF主要有一下几类:

  1. 软件型。就是在Web服务器上的一个应用程序,和服务器上的文件直接接触,时刻检查是不是有Webshell之类的文件。
  2. 硬件型。这个比较高级啊,是放在链路中,是硬件,可以监控恶意流量什么,很高级的样子。
  3. 云WAF。类似一种CDN,在转发之前先将请求报文进行过滤。
  4. 网站系统内置的WAF。通常网站都会做这种处理,比如什么黑名单白名单,编码绕过,双写绕过,绕的都是这些。

WAF判断

Sqlmap

Sqlmap中的--identify-waf可以识别有没有WAF。

sqlmap -u "http://www.xxx.com" --identify-waf --batch

如果安装的WAF没什么特征,那么识别出的类型就是Generic

手工判断

比如一条网址正常是127.0.0.1/test.php,那么你就127.0.0.1/test.php?aaaaa=11111 union select 1,2,3%23,大概就这种感觉,因为这个请求根本不存在,按理说不会管。但是里边的词却有可能被WAF拦截,所以此时如果被拦截就说明有WAF。

绕过

感觉书中的真的是抛砖引玉,很多在之前都已经说的老掉牙的了。这里之写我不太熟悉的,其实这些绕过真的是比较重要,关于这些应该关注一些大佬的博客,或者大佬的公众号,学。

使用注释

这个和内联注释多多少少有点区别的还是。
内联注释是因为当中间有!,后边内容就会执行。这里的注释指的是,WAF可能会将注释符连带中间的内容全部换成空,这样就会有效避免内联注释那种绕过方式了。
但是假如payload是这样union /*d*/ select /*b*/1,2,3#,WAF那条傻狗过滤完正好变成union select 1,2,3#

多参数请求拆分

以sql注入为例,GET请求中的a=1 & b=2传到sql语句时会变成and,就像这样and a=1 and b=2
所以,可以利用这一特性绕过。比如a=union & b=select 1,2,3#,但是这样还不可以,因为这样可能可以绕过WAF,到是没有意义,因为变成sql语句是and a=union and b=select 1,2,3#
所以我们要a=unino/*&b=*/select 1,2,3#,这样变成sql语句就是这样了,and a=union/*and b=*/select 1,2,3#,也就是,and a=union select 1,2,3#

寻找网站IP

当我们使用ip直接访问网站的时候,是不会经过云WAF的。
至于怎么找到网站ip在之前信息收集那里说过了。

HTTP参数污染

color=red&color=bule为例
HTTP参数污染表

服务器中间件解析结果举例说明
ASP.NET / IIS所有出现的参数值用逗号连接color=red,bule
ASP / IIS所有出现的参数值用逗号连接color=red,bule
PHP / Apache仅最后一次出现参数值color=blue
PHP / Zeus仅最后一次出现参数值color=blue
JSP, Servlet / Apache Tomcat仅第一次出现参数值color=red
JSP, Servlet / Oracle Application Server 10g仅第一次出现参数值color=red
JSP, Servlet / Jetty仅第一次出现参数值color=red
IBM Lotus Domino仅最后一次出现参数值color=blue
IBM HTTP server仅第一次出现参数值color=red
mod_perl, libapreq2 / Apache仅第一次出现参数值color=red
Perl CGI / Apache仅第一次出现参数值color=red
mod_wsgi(Python) / Apache仅第一次出现参数值color=red
Python / Zope转化为Listcolor=[‘red’,‘blue’]

所以,假如中间件是一个IIS,那么我们的payload可以由union select 1,2,3变为union/*&inject=*/select/*&inject=*/1&inject=2&inject=3,这样经过IIS之后,就会变为union/*,*/select/*,*/1,2,3




这里确实说的只是一些再基本不过的了,实战中根本没这么容易。可以说,我在实战中真的基本没怎么绕成功过…
而通常绕WAF是一切的开始,我们需要判断出绕过的规则才能写相应的脚本来进行渗透测试。这部分绝不是上边说的那么简单。
大家还是得多看大牛的文章,别老看我的这这些入门TIPS!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值