2022 鹏城杯 Pwn Writeup
睡前第一的,半夜被人偷偷上分,早上起来就掉到第三了 拿了两个一血,还行 one 经典close 1的格式化字符串 修改printf的返回值到_start让_IO_2_1_stdout_指针残留在栈上 修改fileno为2重新获得输出,然后常规orw from pwn import* import random r=remote("192.168.1…
ACTF Pwn Writeup
mykvm 实现了一个最基础功能kvm虚拟机 没有配置页表,因此vcpu运行在real mode下 设置code_size为0x1000,可以将栈上大量存留指针memcpy进虚拟机内存中,来实现泄漏libc 内存空间从0x603000开始,而注意到在0x60A000处存在一个dest指针指向堆 该指针在虚拟机hlt后会接受一个memcpy,因此考虑…
CISCN华东北赛区半决赛Pwn-WP
Duck 2.34的uaf,简单粗暴,通俗易懂 from pwn import* r=remote("192.168.166.196",58013) #r=process('./main') context.log_level='debug' libc=ELF("./libc.so.6") def new(): r.recvuntil(": ") …
劫持struct msg_msg结构体的两种利用方法
基于uffd的任意地址写 基于list_del的任意地址写 函数调用链 do_msgrcv()->[find_msg()]->list_del()->__list_del_entry()->__list_del() 源码分析 #define POISON_POINTER_DELTA 0 #define LIST_POISON…
2022DASCTF X SU 三月春季挑战赛 SU_message出题小记
比赛结果 居然是0解,但是果然是0解…… 本题改编自CVE-2022-0185,参考链接:https://kagehutatsu.com/?p=526   出题前置 由于Linux Kernel在5.11之后禁止了unprivileged uffd,因此传统意义上的基于struct msg_msg的劫持方法不再适用 因此,即使是在CVE-…
Linux Kernel Pwn常用gadget
shm_file_data size: 0x20 (kmalloc-32) ns, vm_ops泄漏kernel_base file泄漏kernel堆地址 struct shm_file_data { int id; struct ipc_namespace *ns; struct file *file; const struct vm_opera…
NCTF2021 Writeup
感谢各位大师傅们捧场 题目被各位师傅们快打烂了 希望师傅们玩的开心 login 简单的栈迁移 控制rbp后调用main函数中的read向bss段上写入ROP 调用完毕后调用leave完成栈迁移 from pwn import* #r=remote("129.211.173.64",10005) r=process('./main') context…
2021 西湖论剑 Pwn Writeup
string_go 简单栈溢出 from pwn import* #r=remote("82.157.20.104",29800) r=process('./main') context.log_level='debug' libc=ELF("./libc-2.27.so") def write(content): r.recvuntil(">…