通过劫持线程arena,当堆开了一个线程之后,如果没有做好保护随之的危险也悄然而至❗ BUU上的n1ctf2018_null很好的说明了这个问题 题目链接:BUUCTF在线评测(buuoj.cn) 看一下保护: 除了pie保护剩下的保护全开了,64位ida载入看一下 上来是一个输入密码,密码是i'mreadyforchallenge,随后登录成功,创建了一个新的线程 我们进去看看 是一个死循环,可以看见对输入的chunk大小以及数量都是非常大的,而且程序还有一个溢出我们看一下sub_400bca 那么可以看见当我们输入的内容比size小的时候,我们可以二次输入这次最大可以输入size的...

  YOkriIV1Am1d   14天前   45   0   0 网络安全

hello_world(签到) 思路:✅ 这道题就是利用printf函数泄露libc的基地址,然后再次进行栈溢出通过system,/bin/sh来获取shell wp: invisible_flag 思路:✅ 题目提示orw,那我们先看看是否开了沙盒 那么是开了沙盒的,试试orw读取flag 虽然保护全开但是程序会执行我们写的shellcdoe那么就可以orw读取flag了 wp: static_link 思路:✅ 那么这题提示我们是静态编译,对于静态编译的,哪些ret2libc什么的都没法使用了,但是我们可以利用程序现有的函数,比如read,write,mprotect....等等。...

  YOkriIV1Am1d   19天前   39   0   0 网络安全

Unsortbinattack原理 ✔️条件:首先要实现Unsortbinattack前提是可以控制Unsortbinattackchunk的bk指针 ✔️目的:我们可以实现修改任意地址为一个比较大的值 ✔️原理:1.Unsortbin的来源 1.当一个较大的chunk被分割成两半后,如果剩下的部分大于MINSIZE,就会被放到unsortedbin中。 2.释放一个不属于fastbin的chunk,并且该chunk不和topchunk紧邻时,该chunk会被首先放到unsortedbin中。 3.如果不是和topchunk近邻的话,当进行malloc_consolidate时,可能会把合并后...

  YOkriIV1Am1d   22天前   27   0   0 网络安全

Fastbinattack&&Doublefree和Unsortbinleak的综合使用✅ 今天做一个综合题目,包括利用Fastbinattack实现多指针指向一个地址,以及利用Unsortbinleak泄露libc基地址和修改__malloc_hook地址为one_gadget 题目是buuctf上面的一道题目,题目链接https://buuoj.cn/challengesbabyheap_0ctf_2017 checksec看一下保护 太绿了.....保护全开,不过对于堆题目这也狠正常 那么就64位ida载入 也是有一个菜单和一些功能函数 一个一个看 那么第一个就是申...

  YOkriIV1Am1d   22天前   23   0   0 网络安全

