
溢出攻击
九层台
这个作者很懒,什么都没留下…
展开
-
缓冲区溢出之返回地址保护
首先普及一下下面知识,如果没有返回地址保护完全可以用下面方法:执行shellcode Shellcode指缓冲区溢出攻击中植入进程的恶意代码,这段代码可以弹出一个消息框,也可以在目标机器上打开一个监听端口,甚至是删除目标机器上的重要文件等。 Shellcode通常需要使用汇编语言进行开发,并转换成二进制机器码,其内容和长度经常还会受到很多实际条件的限制,因此开发Shellco原创 2017-08-27 16:28:06 · 942 阅读 · 0 评论 -
pwnable(simple login)leave和ret的深入研究
通常栈溢出获取shell的方法是覆盖返回地址,但是如果溢出只允许覆盖到ebp该怎么办呢?Leave的作用相当==mov esp,ebp和pop ebpWin32汇编中局部变量的使用方法可以解释一个很有趣的现象:在DOS汇编的时候,如果在子程序中的push指令和pop指令不配对,那么返回的时候ret指令从堆栈里得到的肯定是错误的返回地址,程序也就死掉了。但在Win32汇编中,push指令和pop...原创 2018-09-30 13:32:24 · 685 阅读 · 0 评论 -
pwnable brain fuck(bss段的用途)
题目链接传送门这里题目跟网鼎杯线下赛的一个pwn有些相似。输入一些字符可以控制一个指针,可以向这个指针指向的地址处写数据。首先要知道bss段里面有什么。在这道题里面的p指针的更高地址处是stdin,stdout,stderr然后是函数的got表,这里可以控制指针p泄露和修改got表。#coding=utf-8from pwn import *p=0x0804a0a0putcha...原创 2018-09-26 20:21:44 · 717 阅读 · 0 评论 -
Jarvis OJ [XMAN]level2(x64)
liu@liu-F117-F:~/桌面/oj/level2_x64$ checksec level2_x64[*] '/home/liu/\xe6\xa1\x8c\xe9\x9d\xa2/oj/level2_x64/level2_x64' Arch: amd64-64-little RELRO: No RELRO Stack: No canary fo...原创 2018-07-07 21:06:30 · 1176 阅读 · 0 评论 -
Jarvis OJ [XMAN]level0
查保护和运行操作系统liu@liu-F117-F:~/桌面/oj/level0$ checksec level0[*] '/home/liu/\xe6\xa1\x8c\xe9\x9d\xa2/oj/level0/level0' Arch: amd64-64-little RELRO: No RELRO Stack: No canary foun...原创 2018-07-07 20:39:29 · 483 阅读 · 0 评论 -
Jarvis OJ [XMAN]level3 [XMAN]level3
查询保护liu@liu-F117-F:~/桌面/oj/level3$ checksec level3[*] '/home/liu/\xe6\xa1\x8c\xe9\x9d\xa2/oj/level3/level3' Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found...原创 2018-07-07 13:07:38 · 1483 阅读 · 0 评论 -
Jarvis OJ [XMAN]level2
查询保护liu@liu-F117-F:~/桌面/oj/level2$ checksec level2 [*] '/home/liu/\xe6\xa1\x8c\xe9\x9d\xa2/oj/level2/level2' Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found...原创 2018-07-06 17:26:19 · 358 阅读 · 0 评论 -
Jarvis OJ level1
liu@liu-F117-F:~/桌面/oj/level1$ checksec level1[*] '/home/liu/\xe6\xa1\x8c\xe9\x9d\xa2/oj/level1/level1' Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: ...原创 2018-07-06 12:09:50 · 820 阅读 · 0 评论 -
[JarvisOJ][pwn]Test Your Memory
经历了前面2次的艰难,出题人或许嫌我们太累了,来了个简单的 走进程序找信息。开启的保护只有NX.rodata:080487E0 00000009 C cat flag这里有命令字符串cat flag0804A058 system 这里有system函数,然后找漏洞吧int __cdecl mem_test(char *s2){...原创 2018-07-06 10:07:38 · 888 阅读 · 0 评论 -
泄露canary
题目链接https://pan.baidu.com/s/1CRhWOys3tbRr_uBqRhewsQ 有NX和canary保护。char v21[257]; // [esp+2Bh] [ebp-10Dh]v21设置了257个字节的空间。 sub_80486FD(dest, 0x200u); v12 = 0; v13 = 0; while ( dest[v12] ...原创 2018-07-17 10:30:02 · 1730 阅读 · 0 评论 -
简单栈溢出
32位系统简单栈溢出利用总结输入的函数对输入的字符限制不够就会造成栈溢出漏洞。攻击者可以利用漏洞覆盖返回地址攻击。这里要说的就是对这类漏洞的利用总结。导入shellcode例子下载地址 https://dn.jarvisoj.com/challengefiles/level1.80eacdcd51aca92af7749d96efad7fb5 用于没有开启NX保护的程序l...原创 2018-07-10 13:26:10 · 877 阅读 · 0 评论 -
[XMAN]level5 Jarvis OJ
思路:bss段刚开始是不可执行的,从通用的想要执行bss必须执行mprotect函数来更改bss段的权限(改为7即可读可写可执行)。但是想要获取到mprotect函数必须获取到libc版本。还是少不了上次的泄露libc函数,这里泄露的时候也直接用通用gedit减少不必要的操作,减少错误。 泄露获取libc–>获取到mprotect函数来改写bss段的权限–>把shellcode写入到...原创 2018-07-10 13:07:47 · 1162 阅读 · 0 评论 -
Jarvis OJ [XMAN]level3(x64)
liu@liu-F117-F:~/桌面/oj/level3_x64$ checksec level3_x64[*] '/home/liu/\xe6\xa1\x8c\xe9\x9d\xa2/oj/level3_x64/level3_x64' Arch: amd64-64-little RELRO: No RELRO Stack: No canary fo...原创 2018-07-09 20:34:18 · 1126 阅读 · 1 评论 -
格式化字符串漏洞利用模板
格式化字符串漏洞就是个格式化的时候限制条件缺失导致的漏洞,下面用一个栗子来讲解 https://download.youkuaiyun.com/download/qq_38204481/10416723。这里可以下载栗子。int __cdecl main(int a1){ char s; // [esp+0h] [ebp-408h] unsigned int v3; // [esp+3FCh]...原创 2018-05-16 13:36:42 · 1750 阅读 · 2 评论 -
泄漏libc获取shell的模板
这里用一个例子来讲解文件名叫ret2libc3可以自行下载。 这里只开启了NX保护,但是这才典型。下面讲述一下正常pwn的思路。 代码很简单,漏洞也很清楚,栈溢出。int __cdecl main(int argc, const char **argv, const char **envp){ char s; // [esp+1Ch] [ebp-64h] setvbuf...原创 2018-05-15 21:33:46 · 3027 阅读 · 3 评论 -
Smashes Jarvis OJ
nc pwn.jarvisoj.com 9877 检查开启的保护liu@ubuntu:~/Desktop$ checksec 2[*] '/home/liu/Desktop/2' Arch: amd64-64-little RELRO: No RELRO Stack: Canary found #栈保护 NX: NX en...原创 2018-04-06 17:18:18 · 664 阅读 · 0 评论 -
Jarvis OJ backdoor
这是一个有后门的程序,有个参数可以触发该程序执行后门操作,请找到这个参数,并提交其SHA256摘要。(小写)FLAG:PCTF{参数的sha256} 用这个题来了解一下什么叫后门吧。signed int __cdecl wmain(int a1, int a2){ char v3; // [esp+50h] [ebp-2C8h] char v4; // [esp+E1h] ...原创 2018-04-09 18:01:00 · 870 阅读 · 0 评论 -
让攻击代码执行
直接覆盖返回地址 在栈空间中放置shellcode 最后把该函数的返回地址设置为我的shellcode的返回地址就能让程序返回时执行我的代码。利用jmp esp 如果shellcode只能放到dll的缓冲区中,或者有PE重定位,载入基地址会改变,这样我们用来覆盖return的地址就不能准确定位shellcode了。把shellcode填入缓冲区找到内存中任意一个jmp esp指...原创 2018-03-30 18:26:07 · 1181 阅读 · 0 评论 -
pwnable(echo1)【栈溢出shellcode模板】
这个题目可以作为一个栈溢出使用shellcode的模板,它除了给出栈溢出,关闭了NX和canary保护其他的什么都没有给。这里的溢出,看一下它的上一级输入1会执行它。我的想法是没有地址我就找rop来泄露libc,或者栈的地址但是看了一下没有能用的rop换个思路,导入shellcode,用jmp esp指令作为跳转(这个可以作为导入shellcode的一种通用思路)。查了一下en...原创 2019-01-25 16:02:58 · 781 阅读 · 0 评论