2023 祥云杯总决赛 部分Writeup
是谁第一天AWDP五道题修了四道只做了一道,被第一甩下2w5的分差 是谁第二天CTF七道题就做了一道,中午就给自己下班 这些都在祥云杯摆烂大舞台,意外的拿了个第五 ahead 一个常见的菜单堆,但是最关键的malloc和free函数被重写了,漏洞点是简单的UAF,未开启pie,没有show功能 实际malloc和free被加了非常多的花指令混淆,具…
2023 羊城杯 Pwn Writeup
你根本不在WACON,你在哪( heap 一个很少见的多线程glibc堆题,既然是多线程,那么大概率是条件竞争 在edit功能中中有一个sleep(1) alloc功能包含一个0x10的index_chunk和0x4F到0x68的data_chunk 由于是2.35版本的glibc,有fd异或保护,fd并不是实际的内存地址,因此直接edit条件竞争…
从ImaginaryCTF2023一道Kernel题到struct task_struct的遍历
漏洞分析 内核版本 version 5.19.0-43-generic 模块分析 非常简单明了的漏洞点 device_ioctl提供任意地址读取,并且由于使用copy_to_user,可以直接搜索内存空间 而device_write提供了一个内核栈溢出 漏洞利用 泄漏地址 暴力搜索 遍历0xffffffff81000000到0xffffffffff…
2023 RealworldCTF 体验赛 部分WP
捅了天枢一晚上屁股也没捅到( 太久没打ctf了,手感冰凉,思路混乱( 正赛?问就是太难了不会做( Digging into Kernel 3 一个任意size的uaf,不限制uaf的次数,并且没有打开slab_freelist_hardened 既然没有打开slab_freelist_hardened,那么double_free的任意地址写就是可行…
NCTF 2022 Pwn 出题小记
ezshellcode 灵感来源 在鹏城杯题目ezthree中,shellcode关闭了所有的文件描述符 并且由于chroot的存在,无法再通过/dev打开这些标准输入输出,因此很多常规的shellcode都不再适用 一旦close(1),pwntools交互会直接进入EOF,尽管TCP链接实际上并没有断开,因此盲注也同样无法使用 最后想出的方法是…
2022 巅峰极客 Pwn Writeup
不得不说,icq的比赛🍉就是多 Gift 2.31的UAF,没有edit功能 通过bargain还价修改fd,伪造一条tcache的链来做到任意地址分配 注意到还的价格可以为负数,这样就可以避免0x10的限制而是将fd指针指向自身chunk内 from pwn import* r=remote("123.56.45.214",44298) #r=p…
2022 强网杯 Pwn 部分Writeup
有一位先哲曾经说过:“看了题,感觉不如去hvv。” house of cat 实际上就是house of apple,链接:https://bbs.pediy.com/thread-273832.htm 有两次largebin_attack的机会,两次0x30大小的edit机会 一次用来修改stderr,一次用来修改main_arena中的top_…
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(": ") …