zzzzz

  • Home
  • About
  • Tags
  • Archives

USBFuzz - 论文学习与代码复现

Posted on 2025-03-20

论文阅读

USB用于主机与各种外部设备的连接与通信。攻击者可以利用该接口对操作系统内核、设备驱动进行恶意攻击。模糊测试(fuzzing)作为一种广泛应用的自动化测试技术,可以用于发现软件中的漏洞。然而,对USB设备驱动进行模糊测试需要克服众多挑战:跨越软硬件障碍、输入设备数据到驱动程序等。

该论文提出的 USBFuzz 是一种可移植、灵活且模块化的 USB 驱动模糊测试框架,其核心是使用软件仿真 USB 设备为驱动程序提供随机设备数据。作者对 Linux 内核中的大量且广泛的 USB 驱动程序应用了 (i) 覆盖引导的模糊测试;(ii) 在 FreeBSD、MacOS 和 Windows 中通过 Linux 输入进行的dump fuzzing;以及 (iii) 针对 USB 网络摄像头驱动程序的重点模糊测试。

最后,作者使用 USBFuzz 共发现了 26 个新漏洞,包括 16 个在不同 Linux 子系统(USB 核心、USB 声音和网络)中具有高安全影响的内存漏洞,FreeBSD 中发现了一个漏洞,MacOS 中发现了三个漏洞,Windows 8 和 Windows 10 中发现了四个漏洞,以及在 Linux USB 主控制器驱动程序中发现了一个漏洞,USB 摄像头驱动程序中又发现了一个漏洞。在 Linux 漏洞中,修复并上游了 11 个漏洞,并获得了 10 个 CVE。

Read more »

PWN - [强网杯 2022]devnull writeup

Posted on 2025-03-19

首先查看文件信息:

1
2
3
4
5
Arch:     amd64-64-little
RELRO: Full RELRO
Stack: No canary found
NX: NX enabled
PIE: No PIE (0x3f4000)
Read more »

NSSCTF/PWN - [SUCTF 2018 招新赛]unlink writeup

Posted on 2025-03-18

首先查看程序信息:

1
2
3
4
5
Arch:     amd64-64-little
RELRO: Partial RELRO
Stack: Canary found
NX: NX enabled
PIE: No PIE (0x3fe000)
Read more »

NSSCTF/PWN - [NISACTF 2022]UAF writeup

Posted on 2025-03-17

看上去是一个经典的菜单题,根据题目名称可以推测是UAF漏洞,于是开始分析程序。

Read more »

Linux内核交叉编译(AARCH64)

Posted on 2025-02-10

步骤

1. 获取内核源码

1
2
3
wget https://git.kernel.org/torvalds/t/linux-6.14-rc2.tar.gz

# 解压...

2. 安装交叉编译工具链

1
2
sudo apt install fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
sudo apt install gcc-aarch64-linux-gnu
Read more »

Frida在J2SE上的基本使用

Posted on 2024-11-06

Frida server

服务器配置

  • 操作系统:Ubuntu Linux
  • IP:192.168.76.142
  • OpenJDK 11, OpenJFX

运行Frida server

1
user@VMware-Virtual-Platform:~/apps$ sudo ./frida-server-16.4.4-linux-x86_64 -l 0.0.0.0:23947

运行java用户程序

1
2
3
4
user@VMware-Virtual-Platform:~/challs$ java --module-path $PATH_TO_FX --add-modules javafx.controls,javafx.fxml -jar ./WhackAMoleGame_flag1.jar & echo "$!"
[1] 53915
53915

Frida client

python部分:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import frida
import sys


with open(sys.argv[1], "r") as f:
jscode = f.read()


def printMessage(message, data):
if message["type"] == "send":
print("[*] {0}".format(message["payload"]))
else:
print(message)


device = frida.get_device_manager().add_remote_device("192.168.76.142:23947")
print(device)
process = device.attach(53915)

script = process.create_script(jscode)
script.on("message", printMessage)
script.load()
sys.stdin.read()

JavaScript部分:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// let libjvm = Module.enumerateSymbolsSync('libjvm.so');
Java.perform(function () {
var ClassName = Java.use("yyyyy");
console.log("Find ClassName Successfully!" + ClassName); //定位类成功!

Java.enumerateLoadedClasses({
onMatch: function (c) {
if (!c.includes("xxxxx")) return;
try {
console.log(c);
let props =
"\t" + Object.getOwnPropertyNames(Java.use(c).__proto__).join(", ");
console.log(props);
} catch (error) {}
},

onComplete: function () {},
});

let clazz1 = Java.use("packegeName.className");
clazz1["foo1"].overload().implementatin = () => {
console.log("foo1");
};

clazz1["foo2"].overload("java.lang.String").implementatin = (
s
) => {
console.log("foo2" + s);
};
});

2024DASCTF夏季PWN

Posted on 2024-07-24

springboard

格式化字符串漏洞,且字符串不在栈上的类型:

通过任意地址写,将main函数的ret addr改为one gadget即可。

Read more »

2024春秋杯PWN

Posted on 2024-07-15

stdout

main函数调用init:

1
2
3
4
5
int init()
{
setvbuf(stdout, 0LL, 0, 0LL);
return setvbuf(stdin, 0LL, 2, 0LL);
}

setvbuf第三个参数用来控制文件流的缓冲模式,可以在下面三个值中选择:

