CTF
X丶
这个作者很懒,什么都没留下…
展开
-
Ret2Syscall绕过NX、ASLR保护
Ret2Syscall,即控制程序执行系统调用,进而获取shell。下面看看我们的vuln程序。可以看出,程序中的gets有明显的 溢出漏洞用gdb打开,检查一下文件开启了哪些防护:可以看出程序开启了 NX(栈不可执行)防护,那么,我们可以用ROP绕过防护接来下,我们利用溢出漏洞来控制程序执行syscall(系统调用)有关syscall系统调用的信息,可以在...原创 2018-11-20 21:14:44 · 1533 阅读 · 0 评论 -
Ret2Libc(1) (有system、/bin/sh)绕过NX、ASLR
Ret2Libc即控制程序执行libc库中的函数。通常是返回到某个函数的plt处,或者函数运行时候的实际地址。下面是一个例子:可以看出程序gets有一个明显的溢出漏洞gdb-peda$ checksecCANARY : disabledFORTIFY : disabledNX : ENABLEDPIE : disabledRELRO...原创 2018-11-21 10:24:04 · 1136 阅读 · 1 评论 -
Ret2Libc(2) (有system、无‘/bin/sh’)绕过NX、ASLR
和Ret2Libc(1)一样,先把程序扔进IDA看看代码 和Ret2Libc(1)一样,gets存在溢出漏洞gdb-peda$ checksecCANARY : disabledFORTIFY : disabledNX : ENABLEDPIE : disabledRELRO : Partial可以看到程序开启了NX,我的...原创 2018-11-21 10:46:42 · 2473 阅读 · 0 评论 -
溢出漏洞利用小结(基础)
shell 获取小结 这里总结几种常见的获取 shell 的方式: 执行 shellcode,这一方面也会有不同的情况 可以直接返回 shell 可以将 shell 返回到某一个端口 shellcode 中字符有时候需要满足不同的需求 注意,我们需要将 shellcode 写在可以执行的内存区域中。 执行 system("/bin/sh"),system('sh...原创 2018-11-21 16:51:22 · 713 阅读 · 0 评论 -
2018 百越杯 pwn(format WriteUp)
看到题目的内容,就知道大概是格式化漏洞了,马上扔到IDA看个究竟。不出所料,就是printf的格式化输出漏洞 思路:1、利用格式化漏洞覆盖任意地址的值,这里我们需要覆盖secret的值,所以先要找到secret的地址,在IDA中,可以看到secret在bss段:得到secret的地址后,我们就可以对它的值进行覆盖,覆盖成1922、利用%k$n(k$用于获取格式化...原创 2018-12-03 09:26:27 · 797 阅读 · 1 评论 -
2018 百越杯 pwn(Boring Game Write up)
拿到题目,发现有libc库,想到应该就是要用到ret2libc了先把pwn扔到IDA看看先发现有明显的溢出漏洞。发现程序是32位,且只开启了NX保护 利用思路:1、泄漏__libc_start_main的真实地址,padding + write_plt + game_addr + 1 + GOT(__libc_start_main) + 42、然后根据libc库的偏...原创 2018-12-03 16:51:24 · 277 阅读 · 2 评论 -
百越杯 Reverse (crazy write up)
拿到程序后,先常规跑一跑:然后我就把它扔到IDA看看IDA SHIFT + F12看到flag关键字,于是我就点击进去,并查看交叉引用由此分析可以得出,flag可能是在if判断正确后输出的于是,接下来我们分析一下判断函数 getSerial()可以看出,大概就是对this所指向的字符进行逐个对比验证。即 this[16 + i] 与 this[80 ...原创 2018-12-07 13:23:25 · 1134 阅读 · 0 评论