![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pwn
Hush^
这个作者很懒,什么都没留下…
展开
-
PwnCollege shellcode第一章
课程https://www.youtube.com/watch?v=715v_-YnpT8 漏洞程序 hello.c void 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 · 701 阅读 · 0 评论 -
kernel ROP - 2018 强网杯 - core
初学kernel,做个笔记。 Kernel ROP - CTF Wiki wiki上有着详细的分析,这里只对一些wiki上没有讲到的做个笔记。 首先是对文件: 引用一句其他师傅的话:类比于libc中的pwn,感觉*.ko就是binary文件,vmlinux就是libc … 不同的是保护机制是由如何启动决定的(start.sh 中修改)。 Rop大体思路: 栈上有Canary防护的话,需要先泄露出Canary,来促使Rop Rop具体思路是和Libc中的类似,利用一些寄存器进行传值 调用com原创 2022-05-09 19:48:25 · 180 阅读 · 0 评论 -
swpuctf2019 p1KkHeap
做一下笔记。这道题的限制还是挺多的。版本不低不高2.27 限制: 1.Delete 3次限制 2.程序只能进行18次增删改查 3.有UAF和Double free 4.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 · 169 阅读 · 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 · 111 阅读 · 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 · 245 阅读 · 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 · 348 阅读 · 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 · 256 阅读 · 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 · 261 阅读 · 0 评论 -
heap2-[ZJCTF 2019]EasyHeap
做题先check找攻击手段,Partial RELRP ->修改got表 菜单题,直接找准delete看看有没有UAF。 UAF未果。 但是在Edit_heap中存在漏洞。 这里看起来是以为可以修改heap的size,其实这个size是用来对你的输入进行限制的。(栈溢出就在这里把size写的很大,方便我们写入) 而且这个程序写的也有点问题。 它会让你修改chunk的信息域 所以 wp from pwn import * sh = remote("node4....原创 2021-07-27 01:25:12 · 170 阅读 · 0 评论 -
ex2(canary绕过)
先上IDA看一波反汇编原创 2021-05-25 23:59:31 · 461 阅读 · 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 · 310 阅读 · 1 评论