
ctf
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 · 4246 阅读 · 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 · 3716 阅读 · 3 评论 -
OGEEK2019 babyrop wp
这题就是需要绕过两个验证,之后就是常规rop了。这里有个比较,你输入的值与一个随机数进行比较,这个验证不过会直接推出程序。那我们就让他取一个极值,让他无论是何值都能过。因为strlen这个函数遇到’\0’就会截止。所以我们就输入‘\x00’就好了。这样不论随机数是什么我们都会取<0。这个地方的取值是之前那个函数的返回值,利用之前那个输入的地方把v5盖成一个很大的值以便之后做栈溢出的rop...原创 2020-03-19 11:17:15 · 2267 阅读 · 4 评论 -
pwn环境搭建
有人问我要一份pwn环境搭建的教程,网上其实有很多,这里我就推荐NoOne师傅写的吧,很全面。链接:https://xz.aliyun.com/t/5749原创 2020-02-08 18:45:10 · 443 阅读 · 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 · 1729 阅读 · 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 · 781 阅读 · 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 · 403 阅读 · 0 评论 -
关于栈溢出漏洞的一个小疑问??
刚刚做了Jarvis OJ上的两道题,一个是基础的level0,一个是tell me something .这两个都是基本的栈溢出的题都只开了NX保护。level0:主函数返回到这个function还有一个callsystem函数这题思路就很明显了利用栈溢出执行/bin/sh语句tell me something:主函数中直接有一个栈溢出漏洞和上一个leve0的漏洞是一样的。但...原创 2019-09-11 19:59:47 · 292 阅读 · 0 评论 -
Jarvis OJ(PWN)level0
0x01开始做Jarvisoj上的题了,先从最基本的开始吧。首先看保护:只开了NX,说明可能要利用栈溢出的知识。打开IDA看main函数没什么东西,但return了一个函数打开一看发现了栈溢出漏洞:然后找能利用的地方,发现了一个callsystem函数(太明显了)。。。所以思路就是利用栈溢出漏洞直接覆盖到/bin/sh执行的地址上,就能getshell 了。exp.py:f...原创 2019-09-11 19:31:55 · 281 阅读 · 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 · 185 阅读 · 0 评论 -
小白写 PWN新手训练区 Writeup第九题:cgpwn2
0x01刚刚入门pwn有不足的地方欢迎大佬们指正首先检查保护:只打开了NX,说明我们可以用栈溢出绕过检查;用打开IDA,查看伪C代码,先看下主函数。一个hello()函数,一个输出。然后顺理成章的查看hello函数。发现两个可疑的函数,并且gets函数存在栈溢出漏洞,可以达到跳转的目的。记下&s的地址(可能有用),接着查看name变量,发现在bss段上,说明是可以利用的。...原创 2019-09-04 22:27:25 · 329 阅读 · 0 评论 -
文件包含之LFI
文件包含之LFI0x00 含义&&类型首先,PHP文件包含主要由这四个函数完成:include() //包含一些html模块文件require() //包含一些数据库,配置文件include_once() //只调用一次包含文件,多次调用就会报错require_once()当使用这4个函数包含一个新的文件时,该文件将作为PHP代码执行,PHP内核并不会在意该被包...转载 2019-07-16 11:25:27 · 668 阅读 · 0 评论