CISCN2023 shell we go 在国赛上遇到的一道go语言的题,自己也是第一次遇到,在此记录一下复现的过程。 由于go语言编译都是静态的,而且程序把所有的符号表都去掉了,对于逆向的难度大大提升,虽然可以通过输出的字符串快速找到主函数,但是对于一些go语言的库函数根本就无法判断,分析这些库函数只会浪费大量时间;这里使用一下IDAGolangHelper,可以修复go的符号表。 进入程序后很快就想到输入常用的shell 2023-05-30
musl 1.2.2的两道pwn题 musl 1.2.2堆的内存管理与以前学的glibc完全不同,是将一块连续的内存划分为相同的大小的chunk(有点像slab),再去由group、meta、malloc_context这些结构体逐级去管理,推荐大家多看几遍0xRGz师傅的musl源码解析文章,这里主要写的是自己在复现musl pwn题中所学到的一些细节。 2023-04-04
pwnhub3月公开赛&&内部赛 sh_v1漏洞在命令 ln 中,它会直接对堆地址复制,造成uaf。 解题思路: 利用uaf,使用gedit修改已经释放的chunk中的key,然后double free。 修改tcache的next指针,使其指向tcache的头,修改0x290的数量为7,释放它就可以得到unsorted bin,进一步泄漏libc地址。 继续编辑tcache的头,修改0x210的数量为7,并在相应的位置写入__ 2023-03-14
西湖论剑-pwn 第一次打西湖论剑,只做出了两道pwn题,那个jit到最后也没能看明白😞。 babycalc如下图,输入0x100大小的数据可以修改栈上i的值,通过i与v3的偏移就可以修改栈上的任意一字节,而且输入后存在off-by-one 这里利用i与v3的偏移修改返回值为 leave ret的地址,只能更改一字节,这里修改为0x400C18,利用off-by-one改变rbp的值来实现栈迁移,具 2023-02-07
hgame-week4-pwn without_hooklibc给的是2.36-0ubuntu2_amd64,以前修改__free_hook和__malloc_hook的方法就行不通了,很容易想到使用largebin attack攻击去劫持IO控制流,最后构造house of cat或者house of apple的fake_IO_FILE,和以前我做过强网拟态的一道题很像。 唯一有区别的就是以前常用的mov rdx, qwor 2023-02-07
buu寒假练习2 [OGeek2019 Final]OVM这道vmpwn题分析起来并不难,输入一个整数,最高位的一字节对应着指令,剩下三个字节就对应寄存器和操作数,而漏洞也是很经典的数组越界。 我自己刚开始写的时候总想着先将got表中的值泄漏出来,得到libc的基地址后方便去写入system函数地址,程序虽然提供了打印寄存器这个指令,但是打印后会立马退出execute函数,这样就无法进一步去修改了;看到其他大佬写的 2023-01-07
简单复现CVE-2017-17215 由于不想重新再开一个虚拟机,这里就直接使用IoT-vulhub这个项目来配置的环境。 CVE-2017-17215在项目中只能依赖于qemu-system启动,需要我们事先构建好相应qemu-system的docker镜像。华为 HG532路由器的固件是mips大端架构,所以先进入到/baseImage/qemu-system/mips/images下 2023-01-01
buu寒假练习1 ycb_2020_easy_heap程序在使用edit功能时出现了'\x00'字节溢出,很容易想到修改下一个chunk的prev_size 、size 和 PREV_INUSE标志位,让其与上边的unsorted chunk合并造成堆块重叠 然而这里是libc-2.30.so,会对合并的上一个chunk的size检查,与修改的prev_ 2022-12-30
bf解释器 最近在强网拟态和安洵杯上都出现了bf解释器的题,自己还是头一回见,在此学习一下。 Brainfuck,简称BF,是一种极小化的程序语言 pwnable_bf首先看一道pwnable_bf(buu和pwnable.kr上都有) 其主函数中全局变量p指向全局变量tape的地址,输入一段字符后就让每个字符进入do_brainfuck函数: 2022-12-12
强网拟态2022pwn pwn1直接利用格式化字符串 12345678910111213141516171819from pwn import*elf = ELF('pwn1')p = process('./pwn1')context.log_level = 'debug'context.arch = 'amd64'p.sendline(b& 2022-11-19