服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - PHP教程 - WAF的正确bypass

WAF的正确bypass

2021-04-13 16:56傀儡 PHP教程

这篇文章主要介绍了WAF的正确bypass的相关资料,需要的朋友可以参考下

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

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

正文 测试环境

php:我使用的是 phpstudy

waf:各种waf的官网

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

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

重点 :

1.http数据包的认识。

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

3.有对waf的构造思路。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
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()是不会被杀的!不要只靠别人!思路是你自己的!你学到的知识也是属于你自己的!

原文链接:http://bbs.ichunqiu.com/portal.php

延伸 · 阅读

精彩推荐
  • PHP教程php 可变函数使用小结

    php 可变函数使用小结

    PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。本文重点给大家介绍php 可变函数使用...

    烟熏妆5202019-09-27
  • PHP教程PHP中empty,isset,is_null用法和区别

    PHP中empty,isset,is_null用法和区别

    最近在阅读项目的源码,发现源码中就对empty、isset和is_null函数(语言特性)乱用,有的地方很明显的就挖坑了。不能正确的去理解这些东西,就很可能给...

    PHP教程网11562021-04-25
  • PHP教程thinkphp 抓取网站的内容并且保存到本地的实例详解

    thinkphp 抓取网站的内容并且保存到本地的实例详解

    这篇文章主要介绍了thinkphp 抓取网站的内容并且保存到本地的实例详解的相关资料,需要的朋友可以参考下...

    modou9442021-06-21
  • PHP教程简单实现PHP留言板功能

    简单实现PHP留言板功能

    这篇文章主要教大家如何简单实现PHP留言板功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    尘中客10282021-04-08
  • PHP教程教你如何开启shopnc b2b2c 伪静态

    教你如何开启shopnc b2b2c 伪静态

    最近要给一个shopnc网站开启伪静态,用的是shopnc b2b2c,在网上搜索了好多shopnc开启伪静态的方法,但都是针对shaopnc c2c的,没有关于shopnc b2b2c的,最后终于...

    PHP开发实例3962020-08-01
  • PHP教程php设计模式之单例模式实例分析

    php设计模式之单例模式实例分析

    这篇文章主要介绍了php设计模式之单例模式,实例分析了单例模式的原理与相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    蓝祖生5392020-09-06
  • PHP教程如何使用PHP批量去除文件UTF8 BOM信息

    如何使用PHP批量去除文件UTF8 BOM信息

    如果PHP文件头部包含BOM信息,就会输出一个空白,在很多时候会带来问题,比如我们session无法工作、cookie无法设置等等问题 ...

    PHP教程网3922020-05-13
  • PHP教程全面了解PHP中的全局变量

    全面了解PHP中的全局变量

    下面小编就为大家带来一篇全面了解PHP中的全局变量。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    PHP教程网6992021-01-28