
pwn
Hush^
这个作者很懒,什么都没留下…
展开
-
PwnCollege shellcode第一章
课程https://www.youtube.com/watch?v=715v_-YnpT8漏洞程序 hello.cvoid bye1(){ puts("Goodbye!"); }void bye2(){ puts("Farewell!"); }void hello(char * name ,void (* bye_func)()){ printf("Hello , %s\n",name); bye_func();}int main(int argc,char **argv){ ch原创 2022-05-17 14:49:28 · 825 阅读 · 0 评论 -
kernel ROP - 2018 强网杯 - core
初学kernel,做个笔记。Kernel ROP - CTF Wikiwiki上有着详细的分析,这里只对一些wiki上没有讲到的做个笔记。首先是对文件:引用一句其他师傅的话:类比于libc中的pwn,感觉*.ko就是binary文件,vmlinux就是libc … 不同的是保护机制是由如何启动决定的(start.sh 中修改)。Rop大体思路:栈上有Canary防护的话,需要先泄露出Canary,来促使RopRop具体思路是和Libc中的类似,利用一些寄存器进行传值调用com原创 2022-05-09 19:48:25 · 268 阅读 · 0 评论 -
swpuctf2019 p1KkHeap
做一下笔记。这道题的限制还是挺多的。版本不低不高2.27限制:1.Delete 3次限制2.程序只能进行18次增删改查3.有UAF和Double free4.2.27不包含对tcache的double free 检查机制5.exec被禁用。但是有一片可读可写的内存空间用以shellcode要点:1.通过double free 可以快速的从tcache bin 中绕过。 方法是:double free 同一块,此时count为2。之后create3次相同大小的chunk。2-3原创 2022-04-17 20:30:10 · 234 阅读 · 0 评论 -
Kernel内核第一道KernelUAF
CISCN2017 - babydriver详细分析请移步kernel UAF - CTF Wiki,文章用作记录。1.KVM问题:KVM是虚拟化技术,有的机器可以通过bios中打开VT开启。但是我CPU i7-10875H并不支持。但这并不影响执行boot.sh启动Qume。只需要把boot.sh 中有关KVM那一行选项删掉即可。2.exp分析:CISCN2017_babydriver [master●●] cat exploit.c #include <stdio.h>原创 2022-04-17 17:42:58 · 178 阅读 · 0 评论 -
ciscn_2019_es_2(栈迁移)
代码不复杂,就是两个read和两个print关键在于这个read的大小和v1的位置。0x28的和0x30的大小,让我们直接rop的话只能溢出到ret的位置,而不能控制ret函数的参数。这里就需要用到栈迁移,就把栈的位置往上提,让我们可以控制到ret和ret的参数。既然我们想让栈往上提,那么就必须知道栈的具体位置,而我们知道,对于一个函数的栈帧中,有地址的位置就是ebp的位置,所以我们可以泄露出ebp的位置进而得到栈的位置。from pwn import *a=proces...原创 2021-08-27 11:37:27 · 361 阅读 · 2 评论 -
roarctf_2019_easy_pwn
没有UAF,但是存在着off-by-one所以先add(0x18)#chunk0和一个(0x10)#chunk1,add(0x90),add(0x10)为什么是0x18?因为0x18会开辟一个共0x20的chunk,一开始我也以为是一个0x30的大小,但是在chunk结构中 0x560df2c462b0 -0x560df2c462b8 这片区域中也会被chunk0使用。这样才能更接近chunk1的size域,对其进行攻击。所以,根据上面的off_by_one修改chunk1的si...原创 2021-07-30 15:20:22 · 386 阅读 · 0 评论 -
[BUUCTF]PWN——roarctf_2019_easy_pwn
白天睡觉,晚上来写道题。这道题涉及了unsortedbins,malloc_hook,堆溢出。heap的菜单选项常规题,做到目前为止,主要是两个思路:先check,根据RELRO。如果为full,那么就需要malloc_hook。如果为partial,就直接更改got表就可以了。在create函数中可以明显看出来这是个结构体一个结构体有24个字节,前8个为标志位,中间8个size位,后8个是alloc出来的chunk的指针。(alloc和malloc不同的是 alloc的fr原创 2021-07-29 04:57:39 · 325 阅读 · 0 评论 -
npuctf_2020_easyheap
这题的结构,像是hacknote 和之前一个easyheap的融合。但是漏洞利用手法不太一样。之前的一个easyheap是利用fastbin里面的一种漏洞。伪造一个fake chunk。(这道题的原因是因为,就算伪造了一个fake chunk ,我们malloc时也无法利用它)这次的漏洞:是将control chunk 和content chunk 对调,然后对control chunk攻击。from pwn import *elf = ELF("./npuctf_2020_easyhea原创 2021-07-27 11:54:26 · 318 阅读 · 0 评论 -
heap2-[ZJCTF 2019]EasyHeap
做题先check找攻击手段,Partial RELRP ->修改got表菜单题,直接找准delete看看有没有UAF。UAF未果。但是在Edit_heap中存在漏洞。这里看起来是以为可以修改heap的size,其实这个size是用来对你的输入进行限制的。(栈溢出就在这里把size写的很大,方便我们写入)而且这个程序写的也有点问题。 它会让你修改chunk的信息域所以 wpfrom pwn import *sh = remote("node4....原创 2021-07-27 01:25:12 · 233 阅读 · 0 评论 -
ex2(canary绕过)
先上IDA看一波反汇编原创 2021-05-25 23:59:31 · 567 阅读 · 0 评论 -
ciscn_2019_c_1
第一次写到ret2libc,记个笔记加深印象。F5反汇编main函数后,会让我们选择函数。我们注意到encrypt函数中存在着gets(s) 栈溢出漏洞。但是并没有存在system函数,所以我们不能直接利用。所以我们要用ret2libc技术,先考虑泄露libc基地址。在mian和encrypt函数中都出现了puts函数我们知道根据延迟绑定技术:plt表中的函数如果没有被调用过,那么got表中该函数的对应项则指向plt表的第二行指令。当完成了第一次调用后,got表中会存放原创 2021-05-25 00:15:00 · 408 阅读 · 1 评论