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 相关文章推荐
PHP与javascript对多项选择的处理
Oct 09 PHP
第八节--访问方式
Nov 16 PHP
发布一个用PHP fsockopen写的HTTP下载的类
Feb 22 PHP
PHP5中的时间相差8小时的解决办法
Mar 28 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
May 05 PHP
thinkphp3.2.2实现生成多张缩略图的方法
Dec 19 PHP
php+ajax实现的点击浏览量加1
Apr 16 PHP
详解WordPress中添加和执行动作的函数使用方法
Dec 29 PHP
php编程每天必学之验证码
Mar 03 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
Sep 18 PHP
php7性能提升的原因详解
Oct 13 PHP
Laravel框架处理用户的请求操作详解
Dec 20 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导出oracle库的php代码
2009/04/20 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
用jquery实现输入框获取焦点消失文字
2013/04/27 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
微信小程序 删除项目工程实现步骤
2016/11/10 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
[02:31]2014DOTA2国际邀请赛2009专访:干爹表现出乎意料 看好DK杀回决赛
2014/07/20 DOTA
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
2013/11/27 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
2020/01/21 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
django 模版关闭转义方式
2020/05/14 Python
python定义类的简单用法
2020/07/24 Python
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
Ralph Lauren拉夫·劳伦美国官网:带有浓郁美国气息的高品味时装品牌
2017/11/01 全球购物
Pandora德国官网:购买潘多拉手链、戒指、项链和耳环
2020/02/20 全球购物
计算机专业自荐信
2013/10/14 职场文书
毕业生就业自荐信
2013/12/04 职场文书
服装设计行业个人的自我评价
2013/12/20 职场文书
欢送退休感言
2014/02/08 职场文书
《桥》教学反思
2014/04/09 职场文书
消防标语大全
2014/06/07 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
学风建设演讲稿
2014/09/12 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
2015年三万活动总结
2015/03/25 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书
运动员代表致辞
2015/07/29 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书