
pwn
ch3nwr1d
学生党一枚
展开
-
栈迁移浅析
0x00线下有道栈迁移的题目,因为当时没有好好学,对于栈迁移这一块儿一知半解的,就没出,痛定思痛,在此就好好研究一下。0x01 前置知识首先栈迁移就是因为可写空间太小不够rop,就把栈迁移到别的地方去构造payload。而栈迁移最重要的是两个汇编命令leave; ret;leave相对于是mov esp,ebp;pop ebp;ret是pop eip;0x02 stack pivoting先从32位来理解栈迁移的利用原理。stack pivoting,正如它所描述的,该技巧就是劫持栈指针原创 2020-11-23 14:46:59 · 4216 阅读 · 3 评论 -
off by null 小结
off by null 的一点心得0x00最近的一个比赛里有道off by null的题目,比较简单,这里写一下这题的wp和off by null的一些利用。0x01 前置知识off by null 本质上就是由于长度的检查不严谨导致了一个空字节的溢出造成的,通常我们会用它来构造Heap Overlap或是用来触发unlink。这些的前提是对于堆块的合并有所了解。向前合并与向后合并先说向前合并,这里就不贴源码了。通俗的说向前合并就是当一个chunk被free时去检查其物理相邻后一个chunk原创 2020-11-20 12:54:02 · 3674 阅读 · 3 评论 -
OGEEK2019 babyrop wp
这题就是需要绕过两个验证,之后就是常规rop了。这里有个比较,你输入的值与一个随机数进行比较,这个验证不过会直接推出程序。那我们就让他取一个极值,让他无论是何值都能过。因为strlen这个函数遇到’\0’就会截止。所以我们就输入‘\x00’就好了。这样不论随机数是什么我们都会取<0。这个地方的取值是之前那个函数的返回值,利用之前那个输入的地方把v5盖成一个很大的值以便之后做栈溢出的rop...原创 2020-03-19 11:17:15 · 2262 阅读 · 4 评论 -
pwn环境搭建
有人问我要一份pwn环境搭建的教程,网上其实有很多,这里我就推荐NoOne师傅写的吧,很全面。链接:https://xz.aliyun.com/t/5749原创 2020-02-08 18:45:10 · 432 阅读 · 0 评论 -
HITCON-training lab10 wp
0x00开始堆利用的学习了,先做第一入门题目,UAF漏洞利用。0x01看保护:一个32位的开了canary和nx保护0x02ida分析一个菜单有加、减、查看功能看add是什么样子1-2 .先会malloc一个8字节的空间,指向print_note_content函数,用来打印content。3-4 .再malloc一个size用来存放你写入的content再看看del_n...原创 2020-01-30 19:08:30 · 1715 阅读 · 0 评论 -
攻防世界 pwn1 wp
0x01先看保护:除了PIE全开了。打开ida分析明显的栈溢出漏洞,然后再看一下题目逻辑1是输入2是输出3是退出因为有canary保护所以要想办法泄露canary,回头看那个栈溢出漏洞,发现可以利用先发送0x88个a过去后面会自动给你爆出canary,有了canary之后,就简单了,所以思路就是:先利用栈溢出漏洞获取canary,再利用拼接的方法将前面的填充补全之后就是rop了。这...原创 2019-11-06 19:42:21 · 520 阅读 · 0 评论 -
XCTF 4th-QCTF-2018 dice_game
首先开一下保护除了canary什么都开了。。。然后就打开ida分析:read函数造成了栈溢出漏洞。继续审代码,发现是一个游戏。该程序首先让输入name,并且使用read来读入数据,故而此处存在栈溢出漏洞。下方看见程序使用seed、srand生成随机数。当我们猜对50次随机数时程序会调用sub_B28函数,从而得到flag.这个随机数咋办呢,,有栈溢出漏洞可以利用,所以就想着能不能将seed...原创 2019-10-23 21:26:04 · 774 阅读 · 0 评论 -
HITCON lab4 wp
0x01之前在ctf-wiki上做过的re2lib,这道题也差不多。仿照ctf-wiki上的做法,想到需要用到libc.so 的延迟绑定技术,用 got 表泄露,即输出某个函数对应的 got 表项的内容,好了话不多说先看题,首先看保护:只开了NX.用IDA查看:main():发现有个puts()函数,很容易想到用这个函数打印出它的真实地址,然后计算偏移量得到system函数的真实地址,...原创 2019-09-30 18:55:00 · 393 阅读 · 0 评论 -
Jarvis OJ PWN level3
0x01由于是本人第一次接触这种有关动态链接,plt和got表,延时绑定技术的题目所以这里就写的细一些。我是看了很多大佬写的wp然后请教了下学长才明白的,真是煞费脑筋,决定一定要好好整理一下。0x02首先是需要了解一下got表和plt表的有关内容并对延迟绑定技术有一定理解。GOT(Global Offset Table,全局偏移表)是LinuxELF文件中用于定位全局变量和函数的一个...原创 2019-09-19 21:45:23 · 246 阅读 · 0 评论 -
Jarvis OJ PWN level1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;先看一下保护:没开保护。主函数中没写啥东西。。。接着打开主函数中调用的function,很明显的一个...原创 2019-09-13 16:36:57 · 284 阅读 · 0 评论 -
关于栈溢出漏洞的一个小疑问??
刚刚做了Jarvis OJ上的两道题,一个是基础的level0,一个是tell me something .这两个都是基本的栈溢出的题都只开了NX保护。level0:主函数返回到这个function还有一个callsystem函数这题思路就很明显了利用栈溢出执行/bin/sh语句tell me something:主函数中直接有一个栈溢出漏洞和上一个leve0的漏洞是一样的。但...原创 2019-09-11 19:59:47 · 284 阅读 · 0 评论 -
Jarvis OJ(PWN)level0
0x01开始做Jarvisoj上的题了,先从最基本的开始吧。首先看保护:只开了NX,说明可能要利用栈溢出的知识。打开IDA看main函数没什么东西,但return了一个函数打开一看发现了栈溢出漏洞:然后找能利用的地方,发现了一个callsystem函数(太明显了)。。。所以思路就是利用栈溢出漏洞直接覆盖到/bin/sh执行的地址上,就能getshell 了。exp.py:f...原创 2019-09-11 19:31:55 · 273 阅读 · 0 评论 -
jarvisoj pwn tell me something
先看保护:只开了NX.打开IDA明显的栈溢出漏洞,然后翻了翻其它函数,发现了一个叫good_game的函数很可疑。直接就有读flag的操作。那么思路就很简单了,利用栈溢出将ret改为good_game的地址就ok了。&v4距离$ebp是0x88所以直接覆盖0x88个字符就行了后接good_game的地址exp.py:from pwn import *p = remote...原创 2019-09-10 20:16:23 · 176 阅读 · 0 评论 -
小白入坑pwn
0x01 从一个web手到pwn手原因嘛就是web的ctf太难了,很多人说ctf的web都出的太偏了,与实战差别有些大,再一个就是学校里没有厉害的web手,没人带,前进很难。而二进制的pwn就不太一样了,首先是与实战的差别不是很大,而且有一个学长带,可以少走不少弯路,还有就是在给新生出题练习时做了几道学长出的pwn题,发现对这方面也比较感兴趣。索性就转pwn手了。0x02 小白入门我学...原创 2019-09-10 15:07:53 · 910 阅读 · 0 评论 -
小白写 PWN新手训练区 Writeup第九题:cgpwn2
0x01刚刚入门pwn有不足的地方欢迎大佬们指正首先检查保护:只打开了NX,说明我们可以用栈溢出绕过检查;用打开IDA,查看伪C代码,先看下主函数。一个hello()函数,一个输出。然后顺理成章的查看hello函数。发现两个可疑的函数,并且gets函数存在栈溢出漏洞,可以达到跳转的目的。记下&s的地址(可能有用),接着查看name变量,发现在bss段上,说明是可以利用的。...原创 2019-09-04 22:27:25 · 317 阅读 · 0 评论