WAF的正确bypass


Posted in PHP onJanuary 05, 2017

本文属i春秋的原创奖励计划,未经许可禁止转载!

前言 半年前的我,手握各种WAF的bypass,半年之后的我。就把思路分享出来了。别问我什么!问了我也不会告诉你,我是没事闲的!是不是好多人遇见WAF,就一阵头大呢~今天我就开车啦~大家快上车!

正文 测试环境

php:我使用的是 phpStudy

WAF:各种WAF的官网

测试思路 php的本地环境是用来检测sql语句是否可以执行。

WAF官网用来测试语句是否被拦截。

重点 :

1.HTTP数据包的认识。

2.充分利用数据库的注释功能。

3.有对WAF的构造思路。

测试代码 本地PHP存在注入漏洞的代码:

<?
php$id = $_GET['x'];
$conn = mysql_connect('127.0.0.1','root','Lyy1314...');
mysql_select_db('ceshi',$conn); 
$sql = "select * from user where id={$id}";
$cun = mysql_query($sql);
echo "< charset=utf-8>";while($row = mysql_fetch_array($cun))
{  
echo "url:".$row['URL']."<br>";  
echo "password:".$row['password']."<br>";  
echo "<hr>";
} 
mysql_close($conn);
echo "您当前执行的SQL语句:";
echo urldecode($sql);
?>

GET型注入测试 - 伪造HTTP数据包 GET型注入相对于POST注入来说,在某些方面是比POST注入bypass更轻松一些的。这是为什么呢?答案是因为POST数据包中也包含了GET包哦~我们可以通过伪造POST数据包的方式进行GET注入。

也就是说,GET的类型最少有三种,甚至更多的数据包类型可以进行注入。

如:POST、PUT、GET。

1.测试普通的GET型注入 

WAF的正确bypass

可以发现,上面成功接收到了GET数据包提交的数据。这是理所当然的!

2.测试POST提交的GET型注入 

WAF的正确bypass

从上面可以看出,POST数据包种,确实包含了GET的数据包。所以,在有些时候进行Bypass测试时,适当的改下数据包类型,也是可以的哦。

在360主机卫士的之前版本中,POST提交只拦截POST的数据,当你利用POST数据包进行GET注入时,它是不会进行拦截的哦~ GET型注入测试绕过云锁 - 伪造HTTP数据包 首先,我们去云锁的官网进行Bypass测试! 我们在云锁官网的URL后面加入 and 1=1 进行测试。

当然,正如所料 100% 被拦截 

 WAF的正确bypass

一般情况,大家都会扭头就走~ 那我们现在来伪造个POST数据包,进行测试把~ 

 WAF的正确bypass

正如我们期待的那样,伪造数据包后,WAF就被一棍子打死了~ 有时,即使我们伪造数据包后,仍过不了WAF,不要灰心,因为这个时候WAF的规则绝对比GET包的规则少哦~ GET型注入测试 - 合理构造HTTP数据包 - 思路 在http数据包中每个参数中间都会用&符连接,那么我们可不可以利用这个&符号呢? 下面我们先来进行本地测试! 

WAF的正确bypass

我们发现即使 &符后面的参数被 /* 包含住,这可以被接收到。并没有被注释掉! 那是因为, /* 被HTTP当成了参数a的值,而并不是当成了注释! 有时候,我们可以利用这个方法,加其他的方法来bypass。

后记 挖WAF的bypass时,一定要从多方面入手,编码,协议,语句等,甚至有时都会利用系统的截断!

推荐大家买一本关于 HTTP协议 方面的书籍进行阅读,因为,只有越接近底层,才能越了解它。最后从方方面面进行绕过。

有编程功底的,可以思考一下WAF的编写方式,哪里容易出现漏洞等~比如我们常常用来截断文件的%00,在安全狗中却能截断安全狗对HTTP协议的检测。比如菜刀过狗时,EVAL%00()是不会被杀的!不要只靠别人!思路是你自己的!你学到的知识也是属于你自己的!

PHP 相关文章推荐
如何给phpadmin一个保护
Oct 09 PHP
php 分页类 扩展代码
Jun 11 PHP
PHP 一个随机字符串生成代码
May 26 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
Jul 17 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
Jan 11 PHP
PHP JS Ip地址及域名格式检测代码
Sep 27 PHP
php获得文件大小和文件创建时间的方法
Mar 13 PHP
Zend Framework实现多文件上传功能实例
Mar 21 PHP
一个简单安全的PHP验证码类、PHP验证码
Sep 24 PHP
Zend Framework动作控制器用法示例
Dec 09 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
PHP如何使用JWT做Api接口身份认证的实现
Feb 03 PHP
phpcms的分类名称和类别名称的调用
Jan 05 #PHP
php 5.4 全新的代码复用Trait详解
Jan 05 #PHP
golang 调用 php7详解及实例
Jan 04 #PHP
PHP 与 UTF-8 的最佳实践详细介绍
Jan 04 #PHP
详解Yii2 定制表单输入字段的标签和样式
Jan 04 #PHP
PHPExcel导出2003和2007的excel文档功能示例
Jan 04 #PHP
CI框架实现优化文件上传及多文件上传的方法
Jan 04 #PHP
You might like
PHP教程 基本语法
2009/10/23 PHP
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
img的onload的另类用法
2008/01/10 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
js获取对象为null的解决方法
2013/11/21 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
jQuery 删除/替换DOM元素的几种方式
2014/05/20 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
3种Jquery限制文本框只能输入数字字母的方法
2014/12/03 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
2017/04/04 jQuery
原生JS实现小小的音乐播放器
2017/10/16 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
2020/12/15 Vue.js
[01:51]2014DOTA2西雅图邀请赛 MVP 外卡赛black场间采访
2014/07/09 DOTA
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
浅析HTML5中的 History 模式
2017/06/22 HTML / CSS
Europcar比利时:租车
2019/08/26 全球购物
欢迎领导检查标语
2014/06/27 职场文书
单位更名证明
2015/06/18 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
物业管理交接协议书
2016/03/24 职场文书
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS
【js设计模式】SOLID五大设计原则
2022/03/24 Javascript