![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pwn
文章平均质量分 60
tbsqigongzi
pwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwn
展开
-
CTF--PWN必备技能--理解c程序从编译开始到运行结束的过程
GCC编译过程,函数调用栈,CPU执行过程原创 2022-12-02 00:39:34 · 1528 阅读 · 1 评论 -
西安邮电大学第三届网络安全技能大赛---PWN方向WP
第三届西邮校赛原创 2022-11-14 19:40:43 · 2618 阅读 · 1 评论 -
2022-ISCTF-部分MISC和PWN
ISCTF-部分wp原创 2022-11-05 21:40:02 · 1278 阅读 · 0 评论 -
手写shellcode
rctf_2019_shellcoder--手写汇编原创 2022-10-20 21:11:35 · 399 阅读 · 0 评论 -
realloc函数利用实现double free
ciscn_2019_es_5原创 2022-10-18 21:07:56 · 200 阅读 · 0 评论 -
利用全局chunk数组,free(负数)来实现tcache double free
ciscn_2019_ne_6原创 2022-10-17 23:16:35 · 150 阅读 · 0 评论 -
c++堆题double free
ciscn_2019_ne_2原创 2022-10-17 12:30:30 · 877 阅读 · 0 评论 -
glibc2.27堆上ORW
ciscn_2019_sw_10原创 2022-10-16 19:37:52 · 284 阅读 · 0 评论 -
堆技巧 数组反向越界泄露地址
痛苦痛苦痛苦,调了半天才找到数组起始地址,还是自己太菜了,好好记录一下这题题目给了libc,2.31的题嗯,可以考虑覆盖got表或者hook函数打开ida发现是c++的题,认真分析一下。原创 2022-09-02 11:11:29 · 298 阅读 · 0 评论 -
house of cat
2022强网杯 House of cat原创 2022-09-01 11:46:56 · 588 阅读 · 0 评论 -
hfctf_2020_marksman(劫持exit_hook或dlopen)
劫持exit_hook或dlopen原创 2022-08-12 22:59:58 · 1056 阅读 · 0 评论 -
ARM PWN
arm pwn原创 2022-08-12 11:02:55 · 254 阅读 · 0 评论 -
Tcache Stashing Unlink Attack(House of Lore Attack)
Tcache Stashing Unlink Attack原创 2022-08-11 23:22:45 · 529 阅读 · 1 评论 -
house of storm+堆SROP+orw
house of storm + srop + orw原创 2022-08-10 12:54:51 · 437 阅读 · 0 评论 -
House of orange
题目中不存在 free 函数或其他释放堆块的函数。原创 2022-08-07 20:55:46 · 987 阅读 · 0 评论 -
House of storm
结合了unsorted_bin_attack和Largebin_attack的攻击技术,实现任意地址分配chunk,任意地址写。原创 2022-08-05 23:21:42 · 814 阅读 · 0 评论 -
House of einherjar
释放堆块时,unlink后向合并堆块,强制使得malloc返回一个几乎任意地址的chunk。free函数中的后向合并核心操作如下后向合并时,新的chunk的位置取决于chunk_at_offset(p,-((long)prevsize))原创 2022-07-31 15:19:50 · 463 阅读 · 0 评论 -
House of force
House of force原创 2022-07-29 14:51:27 · 193 阅读 · 0 评论 -
pwn刷题num48----syscall + ret2csu
BUUCTF-PWN-ciscn_2019_s_3首先查保护–>看链接类型–>赋予程序可执行权限–>试运行(这里为了省事,自己写了一个小shell脚本)64位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接ida一下看一下主函数 这里sys_read和sys_write读取的字符串大小都大于buf的大小,存在栈溢出syscall系统原创 2022-05-04 13:59:33 · 893 阅读 · 0 评论 -
pwn刷题num47---off by one 修改size大小,造成堆块重叠,控制chunk内容指针,泄露函数真实地址,修改got表,调用system
BUUCTF-PWN-hitcontraining_heapcreator首先查保护–>看链接类型–>赋予程序可执行权限–>试运行64位程序,小端序开启部分RELRO-----got表仍可写开启canary保护-----栈溢出需绕过canary开启NX保护-----堆栈不可执行未开启PIE----函数地址为真实地址动态链接运行一下试试功能基本上就是1. 创建堆2. 编辑堆 3.显示堆 4.删除堆 5.退出ida看一下伪代码主函数就是根据选择调用不原创 2022-05-04 11:45:26 · 492 阅读 · 0 评论 -
pwn刷题num46----fast bin double free (控制free chunk的fd指针指向,栈上伪造的fake chunk,修改栈上变量值)
BUUCTF-PWN-metasequoia_2020_samsara首先查保护–>看链接类型–>赋予程序可执行权限–>试运行保护全开动态链接英文意思打败魔龙后,你变成了魔龙…… 1. 抓捕一个人 2. 吃掉一个人 3. 煮一个人 4. 找到你的巢穴 5. 转移到另一个王国 6. 自杀ida看一下伪代码主函数还有一个菜单函数观察分析main函数,switch里case1每次申请chunk大小为0x20(mem为0x10),case原创 2022-05-03 18:01:59 · 1037 阅读 · 1 评论 -
pwn刷题num45----fast fit
github题目链接这道题下载下来后需要先用patchel使用低版本的libc(我这里用的是libc2.23)加载运行,具体怎么用?看这还有这flag也是自己设置在/pwn/flag里fast fit思想如果一个chunk是空闲的并且足够大(大于用户申请的chunk大小),那么申请chunk时,就会选择这个空闲的chunk首先查保护–>看链接类型–>赋予程序可执行权限–>试运行64位程序,小端序开启RELRO-----got表不可写开启canary保护-----栈溢出需原创 2022-05-03 14:03:35 · 217 阅读 · 0 评论 -
pwn刷题num44----fast fit and UAF
题目链接–本地程序 fast fit思想如果一个chunk是空闲的并且足够大(大于用户申请的chunk大小),那么申请chunk时,就会选择这个空闲的chunk首先查保护–>看链接类型–>赋予程序可执行权限–>试运行32位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接运行一下四种选择,添加一个note,删除一个note,输出一个not原创 2022-05-03 13:15:55 · 844 阅读 · 0 评论 -
pwn刷题num43---栈迁移
BUUCTF-PWN-ciscn_2019_es_2首先查保护–>看链接类型–>赋予程序可执行权限–>试运行32位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接ida一下看一下伪代码可以看到read函数读入0x30字节给s,可是s是0x28字节大小,只相差0x8字节,只能覆盖ebp和函数返回地址,而程序中无直接getshell的函数,程序原创 2022-05-03 10:32:38 · 651 阅读 · 0 评论 -
pwn刷题num42---ret2libc(不容易)
BUUCTF-PWN-pwn2_sctf_2016首先查保护–>看链接类型–>赋予程序可执行权限–>试运行32位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接atoi会将一个字符串并转化为有符号整形(signed int),而我们只需要输入-1,即可绕过if(v2>32),使read函数读入非常大的数,造成栈溢出,查看一下程序,发原创 2022-05-02 19:18:05 · 1117 阅读 · 0 评论 -
pwn刷题num41---格式化字符串漏洞任意地址修改
BUUCTF-PWN-jarvisoj_fm首先查保护–>看链接类型–>赋予程序可执行权限–>试运行32位程序,小端序开启部分RELRO-----got表可写开启canary保护-----栈溢出需要绕过canary开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接ida看伪代码简单的代码,可知只要x=4就可获得shell思路用read函数输入一个字符串,之后printf格式化字符串漏洞实现任意地址修改,将x的值改为4先找一下输入原创 2022-05-02 17:49:49 · 594 阅读 · 0 评论 -
pwn刷题num40----ret2libc
BUUCTF-PWN-bjdctf_2020_babyrop首先查保护–>看链接类型–>赋予程序可执行权限–>试运行64位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接ida一下看一下伪代码思路read函数明显的栈溢出,read函数输入0x64字节,而buf只有0x20字节,找一下发现函数没有后门函数,但是有puts函数,可以用其泄原创 2022-05-02 17:42:34 · 323 阅读 · 0 评论 -
pwn刷题num39----整数溢出
BUUCTF-PWN-bjdctf_2020_babyrop首先查保护–>看链接类型–>赋予程序可执行权限–>试运行64位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接ida看一下主函数char buf; // [rsp+0h] [rbp-10h].........................if ( (signed int原创 2022-05-02 16:58:12 · 440 阅读 · 0 评论 -
pwn刷题num38---ret2libc
BUUCTF-PWN-铁人三项(第五赛区)_2018_rop首先查保护–>看链接类型–>赋予程序可执行权限–>试运行32位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接ida看源码read函数输入0x100字节,而buf只有0x88字节,存在栈溢出buf距离返回地址0x88+0x4字节观察程序没有后门函数,但存在write函数,原创 2022-05-02 16:44:11 · 314 阅读 · 0 评论 -
pwn刷题num37---栈溢出 + strcpy函数溢出
BUUCTF-PWN-ciscn_2019_ne_5首先查保护–>看链接类型–>赋予程序可执行权限–>试运行32位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接程序运行后让我们输入密码,ida一下看一下主函数看来要想进行下面的操作,必须输入password:administratorif ( strcmp(s1, “administr原创 2022-04-29 22:51:54 · 794 阅读 · 0 评论 -
pwn刷题num36----运行即可获得shell
BUUCTF-PWN-others_shellcode首先查保护–>看链接类型–>赋予程序可执行权限–>试运行32位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行开启PIE-----程序内存地址随机化动态链接程序运行后发现一个,和我们终端命令行的,和我们终端命令行的,和我们终端命令行的很像,ls一下,直接列举了我的当前目录下的文件,说明这个题运行即可获得shell...原创 2022-04-29 22:03:32 · 123 阅读 · 0 评论 -
pwn刷题num35----ret2shellcode
BUUCTF-PWN-ciscn_2019_n_5首先查保护–>看链接类型–>赋予程序可执行权限–>试运行64位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----存在栈溢出未开启NX保护-----堆栈可执行,可注入shellcode未开启PIE-----程序地址为真实地址动态链接运行程序后,先是让我们输入一个name,之后让我们输入一些信息,什么也看不出来ida一下注意两个函数 read(0, name, 0x64uLL);原创 2022-04-29 21:56:47 · 301 阅读 · 0 评论 -
pwn刷题num34---mprotect修改内存权限 + ret2shellcode
BUUCTF-PWN-not_the_same_3dsctf_2016首先查保护–>看链接类型–>赋予程序可执行权限–>试运行32位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址静态链接ida一下gets函数明显的栈溢出,v4只有0x2D大小,gets函数对输入的字符串没有大小限制看一下栈区v4距离返回地址(r所在位置)0x2d个字节找原创 2022-04-28 19:11:52 · 1938 阅读 · 1 评论 -
pwn刷题num33---ret2text
BUUCTF-PWN- [HarekazeCTF2019]baby_rop首先查保护–>看链接类型–>赋予程序可执行权限–>试运行原创 2022-04-28 18:50:44 · 312 阅读 · 0 评论 -
pwn刷题num32----ret2text
BUUCTF-PWN-jarvisoj_level2_x64首先查保护–>看链接类型–>赋予程序可执行权限–>试运行64位程序,小端序未开启RELRO-----got表可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接ida一下看一下主函数看一下 vulnerable_function();函数栈溢出,read函数读入0x200字节放在buf处,而buf只有0x80字节大小,可以覆盖返原创 2022-04-27 21:16:38 · 432 阅读 · 0 评论 -
pwn刷题num31----ret2libc + 栈平衡
BUUCTF-PWN-ciscn_2019_en_2首先查保护–>看链接类型–>赋予程序可执行权限–>试运行64位程序,小端序开启部分RELRO-----got表仍可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接好熟悉,遇到原题了见我另一篇文章pwn刷题num24----ret2libc + 栈平衡...原创 2022-04-27 21:04:47 · 204 阅读 · 0 评论 -
pwn刷题num30----栈溢出修改栈上参数 或 mprotect修改内存权限 + ret2shellcode
BUUCTF-PWN-get_started_3dsctf_2016首先查保护–>看链接类型–>赋予程序可执行权限–>试运行32位程序,小端序开启部分RELRO-----got表仍可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址静态链接Qual a palavrinha magica?中文意思是什么是神奇的词?很奇怪,ida看一下伪代码栈溢出,gets函数输入字符串给v4,未限制输入的原创 2022-04-27 20:49:33 · 1959 阅读 · 1 评论 -
pwn刷题num29-----整数溢出
BUUCTF-PWN-bjdctf_2020_babystack首先查保护–>看链接类型–>赋予程序可执行权限–>试运行64位程序,小端序开启部分RELRO-----got表仍可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接程序先让我们输入name的长度,之后又让我们输入一个nameida一下看一下主函数观察发现nbytes存放着我们输入的name的大小,之后又用read函数输入nby原创 2022-04-27 18:52:45 · 513 阅读 · 0 评论 -
pwn刷题num28---ret2text
BUUCTF-PWN- jarvisoj_level2首先查保护–>看链接类型–>赋予程序可执行权限–>试运行32位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接ida一下看一下主函数看一下 vulnerable_function();函数栈溢出,read函数读入0x100字节放在buf处,而buf只有0x88字节大小,可以覆盖返回地原创 2022-04-27 18:34:41 · 272 阅读 · 0 评论 -
pwn刷题num27-----内存地址覆盖修改数组元素值
BUUCTF-PWN-ciscn_2019_n_8首先查保护–>看链接类型–>赋予程序可执行权限–>试运行32位程序,小端序开启部分RELRO-----got表可写开启canary保护-----栈溢出需绕过开启NX保护-----堆栈不可执行开启PIE-----内存地址随机化动态链接ida一下看一下主函数先是用一个scanf输入一个name,存在var里,之后观察这个if语句,var[13]只要为17(0x11)就可以调用system函数,获得shellexpfro原创 2022-04-27 18:21:37 · 753 阅读 · 0 评论