- 博客(15)
- 收藏
- 关注
原创 DiceCTF_2025_locked_room
很有趣的一道题目,patch了libc,比赛当时没做出来(差一点,没有注意到patch中调用了strlen函数😿),赛后看其他师傅的writeup一下就悟了,直接出了。而且这种min_address~max_address的申请限制也很有趣,和uclibc中malloc-standard的检查有点类似,有可能这道题的方法能够绕过uclibc的检查???😕现在再次复现一下…🗿。
2025-11-18 22:52:48
561
原创 Go_PWN && L3akCTF_2025_GoWriteWhere
📌简单记录一下做go pwn题目的过程吧(第一次做go pwn,也是一脸懵)参考文章:[
2025-11-06 18:22:28
886
原创 不需要vtable的house_of_apple && securinets_CTF_2025_V_tables
不需要设置vtable的House of Apple3😃。
2025-10-17 12:33:09
227
原创 SecurinetsCTF_2025_Sukunahikona
HeapObject可以通过valueOf重新定义HeapObject的返回值(加减乘除,或ToNumber、ToString等函数,并不影响之前的指针和数据)因为设置长度时没有使用JSArray::SetLength这样的函数,而是调用set_length,并不会影响element,这样就造成了OOB。给JSArray添加了一个Shrink功能函数:根据传递进来的new_length设置JSArray的length。而HeapObject的valueOf函数可以由用户自己定义,那么就存在这么一种情况。
2025-10-16 22:37:48
202
原创 WMCTF_2025_kpf
在write_cmd的while循环中,当v22==v17时,并不会退出循环,而是再拷贝一次,进而导致了溢出(v17相当于轮数,v22是传递的size/value_size)map_init:将map_fd存放在map数组里(需要满足map_type == 2 == BPF_MAP_TYPE_ARRAY && value_size > 3)read_cmd:通过调用map_lookup_elem读取数据。del_cmd:将指定index的map_fd给置零。1 堆喷pte结构体和bpf_map结构体。
2025-10-14 19:19:54
415
原创 WMCTF_2025_easyker
代码量也很少,当arg=0x8888时可以任意地址读(只有一次机会),当arg=0x9999时,可以修改rsp的值(a2就是rsp)进行write,即可向内核的input_pool+0x30处写入我们能够控制的值,最多可写入0x40大小的值(原理参考上面这个网址)如果没有smep和smap的话直接返回到用户态进行rop,可惜被禁止了。在地址0xfffffe0000000004上存在固定的基于内核基地址的地址,可以直接泄露。那么思路也就很清楚了,利用任意地址读泄露内核基地址,然后利用任意地址执行进行rop。
2025-10-14 19:17:05
380
原创 WMCTF_2025_easynetlink
官方题解:WMCTF2025 Official WriteUp - W&M Team一样的,先查看存在漏洞的ko文件init:先注册通用netlink,然后为三个全局变量进行赋值(随机值)family:可以看到不同的函数对应不同的cmdadd:根据random_size申请堆块(只能申请一次)del:释放该堆块(只能释放一次,存在UAF)backdoor:获取三个随机值edit:chunk_ptr+random_offset=random_value思路比较明确,一样的打法,先申请,泄露3个随机值,然后
2025-10-14 19:12:29
339
原创 ACTF_2025_arandom
占据过后先创建bpf_prog,让checker认为没有问题,之后使ptr+rand_offset处写上rand_value,导致运行时实际存在0 or 1的差别。先申请,泄露AAA 3个随机值,然后释放掉,使用bpf_map_array来占据这个堆块(存在bpf_map头,大小为0x100,且size可以控制)
2025-10-11 18:55:09
297
原创 crewCTF_2025_barelyontime
首先查看题目给的模块源码仔细阅读了一遍过后,存在两个可疑的地方:1、ioctl函数里面的create使用了全局锁,但delete、edit和show用的是id对应lock结构体中的锁(有可能是条件竞争);2、为什么delete_user_data结构体里面传递了一个,没搞懂用来干什么(整个代码也就一个地方使用了—delete功能点)。整个源码读下来,没有发现明显的漏洞点,第一反应就是条件竞争但构思了半天,还是没有太大的想法💢最后再次仔细读了一遍create和delete功能点的代码,发现如下:creat
2025-09-26 21:42:47
827
原创 湾区杯_2025_PWN
记录一下最近做的一些传统PWN题线下赛还是去少了(没经验+没网络),太紧张了(crc16写半天…)导致一些比较简单的题目都没有做出来。
2025-09-22 12:51:05
957
原创 湾区杯-2025-初赛-imi_mqtt
文章摘要 题目"imi_mqtt"是2025年湾区杯初赛的一道MQTT协议相关题目。作者通过分析发现程序存在两个漏洞:一是show函数中的任意地址读漏洞,由于对index参数缺乏校验;二是copy函数中的一定范围内任意地址写漏洞,通过传递负数index绕过边界检查。题目环境搭建使用Mosquitto broker和自定义客户端程序,结构体分析显示包含多个可控字段。最终解题思路是利用这两个漏洞组合实现任意代码执行。
2025-09-11 23:45:02
560
原创 TFCCTF_2025_specul8
摘要:该题目利用V8引擎中字符串长度检查漏洞,通过创建超过String::kMaxLength的字符串,结合JIT优化时消除边界检查的特性实现越界读写。关键点在于构造一个JIT认为安全但实际越界的访问场景,利用右移操作使实际索引超出预期范围。通过优化函数和特定输入触发漏洞,最终实现任意地址读写(AAR/AAW)。漏洞根源在于simplified-lowering.cc中对边界检查的优化逻辑缺陷。
2025-09-07 23:31:06
325
原创 TFCCTF_2025_specul7
摘要:该文档描述了一个Chrome V8漏洞利用题目,要求通过StringMultiply函数创建一个超过String::kMaxLength限制的字符串来获取flag。关键漏洞在于StringMultiply函数未正确检查字符串长度限制,直接返回任意长度的字符串。通过分析patch.diff可以看到,该函数仅检查循环中的拷贝过程,但最终仍会返回超长字符串。利用方法很简单:只需构造一个足够大的乘数(如67108869.1)与字符串相乘,然后调用giveMeFlag()即可获取flag。最终exp可简化为一行
2025-09-03 22:09:38
242
原创 TFCCTF_2025_SLOTS
摘要:该技术文档描述了一个利用内核UAF漏洞获取flag的详细过程。通过分配和释放0x28大小的堆块,创建pipe管道并修改其结构体,利用漏洞模块的读写功能泄露内存数据。通过精准计算内核地址偏移,定位flag位置,最终成功读取flag。文中提供了完整的C语言实现代码,包括内存操作、管道设置和爆破搜索flag的关键步骤。该技术方案需要多次尝试,并提供了调试技巧和错误处理方法。
2025-09-03 18:50:27
198
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
6