BUUCTF
文章平均质量分 53
tbsqigongzi
pwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwnpwn
展开
-
手写shellcode
rctf_2019_shellcoder--手写汇编原创 2022-10-20 21:11:35 · 421 阅读 · 0 评论 -
realloc函数利用实现double free
ciscn_2019_es_5原创 2022-10-18 21:07:56 · 217 阅读 · 0 评论 -
利用全局chunk数组,free(负数)来实现tcache double free
ciscn_2019_ne_6原创 2022-10-17 23:16:35 · 164 阅读 · 0 评论 -
glibc2.27堆上ORW
ciscn_2019_sw_10原创 2022-10-16 19:37:52 · 307 阅读 · 0 评论 -
off-by-one+overlapped chunk
off-by-one+overlapped chunk原创 2022-08-30 10:28:14 · 1028 阅读 · 0 评论 -
hfctf_2020_marksman(劫持exit_hook或dlopen)
劫持exit_hook或dlopen原创 2022-08-12 22:59:58 · 1084 阅读 · 0 评论 -
ARM PWN
arm pwn原创 2022-08-12 11:02:55 · 300 阅读 · 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 · 948 阅读 · 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 · 508 阅读 · 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 · 1053 阅读 · 1 评论 -
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 · 692 阅读 · 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 · 1144 阅读 · 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 · 618 阅读 · 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 · 333 阅读 · 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 · 495 阅读 · 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 · 327 阅读 · 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 · 842 阅读 · 0 评论 -
pwn刷题num36----运行即可获得shell
BUUCTF-PWN-others_shellcode首先查保护–>看链接类型–>赋予程序可执行权限–>试运行32位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----存在栈溢出开启NX保护-----堆栈不可执行开启PIE-----程序内存地址随机化动态链接程序运行后发现一个,和我们终端命令行的,和我们终端命令行的,和我们终端命令行的很像,ls一下,直接列举了我的当前目录下的文件,说明这个题运行即可获得shell...原创 2022-04-29 22:03:32 · 132 阅读 · 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 · 321 阅读 · 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 · 2032 阅读 · 1 评论 -
pwn刷题num33---ret2text
BUUCTF-PWN- [HarekazeCTF2019]baby_rop首先查保护–>看链接类型–>赋予程序可执行权限–>试运行原创 2022-04-28 18:50:44 · 339 阅读 · 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 · 454 阅读 · 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 · 223 阅读 · 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 · 2059 阅读 · 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 · 542 阅读 · 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 · 288 阅读 · 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 · 763 阅读 · 0 评论 -
pwn刷题num26-----格式化字符串漏洞实现任意地址修改
BUUCTF-PWN-[第五空间2019 决赛]PWN5首先查保护–>看链接类型–>赋予程序可执行权限–>试运行32位程序,小端序开启部分RELRO-----got表可写开启canary保护-----栈溢出需绕过canary开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接程序运行后首先输入一个name然后输入密码(passwd)最后failida看一下伪代码观察主函数,发现格式化字符串漏洞printf(&buf);原创 2022-04-27 18:06:17 · 478 阅读 · 0 评论 -
pwn刷题num25---- strncmp绕过 + 整数溢出 + ret2libc
BUUCTF-PWN-[OGeek2019]babyrop首先查保护–>看链接类型–>赋予程序可执行权限–>试运行32位程序,小端序开启部分RELRO-----got表可写开启canary保护-----栈溢出需绕过canary开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接程序运行后,先让我们输入name,又让我们输入密码,ida一下看一下主函数首先调用一个sub_80486BB()函数·一些打初始化的操作然后打开了一个文原创 2022-04-26 21:18:49 · 1292 阅读 · 0 评论 -
pwn刷题num24----ret2libc + 栈平衡
BUUCTF-PWN-ciscn_2019_c_1首先查保护–>看链接类型–>赋予程序可执行权限–>试运行64位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----可能存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接运行程序后,有三个选择,欢迎来到这台加密机 1.加密 2.解密3.退出选加密1写入三个aaa,被加密成lll,选解密2,出了一句我认为你能自己解密。。。ida看一原创 2022-04-26 19:46:26 · 1229 阅读 · 0 评论 -
pwn刷题num23----栈溢出
BUUCTF-PWN-jarvisoj_level0首先查保护–>看链接类型–>赋予程序可执行权限–>试运行64位程序,小端序未开启RELRO-----got表可写未开启canary保护-----可能存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接ida一下程序首先用write函数输出了一个Hello,World,又调用了一个函数明显的栈溢出,buf占0x80字节,而read函数要读取0x200字节,可以覆盖返回地址原创 2022-04-26 18:09:57 · 167 阅读 · 0 评论 -
pwn刷题num22----栈溢出(c++)
BUUCTF-PWN-pwn1_sctf_2016首先查保护–>看链接类型–>赋予程序可执行权限–>试运行32位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----可能存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接ida一下看一下伪代码主函数调用一个vuln()函数和平常不一样,这次是c++代码首先让我们输入一个字符串,发现函数fgets,但是该函数只读取0x20个字节,而s有0原创 2022-04-25 18:08:04 · 1280 阅读 · 0 评论 -
pwn刷题num21----栈溢出
BUUCTF-PWN-ciscn_2019_n_1首先查保护–>看链接类型–>赋予程序可执行权限–>试运行64位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----可能存在栈溢出开启NX保护-----堆栈不可执行未开启PIE-----程序地址为真实地址动态链接运行后发现让我们猜数字,随便写一个(这里写的是12),之后告诉我们Its value should be 11.28125,我们再次运行程序输入11.28125,还是不对,ida原创 2022-04-25 17:44:23 · 182 阅读 · 1 评论 -
pwn刷题num20----栈溢出
BUUCTF-PWN-warmup_csaw_2016首先查保护–>看链接类型–>赋予程序可执行权限–>试运行64位程序,小端序开启部分RELRO-----got表可写未开启canary保护-----可能存在栈溢出未开启NX保护-----堆栈可执行未开启PIE-----程序地址为真实地址RWX----有可读可写可执行段动态链接程序运行后告诉我们一个地址0x40060dida一下看一下伪代码主函数里有一个sprintf注意一下sprintf(&s, "%原创 2022-04-25 16:56:53 · 177 阅读 · 0 评论 -
pwn刷题num19----栈溢出
BUUCTF-PWN-rip首先查保护–>看链接类型–>赋予程序可执行权限–>试运行64位程序,小端序开启部分RELRO-----got表可写未开启NX保护-----堆栈可执行未开启PIE-----程序地址为真实地址RWX----有可读可写可执行段动态链接ida一下,看一下主函数这里的gets(&s, argv); gets第一个参数是要输出的字符串首地址,第二个参数是输出的字符串的长度s占0xf个字节,这里argv的值是未知的,但这个程序能利用的也只原创 2022-04-24 19:59:23 · 489 阅读 · 0 评论 -
pwn刷题num18------直接连接远程即能获得shell
BUUCTF–PWN–test_your_nc首先查保护->看链接类型->增加可执行权限->运行64位,小端序开启部分RELRO---got表仍可写未开启canary保护---栈溢出开启NX保护----堆栈不可执行开启PIE----程序地址不是真实地址动态链接程序执行后出现一个$符号,随便输入后又出现了/bin/shida看一下主函数直接就是调用了system(“/bin/sh”),直接获得shell或者写个expexpfrom pwn import原创 2022-04-24 18:02:21 · 610 阅读 · 0 评论