Home

强网杯opm

opm 强网杯的一道题目当时没做出来。。。 看着像一个堆题目其实是道栈溢出题目,涉及到堆的知识比较少 唯一的技巧点在于巧妙地利用局部写 int (__fastcall **add())(__int64 a1) { _QWORD *v0; // rbx __int64 v1; // rbx size_t v2; // rax __int64 v3; // rbx char s[128]; // [rsp+0h] [rbp-1A0h] __int64 addr_of_struct[16]; // [rsp+80h] [rbp-120h] __int64 addr_of_name[17]; ...

Read more

fastbinattack的一种花式玩法

offbynull + unsortedbinattack + fastbin attack + main_arena attack 这个题目就是我一星期没睡好觉的罪魁祸首 在七夕节这天我终于弄懂了!!!!!!! while ( 1 ) { choices(); __isoc99_scanf("%d", &v3); switch ( v3 ) { case 2: delete(); break; case 3: show(); break; ...

Read more

一道很简单的pwn

main 保护除了nx都没有开 典型的栈溢出题目 溢出处主要是 000000000000000A buf db 10 dup(?) ; base 10 +0000000000000000 s db 8 dup(?) +0000000000000008 r db 8 dup(?) 还有这里 puts("stack:"); return read(0, &buf, 0x20uLL); 主要就是溢出的字节数太少了 可以选择栈转移pivot或者别的奇技淫巧 这里有一个很好的技巧 利用的数rbp字段每次都会保存 具体payload如下: ...

Read more

noleak

house of roman 题目为xman选拔赛 Noleak 当时没做出来,今天有时间看了下wp 题目主要是利用了aslr的低地址随机化程度不高,利用局部写可以得到一些我们想要的值, 题目中的漏洞很明显,一个是delete函数没有对指针清零,另一个就是update函数可以越界写 主要的难点就是没有printf之类的函数,不能泄露地址 void delete() { unsigned int v0; // [rsp+Ch] [rbp-4h] say("Index: ", 7u); v0 = getinput(); if ( v0 <= 9 ) free(heaplst[v0]); // did...

Read more

两道比较简单的堆题目

secret garden 很水的一道堆题 没啥好说的,主要就是uaf int sub_DD0() { int result; // eax _DWORD *v1; // rax unsigned int v2; // [rsp+4h] [rbp-14h] unsigned __int64 v3; // [rsp+8h] [rbp-10h] v3 = __readfsqword(0x28u); if ( !flower_count ) return puts("No flower in the garden"); __printf_chk(1LL, "Which...

Read more

RCTF2018部分wp

RCTF2018 1.rnote3 选单程序,保护全开, 程序的漏洞点有以下两个: edit函数: unsigned __int64 sub_102D() { signed int i; // [rsp+4h] [rbp-1Ch] __int64 addr; // [rsp+8h] [rbp-18h] char s1; // [rsp+10h] [rbp-10h] unsigned __int64 v4; // [rsp+18h] [rbp-8h] v4 = __readfsqword(0x28u); addr = 0LL; printf("please input no...

Read more

xman pwn 部分wp

smallest start proc near ; DATA XREF: LOAD:0000000000400018↑o .text:00000000004000B0 xor rax, rax .text:00000000004000B3 mov edx, 400h ; count .text:00000000004000B8 mov rsi, rsp ; buf .text:00000000004000BB mov ...

Read more

house of orange

house of orange 由于最近做到了一道很恶心的题目,导致我对于堆的一些理解认知产生了怀疑。于是决定补习一下一些堆的高级利用方法 题目来自于pwnable.tw的bookwriter 源程序是很典型的表单程序,唯一的特殊之处在于没有free函数,所以利用方式不同于以往 漏洞点有以下几个地方: 1.author变量与存储堆地址的指针列表相连,在我们打印出author信息的时候会将堆地址泄露 bss:0000000000602060 author db ? ; . . . bss:00000000006020A0 addrlist db ? 2.add函数对于下标的检查有误 for ( i...

Read more