- 博客(33)
- 收藏
- 关注
原创 CISCN&CCB半决赛_2025_PWN_WP
记录一下第一次打半决赛国赛,总结来说还是自己太菜了,还有check脚本是真的很shi,正规军白给了。。。
2025-03-20 16:34:36
165
原创 常回家看看之Tcache Stashing Unlink Attack
在开始了解这个攻击手法的前提,需要先了解一个函数也就是calloc函数,众所周知,当libc版本大于等于2.27的时候会引入tcachebin,而Tcache Stashing Unlink Attack就是发生在2.27版本以上,那么这个和calloc有什么关系呢,周知所众,当tcahchebin里面有符合条件的空闲堆块的时候,malloc会优先去tcachebin里面拿堆块,然而calloc不是这样,它会越过tcachebin来拿取堆块,这个特殊的机制,还有接下来的一个忽略的检查。
2024-12-13 19:36:11
1027
原创 vmpwn小总结
vmpwn的学习远远不止这些,这里只能算入门,大致了解一下vmpwn的分析方法和一些常见漏洞等等,对于这些偏逆向的题目需要有一定的逆向基础,对我而言还是比较吃力的,看懂要很久,但是我建议加上动态调试多去看看其中的变化,还是便于理解的.....vmpwn先搁了。
2024-12-13 16:58:40
935
2
原创 [2024领航杯] Pwn方向题解 babyheap
当然这个比赛我没有参加,是江苏省的一个比赛,附件是XiDP师傅在比赛结束之后发给我的,最近事情有点多,当时搁置了一天,昨天下午想起来这个事情,才开始看题目,XiDP师傅说是2.35版本的libc,确实高版本libc的却棘手,我经验太浅了调试半天,最后让我们一起看一下这个题目。
2024-10-14 18:31:04
974
原创 [2024领航杯] Pwn方向题解 babyheap
当然这个比赛我没有参加,是江苏省的一个比赛,附件是XiDP师傅在比赛结束之后发给我的,最近事情有点多,当时搁置了一天,昨天下午想起来这个事情,才开始看题目,XiDP师傅说是2.35版本的libc,确实高版本libc的却棘手,我经验太浅了调试半天,最后让我们一起看一下这个题目。
2024-10-14 18:29:35
1275
原创 Patlibc———更快捷的更换libc
如果有多个小版本,则可以自行选择,path不能跨目录读取,比如../AA/BB/glibc-all-in-one。题目所在的文件夹下,否则可能出现替换失败。题目所在的文件夹下,否则可能出现替换失败。题目所在的文件夹下,否则可能出现替换失败。库的工具,适用于解决需要自定义。文件夹中,则参数三填写。完成上述步骤后即可使用。,若未安装,请先下载。
2024-09-06 13:10:48
500
1
原创 常回家看看之tcachebin-attack
那么接下来就有意思了,还记得我说chunk9无了吗,是的它现在是没有了,我们再次申请堆块的时候,由于此时chunk 0 还在unsortbin里面申请的时候就会申请到它,标记下标为chunk9 ,但是此时chunk0 在使用中,所以被申请了两次,但是有两个下标chunk 0 chunk 9。这里可以看见当同一大小的chunk,tcachebin放满了7个之后才能free进入相应大小的bin链表里面,比如上图进入了unsortbin链表中,而且申请堆块的时候也是优先从tcachebin链表中拿。
2024-08-03 16:13:00
1011
原创 常回家看看之fastbin_attack
fastbin属于小堆块的管理,这里说的fastbin_attack大多指glibc2.26之前的手法,因为自glibc2.26以后,glibc迎来了一位新成员tcachebin,它减少了堆的开销,使堆管理变得迅速而高效,而且申请的小堆块会优先进入tachebin中,只有tachebin其中一个链表满了再次申请一个相同大小的堆块,若是小堆块再次free会进入fastbin中。
2024-08-03 15:01:19
529
原创 DASCTF2022.07赋能赛PWN部分WP
那我们就4次不输入一个数就可以进入漏洞函数,这里注意这个a1就是我们进入漏洞函数之前要输入的值,可以看见在read的时候使用的是un int 而判断的是int,那么这里就存在一个类型转换导致的整数溢出,我们可以输入比4294967296小一点的数,这样在判断转换的时候是负数,而在输入的时候就是这个大数,所以就可以造成溢出,然后ret2libc。不过在复现的时候远程buu平台把data命令禁用了,导致程序还没有开始输入就崩溃了。freeall函数,遍历刚刚free的堆块然后依次free,指针清零。
2024-08-02 17:01:30
520
原创 DASCTF 2023 & 0X401七月暑期挑战赛【PWN】(VIPhouse篇)
【代码】DASCTF 2023 & 0X401七月暑期挑战赛【PWN】(VIPhouse篇)
2024-07-24 17:11:06
562
原创 DASCTF 2023 & 0X401七月暑期挑战赛【PWN】(FileEditor篇)
【代码】DASCTF 2023 & 0X401七月暑期挑战赛【PWN】(FileEditor篇)
2024-07-24 16:43:24
326
原创 TLScanary:Pwn中的利器
在二进制漏洞利用(Pwn)领域,攻击者面临着层层防护措施的挑战。在安全竞赛(如CTF)和实际漏洞利用中,TLS(线程本地存储)和堆栈保护(stack canary)是常见的防护技术。TLScanary应运而生,它结合了TLS协议与堆栈保护技术,专门用于处理这些受保护的二进制文件,从而增加了攻击的难度。可以说,TLS和canary在保护机制中有着密不可分的关系。TLS(线程本地存储)是一种在线程内存中存储特定数据的机制。每个线程都有自己独立的TLS区域,用于存储与该线程相关的数据。
2024-07-12 18:29:19
962
原创 DASCTF X CBCTF 2023|无畏者先行 [PWN] WP
【代码】DASCTF X CBCTF 2023|无畏者先行 [PWN] WP。
2024-07-10 17:20:14
851
原创 通过劫持线程arena实现任意地址分配 n1ctf2018_null
BUU上的很好的说明了这个问题看一下保护:除了pie保护剩下的保护全开了,载入看一下。
2024-07-09 19:20:05
832
原创 Fastbin attack&&Unsortbin leak的综合使用✅
如果我们可以利用Fastbin attack先将其加入fastbin 链中然后就有了一个指向它的指针,然后再malloc回来再将他改回原来的大小,再次free得到unsortbin,再打印刚刚指向它的chunk就得到。),但是因为是64位的chunk,如果要利用打印上一个chunk来打印这个chunk的内容,那也会有很多的\x00来进行截断,所以也是行不通的,那么我们可以。偏移处,而main_arena是libc的data段中,是全局静态变量,所以偏移也是固定的,根据这些就可以计算出libc的基地址了。
2024-07-09 19:12:59
738
原创 DASCTF X GFCTF 2024|四月开启第一局[PWN] wp(详解)
【代码】DASCTF X GFCTF 2024|四月开启第一局[PWN] wp(详解)
2024-07-08 15:01:13
833
原创 详细介绍Unlink的原理及分析
并将原来free的堆块在原来的链表中解链,加入新的链表中其目的是把一个双向链表中的空闲块拿出来(例如 free 时和目前物理相邻的 free chunk 进行合并)比如说数组这类的.........等等。当我们实现unlink的时候就可以任意地址写,但是现实是残酷的,现在的unlink加了很多保护,我们先看一下定义。)中间把下标为3的chunk分割成了两个chunk,伪造fd和bk以及下一个chunk的头部使。因为FD和BK是被看作两个chunk那么fd和bk的位置是和普通的chunk一样的。
2024-07-07 10:46:32
2122
原创 常回家看看之堆溢出
32位,got可以修改,其实对于堆题目,有很多都是,保护全开的,这在堆里面很常见,都是我们还是要看保护,got可以修改,那么我们可以修改free或者malloc的got表,如果不能修改got表,我们还可以。有一些功能函数,我们具体看一下,add函数。接下来分析一下题目,首先看一下保护。有很多漏洞可以和它打配合。
2024-07-07 08:45:00
439
原创 pwn杂项之linux命令执行
1.当拿到题目的时候,先看有没有给libc什么的,如果给了,首先先把题目的libc换上,然后再进行下一步,当然对于这一个题目首先查看保护。通常pwn题目,时常会考到对Linux命令的一些使用。可以看见程序确实留的有后门,现在进行逐步分析。2.处于一个保护全开的状态,,64位ida载入一下。
2024-07-06 19:44:01
356
原创 常回家看看之off_by_one
在64位的时候如果申请0x18,0x28,0x38这样的堆它的size位是0x21,0x31和0x41,那为什么,头部0x10加申请的0x18大小已经是0x28大小了为啥size还是0x21,在栈里面也可以通过这个漏洞修改返回地址什么的,在堆里面我们主要利用它来修改。
2024-07-06 19:03:39
1040
原创 常回家看看之off_by_null(堆篇)
💧上次介绍了堆里面的off_by_one,那么这个off_by_null和它有神马区别呢,哎,别看名字挺像,它俩无论是在栈里面还是堆里面都有很大区别的。📌off_by_one,这个我们知道可以通过溢出控制到下一个字节,体现在堆里面就是,可以控制到下一个chunk的size位,我们知道根据堆的排布,当申请0x18,0x28,0x38,等这样末尾是8时(32位的是4),那么下一个chunk的prev_size就是我们的输入数据的空间,那么off_by_one就可以修改下一个chunk的size位实现一些堆漏
2024-07-06 19:01:18
653
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人