技术文章

46 articles

CVE-2022-21882 Win32k内核提权漏洞深入分析

  • 1、漏洞介绍
  • 2、漏洞影响版本
  • 3、分析环境
  • 4、背景知识
  • 5、漏洞成因
  • 6、利用漏洞的流程
    • 6.1、触发用户态回调
    • 6.2、HOOK回调函数
    • 6.3、修改窗口模式为模式1
    • 6.4、回调返回伪造偏移量
    • 6.5、泄露内核窗口数据结构
    • 6.6、如何布局内存
  • 7、EXP分析调试
  • 8、两种提权方式
    • 8.1、设置token
    • 8.2、修改Privileges
  • 9、补丁分析
  • 10、参考链接

CVE-2022-21882漏洞是Windows系统的一个本地提权漏洞,微软在2022年1月份安全更新中修补此漏洞。[......]

Read more

CVE-2021-33742:Internet Explorer MSHTML堆越界写漏洞分析

  • 1、漏洞背景
  • 2、漏洞简介
  • 3、分析环境
    • 3.1、提取漏洞模块
    • 3.2、关闭ASLR
  • 4、漏洞复现
  • 5、Internet Explorer DOM树的结构
    • 5.1、以文本为中心的设计
    • 5.2、增加复杂性层次结构
    • 5.3、原来的DOM没有经过封装
  • 6、漏洞原理分析
    • 6.1、逆向mshtml.dll中此漏洞的相关类
      • 6.1.1、CSpliceTreeEngine
      • 6.1.2、CTreeNode
      • 6.1.3、CTreePos
      • 6.1.4、CTreeDataPos
        • 6.1.4.1、Tree::Te[......]

Read more

CVE-2021-22205 GitLab RCE之未授权访问深入分析(一)

查看公众号原文

前言

安全研究员vakzz于4月7日在hackerone上提交了一个关于gitlab的RCE漏洞,在当时并没有提及是否需要登录gitlab进行授权利用,在10月25日该漏洞被国外安全公司通过日志分析发现未授权的在野利用,并发现了新的利用方式。根据官方漏洞通告页面得知安全的版本为13.10.3、13.9.6 和 13.8.8。我将分篇深入分析该漏洞的形成以及触发和利用。本篇将复现分析携带恶意文件的请求是如何通过gitlab传递到exiftool进行解析的,接下来将分析exiftool漏洞的原理和最后的触发利用。预计会有两到三篇。希望读者能读有所得,从中收获到自己独特的见解。在[......]

Read more

某mpv播放器因格式化字符串导致远程代码执行漏洞深入分析(CVE-2021-30145)

 

一、背景介绍

mpv项目是开源项目,可以在多个系统包括Windows、Linux、MacOs上运行,是一款流行的视频播放器,mpv软件在读取文件名称时存在格式化字符串漏洞,可以导致堆溢出并执行任意代码。

二、环境搭建

系统环境为Ubuntu x64位,软件环境可以通过两种方式搭建环境。

1. 通过源码编译,源码地址为:https://github.com/mpv-player/mpv/tree/v0.33.0

下载地址为:https://github.com/mpv-player/mpv/archive/refs/tags/v0.33.0.zip

2. 直接安[......]

Read more

Apache dubbo (CVE-2020-1948) 反序列化远程代码执行漏洞及其补丁绕过深度分析

Apache Dubbo简介

 

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册) 其核心部分包含:

  • 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
  • [......]

Read more

JAVA JNDI注入知识详解

一、前言

在漏洞挖掘或利用的时候经常会遇见JNDI,本文会讲述什么是JNDI、JNDI中RMI的利用、LDAP的利用、JDK 8u191之后的利用方式。

二、JNDI简介

JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API,命名服务将名称和对象联系起来,使得我们可以用名称访问对象。

这些命名/目录服务提供者:

  • RMI (JAVA远程方法调用)
  • LDAP (轻量级目录访问协议)
  • CORBA (公共对象请求代理体系结构)
  • DNS (域名服务)

JND[......]

Read more

JAVA RMI反序列化知识详解

一、前言

在Java反序列化漏洞挖掘或利用的时候经常会遇见RMI,本文会讲述什么是RMI、RMI攻击方法、JEP290限制、绕过JEP290限制。

二、RMI简介

JAVA本身提供了一种RPC框架 RMI及Java 远程方法调用(Java Remote Method Invocation),可以在不同的Java 虚拟机之间进行对象间的通讯,RMI是基于JRMP协议(Java Remote Message Protocol Java远程消息交换协议)去实现的。

RMI调用逻辑

3

image-20200506223648108

RMI主要分为三部分

  • RMI Registry注册中心
  • [......]

Read more

相似样本查找引擎研究

目录:

一、概述。

二、基于可变长度特征的相似度。

1、两个字符串之间的相似度(最短编辑距离)。

2、从样本到变长特征。

(1)     强弱hash模型。

(2)     关键字密度模型。

三、基于固定长度特征的相似度。

1、修改的K-means算法。

2、从样本到定长特征。

(1)     基于数据频度的量化。

(2)     基于图片压缩的算法。

四、总结。

五、引用。

一、概述

在日常工作中,病毒分析师经常被要求在样本库里查找相似样本。比如在获得某APT组织的样本的情景下,希望查找其历史版本来确定组织的活动时[......]

Read more

pwn的艺术浅谈(二):linux堆相关

这是linux pwn系列的第二篇文章,前面一篇文章我们已经介绍了栈的基本结构和栈溢出的利用方式,堆漏洞的成因和利用方法与栈比起来更加复杂,为此,我们这篇文章以shellphish的how2heap为例,主要介绍linux堆的相关数据结构和堆漏洞的利用方式,供大家参考。

0.前置知识

0.0 编译+patch方法

how2heap源码地址https://github.com/shellphish/how2heap,为了方便调试编译时使用gcc -g -fno-pie xx.c –o xx。这里先介绍一种linux下patch文件加载指定版本libc的方法,patchelf –set-i[......]

Read more

pwn的艺术浅谈(一):linux栈溢出

这个系列主要介绍linux pwn的基础知识,包括堆栈漏洞的一些利用方法。这篇文章是这个系列的第一篇文章。这里我们以jarvisoj上的一些pwn题为例来对linux下栈溢出利用和栈的基本知识做一个简单的介绍。题目地址:https://www.jarvisoj.com/challenges

0. Level0,栈的基本结构及nx绕过

首先查看一下题目的保护措施(如下图所示),可以看到是一个只开启了NX的64位linux程序。

clip_image002

关于linux pwn常见的保护

0.RELRO

部分RELRO(由ld -z relro启用):

将.got段映射为只读(但.got.pl[......]

Read more