Unlink原理和一些手法 ✅简单介绍一下unlink相关的知识 unlink是利用glibcmalloc的内存回收机制造成攻击的,核心就在于当两个free的堆块在物理上相邻时,会将他们合并,并将原来free的堆块在原来的链表中解链,加入新的链表中其目的是把一个双向链表中的空闲块拿出来(例如free时和目前物理相邻的freechunk进行合并)比如说数组这类的.........等等。 前提是我们可以进行溢出修改下一个chunk的fd和bk指针 当我们实现unlink的时候就可以任意地址写,但是现实是残酷的,现在的unlink加了很多保护,我们先看一下定义。 defineunlink(P,BK,...

  YOkriIV1Am1d   23天前   12   0   0 网络安全

延迟绑定与retdlresolve 我们以前在ret2libc的时候,我们泄露的libc地址是通过延迟绑定实现的,我们知道,在调用libc里面的函数时候,它会先通过plt表和gor表绑定到,函数真实地址上,那么在第二次调用的时候就可以用了,不用再次绑定 那么它是怎么样实现的呢,我们还是通过一个题目一步步去看一下调试过程,我们这里看一下write函数 我们断点下到callwrite,可以看见首先jmp到write的plt表里面push了一个0x20,然后继续jmp,我们把这个push的0x20叫做reloc_arg,也是dl_runtime_resolve的第一个参数 继续步入,我们可以看见又...

  YOkriIV1Am1d   25天前   17   0   0 网络安全

HouseOfForce 首先介绍一下什么是HouseOfForce HouseOfForce是一种堆利用方法,但是并不是说HouseOfForce必须得基于堆漏洞来进行利用。如果一个堆(heapbased)漏洞想要通过HouseOfForce方法进行利用,需要以下条件: 能够以溢出等方式控制到topchunk的size域 能够自由地控制堆分配尺寸的大小 一句话来说,如果我们可以控制topchunk的指针,那么我们就可以达到任意地址写,但是glibc对申请chunk进行了验证 //获取当前的topchunk,并计算其对应的大小 victim=av->top; size=chunks...

  YOkriIV1Am1d   26天前   18   0   0 网络安全

堆块重叠 对堆的了解不是很多,大部分都是自己网上找的资料了解的,以后每一道堆题我都会仔仔细细的写出来。这里先拿一道做示范 题目链接:https://pan.baidu.com/s/1HbHkdHbEzt4UIe44gW8uqg提取码:Ch13 看保护,pie保护关闭,延迟绑定,got表可以修改 64位ida载入 我们看看实现的功能 实际上这个就是指针用来找到我们堆的位置 思路是:1.我们先申请一个大小为0x18大小的堆,和一个大小0x10的堆2.然后编辑第1个堆输入/bin/sh\x00并且使size位为0x41使指针位置变化3.然后free第二个堆申请一个大小为0x30大小的...

  YOkriIV1Am1d   29天前   26   0   0 网络安全

一种新的姿势:程序try/catch抛出异常之绕过canary 我前面发了不少关于绕过canary的姿势,先总结一下,现在绕过canary的姿势有泄露,爆破,格式化字符串绕过,多线程劫持TLS绕过,stack_smashing,数组越界等等,今天介绍一种新的姿势,就是程序处理异常时,如果异常被上一个函数的catch捕获,那么上个函数的rbp就会变成上这个函数的rbp,详细可以看看处理异常的过程。https://blog.csdn.net/qq_31865983/article/details/97387879这里就加以利用 首先还是查看保护 nx保护关闭我们64位ida载入看一下 里面有...

  YOkriIV1Am1d   2024年04月13日   23   0   0 网络安全

stacksmashing--canary报错利用 一般这种都是考察点比较狭窄,因为这个漏洞在libc2.23以上就被修复了,漏洞产生的原因是因为当覆盖掉canary的时候程序会报错,程序会执行__stack_chk_fail函 数来打印__libc_argv[0]指针所指向的字符串,如果把这个字符串覆盖成flag地址那么就可以得到flag 那么我们看一下保护,这种canary保护都是开启的 32位ida载入 一次read一次printf就是格式化字符串漏洞了,而且程序给了后门函数,那么我们可以修改_stack_chk_fail的got表或者修改 __do_global_dtors_a...

  YOkriIV1Am1d   2024年04月12日   26   0   0 算法与数据结构

进阶stacksmashing--canary报错利用&&environ泄露栈地址 这部分是对进阶stacksmashing的使用,以及对environ的认识,我们可以看一个buu上具体的题目 题目连接https://buuoj.cn/challengeswdb2018_guess 看一下保护,pie没有开 64位ida载入看一下 那么在ida里面看见还是挺麻烦的,首先程序打开了flag文件,然后把flag读取到的栈上的buf数组中,有三次输入的机会,而且gets存在栈溢出 那么思路是通过找到偏移我们可以把puts_got表的地址打印出来,然后得到libc的地址之后可以...

  YOkriIV1Am1d   2024年04月12日   20   0   0 网络安全

格式化字符串走过的坑pwn109 今天做的一道题有一个坑我调试半天终于打通了,格式化字符串的坑,确实不少,东西也比较多容易忘记,怎么说呢,功夫在平时,经验少了 老规矩先看一下保护 FullRELRO意味着got不能修改也就是不能通过格式化字符串漏洞来改got表,但是nx保护关闭了,也就是我们可以通过修改返回地址到我们写的shellcode上就好了 iad打开 选项2printf打印你写的数据(格式化字符串漏洞)选项1是往栈上写数据,而且他还把栈地址给你了,就不需要额外泄露了 首先计算一下我们输入的数据偏移 那既然有栈地址了还有偏移了直接构造payload 但是却失败了,怎么回事,...

  YOkriIV1Am1d   2024年04月09日   36   0   0 网络安全

PWN31使用checksec查看保护 发现除了canary剩下保护全开,那么就没有前面几个题目那么简单了,ida打开看见他给了我们main函数地址 虽然开了pie但是在他们之间的偏移是一定的,那么我们就可以通过他给的main函数的真实地址减去偏移得到文件(elf)的基地址,然后puts_pltputs_got表地址就有了。在ctfshow函数里面有一个栈溢出漏洞但是我们要找一下溢出偏移,因为pie最好以gdb动态调试为准。 在gdb中我们先生成300个字符用来计算偏移 然后再输入的时候进行输入最后会报错因为栈溢出了没有这个返回地址,那么我们可以通过cyclic-l报错地址来查找偏移 得...

  YOkriIV1Am1d   2024年04月01日   28   0   0 网络安全
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~