CVE-2023-21839漏洞分析
CVE-2023-21839漏洞分析
漏洞描述Easily exploitable vulnerability allows unauthenticated attacker with network access via T3, IIOP to compromise Oracle WebLogic Server.
影响版本
Weblogic 12.2.1.3.0
Weblogic 12.2.1.4.0
Weblogic 14.1.1.0.0
漏洞环境docker-compose.yml
123456789version: '2'services: weblogic: image: vulhub/weblogic:12.2.1.3-2018 environment: debugFlag: "true" ports: - "7001:7001" - "8453:8453"
漏洞复现
工具来源:https://github.com/DXask88MA/Weblog ...
CVE-2022-44268漏洞分析
CVE-2022-44268漏洞分析
漏洞描述ImageMagick 7.1.0-49 is vulnerable to Information Disclosure. When it parses a PNG image (e.g., for resize), the resulting image could have embedded the content of an arbitrary file (if the magick binary has permissions to read it).
漏洞环境vulhub环境
漏洞复现安装依赖
1pip install pypng
使用poc.py生成poc
1python poc.py generate -o poc.png -r /etc/passwd
上传文件并保存新生成的图片为out.png
使用poc.py提取文件信息
1python poc.py parse -i out.png
PNG组成
最好结合010Editor进行分析
PNG数据块
PNG定义了两种数据块,分别为关键数据块和辅助数据块
...
Tomcat内存马
浅析Tomcat内存马
Web应用初始化流程
部署描述文件中由<listener>元素标记的事件监听器会被创建和初始化,事件监听器如果实现了ServletContextListener接口,将会调用其实现的contextInitialized()方法
部署描述文件中由<filter>元素标记的过滤器会被创建和初始化,并调用其init()方法,每一次请求时都只调用doFilter()方法进行处理
部署描述文件中由<servlet>元素标记的Servlet会根据<load-on-startup>的权值按顺序创建和初始化,并调用其init()方法,Servlet一旦被装入到Web容器之后,一般会长久驻留,直到Web容器停止运行或重新装入Servlet时结束生命周期,Servlet在第一次访问之后都只调用doGet()或doPost()方法
TomcatTomcat体系结构
Server:表示一个Tomcat实例(单例),即整个catalina servlet容器,主要是用来管理容器下各个Serivce组件的生命周期
Servi ...
Handlebars AST注入
详细分析Handlebars AST注入
原理图
handlebars的parser在解析NumberLiteral类型的字符串时会使用Number()函数进行强制转换,正常情况下这个字符串只能数字,但是用过原型链污染我们可以构造一个非数字型的字符串
12345678// node_modules\handlebars\dist\cjs\handlebars\compiler\parser.jscase 35: this.$ = { type: 'StringLiteral', value: $$[$0], original: $$[$0], loc: yy.locInfo(this._$) }; break;case 36: this.$ = { type: 'NumberLiteral', value: Number($$[$0]), original: Number($$[$0]), loc: yy.locInfo(this._$) }; break;
在将AST编 ...
Dubbo反序列化漏洞研究
分析一下CVE-2019-17564和CVE-2020-1849两个漏洞
前置知识简介
Apache Dubbo是一个分布式框架,致力于提供高性能透明化的RPC远程服务调用方案,以及SOA服务治理方案。Apache Dubbo在实际应用场景中主要负责解决分布式的相关需求。
dubbo
dubbo支持多种序列化方式并且序列化是和协议相对应的。比如:Dubbo支持dubbo、rmi、Hessian、http、webservice、thrift、redis等多种协议。
Hessian
Hessian是一种跨语言的高效二进制序列化方式。但这里实际不是原生的Hessian2序列化,而是阿里修改过的Hessian lite,Hessian是二进制的web service协议,官方对Java、Flash/Flex、Python、C++、.NET C#等多种语言都进行了实现。Hessian和Axis、XFire都能实现web service方式的远程方法调用,区别是Hessian是二进制协议,Axis、XFire则是SOAP协议,所以从性能上说Hessian远优于后两者,并且Hess ...
Yii2最新反序列化POP链分析
Yii2 <= 2.0.42
研究Yii2最新的反序列化RCE,并参考作者思路挖掘新的Gadget
安装环境1composer create-project --prefer-dist yiisoft/yii2-app-basic yii2
把目录放到网站下,访问http://127.0.0.1/yii2/web即可
然后在controllers/SiteController.php文件下添加我们的测试路由:
1234public function actionTest(){ return unserialize(base64_decode($_GET["data"]));}
漏洞利用12345678910111213141516171819202122232425262728293031323334353637<?phpnamespace Faker;class DefaultGenerator{ protected $default ; function __construct($arg ...
Laravel Debug mode RCE复现
CVE-2021-3129
Laravel <= 8.4.2
Ignition <= 2.5.1
环境搭建
在kali2020下复现
123456789git clone https://github.com/laravel/laravel.git # 下载laravel源码cd laravel # 切换到laravel目录git checkout -b e849812 # 切换到存在漏洞的分支composer update # 更新composercomposer install # composer安装依赖composer require facade/ignition==2.5.1 # 下载存在漏洞版本组件mv .env.example .env # 更改.env文件php artisan key:generate # 生成Application keyphp artisan serve # 启动 ...
Fastjson反序列化漏洞研究
研究Fastjson各版本系列反序列化漏洞
源码:https://github.com/alibaba/fastjson/wiki/Quick-Start-CN
安装依赖推荐在maven中配置,在pom.xml中添加
12345678<dependencies> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.24</version> </dependency></dependencies>
前置知识漏洞原理fastjson通过parse、parseObject处理以json结构传入的类的字符串形时,会默认调用该类的共有s ...
内网穿透
记录内网穿透的一些知识
前置知识内网穿透
利用各种隧道技术,以网络防火墙允许的协议,绕过网络防火墙的封锁,实现访问被封锁的目标网络。
隧道技术
隧道技术是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将这些其他协议的数据帧或包重新封装在新的包头中发送。新的包头提供了路由信息,从而使封装的负载数据能够通过互联网络传递。被封装的数据包在隧道的两个端点之间通过公共互联网络进行路由。被封装的数据包在公共互联网络上传递时所经过的逻辑路径称为隧道。一旦到达网络终点,数据将被解包并转发到最终目的地。注意隧道技术是指包括数据封装、传输和解包在内的全过程。
隧道分类
网络层隧道:ICMP等
传输层隧道:TCP、UDP等
应用层隧道:HTTP、DNS、SSH、RDP等
实战环境
在实战环境中,我们要考虑目标机器的出入网情况,有可能只允许ICMP出入网,抑或是只允许HTTP出网,我们需要视特定情况选择对应的隧道,选择反弹shell、代理或者端口转发,选择正向代理或者反向代理等等。
环境目标机器:
Win7
192.168 ...
babyvm-vm逆向
题目源于【GWCTF 2019】,考点为vm逆向
记录一道比较典型的vm题
主函数程序主函数如下,下面我们对调用到的3个函数进行分析
vm自定义方法sub_55BE054DCCD1()函数用于存储需要调用到的方法,也可以观察到每调用完一次操作,a1就会自增跳到下一个命令,类似RIP功能
12345678910111213141516171819202122232425262728unsigned __int64 __fastcall sub_55BE054DCCD1(__int64 a1){ unsigned __int64 v2; // [rsp+18h] [rbp-8h] v2 = __readfsqword(0x28u); *(_DWORD *)a1 = 0; *(_DWORD *)(a1 + 4) = 0x12; *(_DWORD *)(a1 + 8) = 0; *(_DWORD *)(a1 + 12) = 0; *(_QWORD *)(a1 + 16) = &unk_55BE056DE060; *(_BYTE *)(a1 + 24) ...