BUU-PWN
文章平均质量分 75
记录在BUU平台上PWN题目的做题过程
L.o.W
这个作者很懒,什么都没留下…
展开
-
BUUCTF-PWN刷题记录25(IO file attack)
背景知识在做关于IO FILE的攻击的时候,对其中涉及的数据结构的了解必不可少,以下是几个关键的数据结构FILE 结构定义在 libio.h 中,如下struct _IO_FILE { int _flags; /* High-order word is _IO_MAGIC; rest is flags. */#define _IO_file_flags _flags /* The following pointers correspond to the C++ strea原创 2020-08-14 23:03:51 · 1525 阅读 · 1 评论 -
BUUCTF-PWN rctf_2019_babyheap(house of storm,堆SROP)
目录题目分析漏洞利用Exp题目分析程序还有沙箱保护,把execve禁用了,只能orw了漏洞利用Exp原创 2020-06-05 13:04:24 · 1511 阅读 · 0 评论 -
BUUCTF-PWN刷题记录-24 & libc-2.29学习(下)
目录[2020 新春红包题]3[2020 新春红包题]3原创 2020-05-29 13:08:17 · 1012 阅读 · 6 评论 -
BUUCTF-PWN刷题记录-22
目录ciscn_2019_n_2(double free)ciscn_2019_n_2(double free)delete的时候有一个double free漏洞利用思路:先用一个double free把0x602060(chunklist)申请出来,这样我们就能先修改里面的指针了,先利用GOT表泄露libc,然后写入__free_hook的地址并使用编辑写入system地址就行Exp:from pwn import *menu = "Your choice: "def add(con原创 2020-05-18 10:12:44 · 663 阅读 · 0 评论 -
BUUCTF-PWN刷题记录-21
目录wdb_2018_1st_babyheap(unlink, UAF)wdb_2018_1st_babyheap(unlink, UAF)add的大小固定为0x20edit机会只有三次指针悬挂利用思路如下:进行几次添加add(0, (p64(0)+p64(0x31))*2)add(1, 'aaa\n')add(2, 'aaa\n')add(3, 'aaa\n')add(4, '/bin/sh\n')删除0和1,再删除一次0,此时show(0)能泄露出heap的地址原创 2020-05-15 09:32:17 · 591 阅读 · 1 评论 -
BUUCTF-PWN刷题记录-19
目录wustctf2020_name_your_catwustctf2020_name_your_dogwustctf2020_name_your_cat在NameWhich函数中没有越界检查我们调试看一下0xffd31214就是char v3[40]的地址而在0xffd3124c处就存放着函数返回地址0xffd3124c-0xffd31214=0x380x38/8=7所以我们name 7 就能修改这个返回地址了Exp:from pwn import *r = remote原创 2020-05-09 17:05:16 · 463 阅读 · 0 评论 -
BUUCTF-PWN刷题记录-18(格式化字符串漏洞)
目录xman_2019_format(字符串位于堆上)hitcontraining_playfmt(字符串位于bss)wustctf2020_babyfmtxman_2019_format(字符串位于堆上)一道格式化字符串题目,但是只有一次输入机会,但是有多次利用机会,每次利用使用‘|’隔开我们先看一下栈的情况经过多次调试,可以发现返回地址最低一个16进制位一定为0xC,我们只需要爆破倒数第二个16进制位就能得到指向返回地址的栈上地址Exp:from pwn import *#r =原创 2020-05-08 20:29:11 · 1674 阅读 · 0 评论 -
BUUCTF-PWN刷题记录-17
目录nsctf_online_2019_pwn1(堆重叠,_IO_2_1_stdout_泄露libc)nsctf_online_2019_pwn1(堆重叠,_IO_2_1_stdout_泄露libc)添加没有太大限制,但是会把之前内容清空删除没有指针悬挂,并且没有show功能edit有一个off-by-null利用思路因为本题的memset清0使得题目变得复杂了一点进行4次a...原创 2020-05-06 22:24:05 · 708 阅读 · 0 评论 -
BUUCTF-PWN刷题记录-16
目录ciscn_2019_es_5(realloc double free)npuctf_2020_easyheap(off-by-one)ciscn_2019_es_5(realloc double free)申请没有大小限制,数目上限为10edit会调用realloc重新申请(其实不会的,因为大小不变)如果edit就不能show了看了一下这题没有什么明显漏洞,但是考虑到re...原创 2020-05-05 20:41:43 · 715 阅读 · 1 评论 -
BUUCTF-PWN刷题记录-15
目录0ctf_2016_warmup(ROP,利用alarm修改eax)SWPUCTF_2019_login(格式化字符串漏洞,字符串位于bss)0ctf_2016_warmup(ROP,利用alarm修改eax)不能执行shellcode有一个缓冲区溢出由于NX保护,我们只能考虑ROP这里有一个小技巧,就是alarm函数程序开始调用了alarm如果我们之后再次调用alarm,...原创 2020-04-29 12:03:48 · 670 阅读 · 0 评论 -
BUUCTF-PWN刷题记录-14
目录sctf_2019_easy_heap(块重叠,double free)sctf_2019_easy_heap(块重叠,double free)这题原题目好像是在Ubuntu16下的,但是BUU上面是Ubuntu18,所以应该更简单一点总的来说,这题应该是ciscn_2019_final_3的加强版吧,当然也有更简单的地方首先,给了我们一块rwx的空间add函数会给你conten...原创 2020-04-29 10:51:25 · 602 阅读 · 0 评论 -
BUUCTF-PWN刷题记录-13(静态编译+去除调试符号)
目录[中关村2019]one_string(unlink)[中关村2019]one_string(unlink)看这个保护,我以为很简单,然而···这题去除了所有符号,并且是静态编译,所以第一步就是把主要函数找出来,如下在edit函数中,程序会重新计算content的长度,这个时候如果利用了chunk复用,下一个chunk的size也会被计算进长度,这样下次编辑的时候就能覆盖si...原创 2020-04-27 20:38:11 · 1333 阅读 · 0 评论 -
houseoforange_hitcon_2016(House of orange, unsorted bin attack,FSOP)
目录题目分析漏洞利用Exp题目分析只有添加,显示,编辑三个功能,没有删除添加函数,最多只能添加四次,每次添加会依次执行malloc(0x10),malloc(name_size),calloc(8)House结构体如下在编辑函数中,可以进行堆溢出,因为House没有把name的size保存下来编辑次数最多为3漏洞利用Exp...原创 2020-04-27 11:26:04 · 1415 阅读 · 1 评论 -
BUUCT-PWN 0ctf_2018_heapstorm2(house of storm)
目录题目分析漏洞利用Exp题目分析这题估计是house of storm利用的起源?因为用这种办法直接就可以做通,后面还有rctf_2019_babyheap也需要用到house of storm,但是那题限制条件多多了init()里先把fastbin禁用了申请了0x13370000这块内存,并且做了初始化初始化首先读入长度为0x18的随机数,就记为3个long long随机数吧...原创 2020-04-25 10:32:06 · 1592 阅读 · 1 评论 -
BUUCTF-PWN刷题记录-12
ciscn_2019_sw_1一道思路比较独特的格式化字符串漏洞题目main函数中只有一次利用漏洞的机会有system的got表项一个可行思路是把printf的GOT改为system@plt,然后输入/bin/sh,但是考虑到只有一次机会就比较困难所以我们需要一个能让main多次执行的办法这时我们只要把main的地址填入finit_array就能无限循环main函数了简单介绍一...原创 2020-04-23 18:13:02 · 661 阅读 · 0 评论 -
BUUCTF-PWN roarctf_2019_easyheap(double free, stdout重定向)
这里写目录标题题目分析漏洞利用Exp题目分析有添加,删除,展示三个主要功能,不过添加有次数限制,同时限制了申请大小,使得我们不能申请出unsorted bin范围内的chunk删除之后没有置空,可以多次freeshow功能有条件限制,而且会把stdout关了添加和后门的次数后门函数可以进行calloc和free,同样没有置空,但是后门函数的次数限制逻辑有问题,即使为0还会再...原创 2020-04-23 10:58:27 · 769 阅读 · 0 评论 -
BUUCTF-PWN刷题记录-11
目录wustctf2020_name_your_catwustctf2020_name_your_cat原创 2020-04-22 11:03:48 · 835 阅读 · 0 评论 -
BUUCTF-PWN刷题记录-10
目录wustctf2020_number_game(neg操作原理)zctf2016_note2(强制转换溢出,unlink)wustctf2020_name_your_catwustctf2020_number_game(neg操作原理)需要输入一个数,变为负数之后还是负数这题就设计计组知识了,neg的操作为按位取反+1,而0x80000000取反加一之后仍然是0x80000000,所以...原创 2020-04-19 16:44:37 · 846 阅读 · 0 评论 -
BUUCTF-PWN gyctf_2020_bfnote(劫持TLS结构,ret2_dl_runtime_resolve)
目录程序分析背景知识延迟绑定Canary漏洞利用Exp程序分析一道带有canary的栈溢出题目main函数是吧ebp-4中存放地址再减四获得的调试结果如下背景知识延迟绑定本题需要利用ret2al_runtime_resolve,涉及到延迟绑定的技术,简单介绍一下函数绑定的过程,以atol的调用为例我们看一下第一次调用程序atol,此时atol_got存放着atol@plt+6...原创 2020-04-19 11:41:24 · 1489 阅读 · 1 评论 -
BUUCTF-PWN刷题记录-9
目录roarctf_2019_realloc_magicroarctf_2019_realloc_magic原创 2020-04-17 22:54:05 · 1480 阅读 · 0 评论 -
BUUCTF-PWN roarctf_2019_realloc_magic(tcache attack,块重叠,劫持_IO_2_1_stdout_泄露libc)
目录题目分析漏洞利用Exp题目分析free没有限制,可以多次free使用realloc进行内存分配,没有限制大小realloc的几个特殊用法(摘自官方WP)size == 0 ,这个时候等同于freerealloc_ptr == 0 && size > 0 , 这个时候等同于mallocmalloc_usable_size(realloc_ptr) &g...原创 2020-04-17 18:43:09 · 1878 阅读 · 17 评论 -
BUUCTF-PWN刷题记录-8
目录roarctf_2019_realloc_magicroarctf_2019_realloc_magic原创 2020-04-16 20:13:17 · 891 阅读 · 3 评论 -
BUUCTF-PWN刷题记录-7
目录roarctf_2019_realloc_magicroarctf_2019_realloc_magic原创 2020-04-15 19:53:18 · 881 阅读 · 0 评论 -
BUUCTF-PWN gyctf_2020_force(house of force)
目录程序分析漏洞分析漏洞利用EXP程序分析程序只有添加功能,puts功能没有用添加功能中,有三个注意点chunk大小没有限制可以获得分配空间的地址读入长度固定为0x50漏洞分析根据题目force,可以联想到house of force堆利用方法以下内容取自ctf-wikiHouse Of Force 是一种堆利用方法,但是并不是说 House Of Force 必须...原创 2020-04-15 10:58:43 · 1329 阅读 · 1 评论 -
BUUCTF-PWN ciscn_2019_final_5(临界条件错误,劫持GOT表项)
目录题目分析漏洞分析漏洞利用Exp题目分析例行安全检查没有PIE,方面调试partial relro意味着这题应该直接改GOT表就能做菜单:没有show功能,可以考虑吧某个函数(比如free的GOT)改为puts@plt可以申请17个chunk,编号为0-16每次分配结束后会显示分配内存的低12bits而本题中还有一个特殊的地方,就是content数组(0x6020e0)...原创 2020-04-14 16:41:07 · 978 阅读 · 0 评论 -
BUUCTF-PWN刷题记录-6
目录picoctf_2018_are you rootciscn_2019_final_2picoctf_2018_are you root例行安全检查菜单如下:我们需要auth_level等于5才能get flaguser结构体如下struct USER{ char *name; long long auth_level;}漏洞原理分析:在login中分配了两次内存...原创 2020-04-14 12:55:39 · 828 阅读 · 0 评论 -
BUUCTF-PWN刷题记录-5(Tcache)
目录ciscn_2019_final_3[V&N2020 公开赛]easyTHeapciscn_2019_final_3只有添加和删除两个功能限制了申请的大小,最大为0x78,意味着chunk最大为0x80,添加完可以泄露堆上的地址free之后没有置空,可以double free题目分析差不多就这样,下面是漏洞利用:先申请一个大小为0x78的heap[0],记录下返回地...原创 2020-04-13 09:57:57 · 1324 阅读 · 5 评论 -
BUUCTF-PWN刷题记录-4
目录hitcontraining_secretgardenhitcontraining_secretgarden这题需要使用double freesize字段的高四位可以不为0原创 2020-04-10 14:52:51 · 1015 阅读 · 4 评论 -
BUUCTF-PWN刷题记录-3
目录hitcontraining_heapcreatorhitcontraining_heapcreator考虑修改GOT表在edit函数中可以溢出一个byte这题需要利用堆重叠的方法,因为free之后会置空,只能利用堆重叠进行重复分配利用思路如下:先申请三个heap,其中heap[0]的内容大小为8的奇数倍使用edit溢出修改heap[1]的chunk的size,把heap[...原创 2020-03-31 21:50:51 · 847 阅读 · 0 评论 -
BUUCTF-PWN刷题记录-2
目录gyctf_2020_borrowstackgyctf_2020_borrowstack本题只有有限的溢出空间,而且有NX的保护,只能用ROP的办法利用方法为把rbp改为bank+4的地址,返回地址改为leave的地址,这样就能利用RBP修改RSP,bank前8个字节填写bank+8的地址,之后跟上ROP链,不过这题还有一点,就是Bank离stdin和stdout比较近,需要先使用...原创 2020-03-15 15:50:49 · 624 阅读 · 2 评论 -
BUUCTF-PWN刷题记录-1
目录get_started_3dsctf_2016[第五空间2019 决赛]PWN5get_started_3dsctf_2016这题很有迷惑性,要注意的是题目给的get_flag函数是读不出flag的,因为flag存在flag里而不是flag.txt开了NX,不过这题可以使用mprotect将bss段修改为可读可写可执行,然后调用read向bss段写入shellcode就能获得shell...原创 2020-03-11 14:48:30 · 484 阅读 · 0 评论