2024国城杯
线上
Alpha_Shell
可见字符shellcode,并且开启沙盒,用openat+sendlife的shellcode,并用ae64转为可见字符
1 | from pwn import* |
beverage store
存在属于数组越界,可以输入负数,got表可打,先修改exit为main,后续计算偏移泄露libc地址,最后攻击printf的为system,返回后门获取shell
1 | from pwn import* |
Offensive_Security
格式化字符串漏洞,线程题,并且给出libc地址,后续栈溢出直接打system的rop链
1 | from pwn import* |
vtable_hijack
2.23,uaf+堆溢出,攻击malloc_hook
1 | from pwn import* |
线下
线下一共是4道题目,两道ctf两道awdp
ctf两道题还行,但当时太懵了没做出来,一道scanf的格式化字符串漏洞,另一道是构造read测信道爆破shellcode
awdp只做出来一道,明显抄袭国赛的一道题目,攻击tcachebin的指针区,另一道题目没用看懂
scanf
给了栈地址,后门是禁用syscall的shellcode,但可以绕过
scanf的格式化字符串漏洞实现任意地址写
偏移的话一个一个测,看写到哪里,写多少字节
可以控制返回地址直接到后门的read
执行shellcode


1 | from pwn import* |
heap
2.27的堆题
add,free,show,edit四个功能,只能申请小堆块,并且序号为0,存在uaf,攻击tcachebin的指针区,之后把指针区free在申请小堆块造成堆块切割,得到libc_base,之后攻击free_hook,getshell
中间接受heap地址的时候有问题,show出来的是字符串,需要转一下
1 | from pwn import* |
2021 ciscn silverwolf
这里奉上2021年国赛题目
两个题目基本一样,但是国赛题目开了沙盒,要走orw,看别的博客都是把orw分开塞入堆块,走setcontext,我直接走的environ,劫持程序流程,感觉更简单,setcontext那种方法后续有时间在学习
2.27的堆题
add,free,show,edit四个功能,只能申请小堆块,并且序号为0,存在uaf,攻击tcachebin的指针区,之后把指针区free在申请小堆块造成堆块切割,得到libc_base,之后攻击stdout_attack,泄露stack地址,劫持edit后的程序流程,构造read,读入orw的链子
1 | from pwn import* |