1
2
3
#define _IOFBF // argument to setvbuf indicating fully buffered I/O
#define _IOLBF // argument to setvbuf indicating line buffered I/O
#define _IONBF // argument to setvbuf indicating unbuffered I/O
Read more »

编译Android系统及驱动

Posted on 2024-07-06

1 引言

简单记录了这三天来编译Android系统内核、驱动走过的路。遇到了很多坑和不懂的东西,为了下次少走些弯路所以简单总结下。横跨很多天的工作不免记忆模糊,如果参考本博客时遇到问题欢迎大家下方留言和指正。

Read more »

VMP1.1 逆向分析

Posted on 2024-07-03

1 引言

几年来,逆向一直停留在CTF坐牢水平,脱壳也就会用工具、最多说说原理。所以决定开始“深入”了解下脱VMP壳。当然,毕竟要循序渐进,我们还是从最简单的开始。这里我们选择了VMP1.1版本,自己编写简单的程序并用其加壳,将原程序与加壳后程序进行对比分析。

Read more »

Windows win32k 漏洞 & CVE-2021-1732 分析

Posted on 2024-06-13

win32k漏洞

win32k.sys运行在Windows系统内核态,主要负责GUI相关的工作,用户态的user32.dll与其合作。个人感觉比较常见的漏洞对象在于tagWnd及其相关的数据结构和API。

Read more »

浅析 windows cve-2023-21768

Posted on 2024-06-06

漏洞简介

cve-2023-21768 是一个 Windows 11 22H2 系统中的本地权限提升漏洞,该漏洞源于AFD.sys这个模块。

Read more »

CISCN2024 Qual writeup

Posted on 2024-05-20

简单题是很水,没做出来的题也很让人崩溃。

Read more »

D^3CTF Reverse/车联网 Writeup

Posted on 2024-04-30

考完研第一次完整的参加一次CTF,考也没考上,ida咋用也忘干净了,还让队友掉出了前十。这就滚去学习re和iov。

Read more »

西湖论剑 2024 Reverse WriteUp

Posted on 2024-02-04

MZ

使用IDAPython脚本进行一次搜索即可:

Read more »

Hello World

Posted on 2023-06-06

image-20211105151514789

231231232

312321

DASCTF2022_11月赛

Posted on 2022-11-29

babytea

这个题目用到了比较简单的TEA加密,但是使用异常处理来打乱了控制流。

Read more »

AES加密学习笔记

Posted on 2022-10-22

AES128 ECB 分析

key expansion

AES128 ECB的密钥拓展是将Nk * 4字节的密钥Key拓展为(Nr + 1) * Nb * 4字节的ExpKey。
ExpKey里面的数据分成了(Nr + 1)组,每一组就是用来和state相加的RoundKey。

Read more »

Writeup - ASIS CTF 2022 Quals reverse [partial]

Posted on 2022-10-20

traditional

analysis

附件是一个无壳elf64和一个flag.enc文件,猜测是要对flag.enc文件进行解密。

Read more »

Windows kernel exploit - HEVD Stack Overflow

Posted on 2022-10-03

HEVD 环境搭建

安装Visual Studio 2022、cmake、git cli,然后从https://github.com/hacksysteam/HackSysExtremeVulnerableDriver 下载源码,然后用内置的bat脚本编译即可。

Read more »

BUUOJ pwn刷题记录(持续更新)

Posted on 2022-08-04

Stack & ROP

1
TODO....

not_the_same_3dsctf_2016

checksec

Read more »

HWSCTF2022初赛WriteUp

Posted on 2022-08-01

HWS2022 WriteUp

reverse

re1

TEA变种,key为0x1234,0x2345, 0x4567, 0x6789, 直接对密文进行解密即可

Read more »

SCTF2019 babyre

Posted on 2022-07-24

babyre

附件

  • babygame

分析

IDA打开,定位到main函数:

Read more »

ACTF2022 复现 2

Posted on 2022-07-20

kcov

附件

  • launch.sh
  • bzImage
  • rootfs.cpio.gz
    Read more »

buuoj reverse crackMe

Posted on 2022-07-17

crackMe

附件

  • crackme.exe

分析

IDA定位到wmain函数

Read more »

手动编译UPX并修改Loader

Posted on 2022-07-14

编译UPX源码

系统环境:

  • Ubuntu 22.04
  • Python 2
  • Gcc 11, G++ 11, Make 4.3
    Read more »

ACTF2022 复现

Posted on 2022-07-12

dropper

脱壳 & 多进程

(1) 脱壳

从github.com/upx/upx上下载最新的源码编译并脱壳即可

Read more »

CISCN 2022 华北赛后复盘

Posted on 2022-07-01

reverse

rtMaze

首先打开题目发现只有一个linux脚本和bin文件. 根据脚本里的QEMU以及对bin进行file后, 可以推断是一个固件逆向之类的题目, 且架构为ARM.

Read more »

Windows驱动开发 用户层与内核层通信

Posted on 2022-02-01

内核层

用户层与内核层通信可以使用IoCreateDeviceSecure函数创建的设备(Device)作为中间媒介IoCreateDeviceSecure在成功情况下会通过参数返回一个DeviceObject,此时的设备还不能直接被用户层程序使用,需要为其创建一个符号链接(Symbolic Link).

Read more »

buuoj rev xx

Posted on 2022-01-05

buuoj [rev] xx

知识点:xxtea

Read more »
123Next

70 posts
25 tags
RSS
GitHub E-Mail
Friends
  • 快来占坑
© 2025 zsy
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4