- 博客(48)
- 收藏
- 关注
原创 CTFshow LLVM PWN部分
LLVM PWN与VM PWN题目分析 PWN 331 直接运行获取flag,flag为ctfshow{llvm_pwn_is_v3ry_easy_aNd_v3ry_fuNny} PWN 332 (LLVM-PWN) 通过LLVM IR代码实现栈操作,利用函数指针劫持控制流: 写入free_got地址到寄存器 计算one_gadget偏移 覆盖free_got为one_gadget 触发free执行shell PWN 333 (VM PWN) 自定义虚拟机题目,保护全开: 利用brk系统调用泄露堆地址 调整
2025-11-25 16:17:44
516
原创 LLVM PWN 入门(一)
LLVM PWN 漏洞利用分析 摘要:本文分析了LLVM编译器框架及其在CTF竞赛中的应用。重点研究了CISCN-2021中的satool题目,通过逆向分析自定义LLVM PASS模块SAPass.so,发现漏洞点位于内存管理函数中。利用两次save函数调用可获取smallbins中的main_arena地址,结合stealkey、fakekey和run函数实现任意代码执行。调试过程展示了如何通过动静结合的方式分析复杂的C++代码,最终构造利用链完成攻击。该案例揭示了LLVM PASS框架中潜在的安全风险。
2025-11-20 22:34:02
1003
原创 XHLJ2021-easykernel之 seq_operations结合pt_regs
本文分析了Linux内核中seq_operations结构体的利用方法。该结构体定义在/include/linux/seq_file.h中,包含4个函数指针,通常通过打开/proc/self/stat获取,大小为kmalloc-32,分配标志为GFP_KERNEL_ACCOUNT。 主要利用方式: 泄露内核基地址:通过获取single_start等函数地址实现 劫持控制流:覆盖seq_operations函数表中的指针,配合pt_regs结构体实现 文章还给出了一个利用UAF漏洞的示例exp,通过分配/释放
2025-11-13 20:17:36
651
原创 N1CTF 2025 pwn Ktou
文章摘要 本题结合用户态和内核态pwn,涉及内核驱动漏洞利用。内核模块ktou.ko初始化时创建0x1000大小的内存池,存在三个关键操作:读取、普通写入和特殊写入。特殊写入操作(类型3)存在漏洞,当write大小设为0x100时,可通过截断实现向内存池起始位置(idx=0)的越界写入。用户程序user通过内核驱动交互,初始时在idx=0处写入目标地址0x405220和标记0xDEADBEEF,并提供update函数实现任意地址写(通过base64编码数据),show函数输出目标地址内容。利用内核驱动漏洞可
2025-11-12 19:01:05
830
原创 羊城杯 2025初赛 baby_kk 利用busybox
本文分析了Linux内核模块baby_kk的漏洞利用方法。该模块存在UAF漏洞,在释放堆块后未清空指针,且未清除size标记,允许攻击者继续编辑和读取已释放的内存。通过堆喷技术可以绕过内核的保护机制(包括KASLR、SMEP、SMAP和随机freelist)。文章详细分析了模块的启动脚本、命令处理逻辑和漏洞点,重点说明了如何利用0x100大小的堆块分配和释放后的UAF特性进行攻击。攻击者可利用该漏洞实现内核内存读写,绕过多种安全防护。
2025-10-23 17:19:56
841
原创 2025网古杯pwn 部分wp
文章摘要: 本次PWN题解包括两道题目。第一题是VM题,通过分析发现存在任意代码执行漏洞(操作码6)和内存泄露功能(操作码7),利用泄露libc后计算one_gadget地址实现getshell。第二题利用canary保护未开启PIE的特性,通过修改rbp和返回地址构造任意写,最终调用gift函数实现栈溢出攻击。解题过程包括泄露puts地址、计算libc基址,最终通过system("/bin/sh")获取shell。文章提供了详细的漏洞分析和完整的EXP利用代码,展示了从漏洞发现到最终g
2025-09-14 00:22:22
364
1
原创 IOT安全学习之IoT_Sec_Tutorial
摘要 本文介绍了IoT固件安全分析的基本流程,包括固件提取、静态分析和动态分析三部分。通过binwalk和特殊工具提取两种不同类型固件(TRX和YAFFS2格式),分析配置文件获取敏感信息(如no-ip账号密码和root密码)。使用firmwalker自动化扫描可疑文件,并通过Ghidra逆向分析二进制文件发现UDP端口漏洞。最后演示了动态分析环境搭建和MIPS架构栈溢出漏洞的调试过程,使用qemu模拟和gdb远程调试技术验证漏洞。文中还提供了AttifyOS虚拟机环境的使用建议和工具链配置方法。
2025-08-31 15:39:18
932
原创 Kernel Pwn 入门(五) 条件竞争 && userfaultfd利用
本文摘要探讨了Linux内核中的条件竞争漏洞及其利用技术。主要内容包括:1) 条件竞争的概念,指出内核驱动锁使用不当可能导致漏洞;2) 各种锁的特性和适用范围比较,如自旋锁、读写锁等;3) 信号量的使用方法,通过示例展示如何控制线程执行顺序;4) double fetch漏洞原理,即内核多次获取用户空间数据时可能被中间篡改;5) userfaultfd系统调用的机制和利用方式,通过控制缺页异常处理来精确控制竞争条件。文章结合代码示例和图示,详细说明了如何利用这些技术进行内核漏洞攻击
2025-08-24 22:57:05
373
原创 CTFShow PWN入门---Kernel PWN 356-360 [持续更新]
Kernel PWN 357题解 本题与2018年强网杯的qwb2018-core题目完全相同,考察内核漏洞利用。 解题关键步骤: 通过/proc/show泄漏栈上的canary值 利用kallsyms获取内核关键函数地址(prepare_kernel_cred/commit_creds) 构造ROP链实现提权: 使用prepare_kernel_cred创建root凭证 调用commit_creds应用凭证 通过swapgs/iretq返回用户态获取root shell EXP特点: 结合了内核地址泄露与
2025-08-14 23:52:00
411
原创 kernel pwn 入门(四) ret2dir详细
本文介绍了ret2dir攻击技术及其在MINI-LCTF2022中的实际应用。ret2dir是一种绕过内核防护机制的技术,通过利用物理内存映射区域(direct mapping area)间接访问用户空间数据,从而绕过SMEP/SMAP等防护。文章详细分析了ret2dir原理:内核会将物理内存线性映射到phy_map区域,用户空间数据也会被映射到物理内存,因此可通过该区域找到对应物理地址执行用户空间payload。在MINI-LCTF2022的kgadget题目中,作者利用该技术结合pt_regs结构体进行
2025-08-13 22:14:33
847
1
原创 kernel pwn 入门(三) ret2usr+bypass SMEP
摘要 本文介绍了如何利用smep保护机制绕过ret2usr攻击,以CISCN2017 babydriver为例。通过分析ptmx设备及其相关的tty_struct结构体分配机制,揭示其通过kmalloc申请堆空间的特点。重点讲解了tty_operations结构体中的函数指针,为后续利用UAF漏洞修改tty_struct结构体、实现内核提权奠定基础。这些技术细节为绕过SMEP保护提供了新的攻击思路。
2025-08-11 00:40:41
847
原创 Kernel PWN 入门(二)
这篇文章介绍了针对qwb2018-core题目的Kernel ROP利用方法。主要内容包括:1) 题目环境配置与调试优化,通过修改start.sh和init文件禁用KASLR等保护;2) 分析core.ko模块的漏洞点,重点在core_copy_func函数存在栈溢出漏洞;3) 利用思路:先通过core_read泄露canary,再构造ROP链利用core_write和core_copy_func实现提权。文章详细说明了如何利用proc文件系统交互、如何绕过保护机制获取内核符号地址,并提供了初步的漏洞利用代
2025-07-28 16:07:13
653
原创 Kernel Pwn 入门 (一)
cred结构体劫持和file_operations结构体利用。cred结构体记录了进程权限信息,通过修改其uid/gid字段可提权,但需注意内核版本差异(4.5+版本cred_jar隔离机制)。file_operations结构体定义了设备文件操作接口,攻击者可通过劫持其函数指针(如ioctl)控制执行流
2025-07-21 13:20:40
562
原创 house of apple2
House of Apple2利用分析 以CISCN 2024 Ezheap题目为例,分析了House of Apple2攻击技术。通过构造伪造的_IO_FILE结构,控制_IO_wfile_jumps虚表调用链,最终达到控制程序执行流的目的。 关键利用步骤: 伪造IO_list_all结构,设置flag=0 控制wide_data结构及其虚表指针 设置wide_vtable+0x68处为setcontext+61地址 触发_IO_wfile_overflow调用链实现RIP劫持 在Ezheap题目中,利用
2025-06-26 23:09:10
487
1
原创 house of cat 浅析 结合例题
《House of cat》利用FSOP(File Stream Oriented Programming)技术绕过保护机制,通过UAF漏洞实现ORW(Open-Read-Write)攻击。分析发现程序存在堆溢出漏洞,可通过largebin attack在_IO_list_all写入堆地址,伪造_IO_FILE结构体控制执行流。
2025-06-11 00:19:57
1055
原创 ISCC 2025决赛 wp
摘要:本文分析了两个安全挑战的解决方案——PWN二进制程序利用和MOBILE安卓应用逆向。在PWN部分,通过分析64位程序的漏洞点(格式化字符串和栈溢出),结合ORW技术绕过限制,利用mprotect函数执行shellcode获取flag。在MOBILE部分,通过逆向分析安卓应用的验证逻辑,发现核心验证流程涉及RC4加密、二进制转换和最终校验,成功破解了flag验证机制。两题分别展示了二进制漏洞利用和移动应用逆向的典型解题思路。<|end▁of▁sentence|>
2025-05-20 19:07:30
2029
原创 ISCC2025 区域赛全部题解
方法c:在输入字符串前添加"00",如果结果长度不是4的倍数,直接返回,否则,将字符串按4个字符一组分割,将每组4个字符作为16进制数解析,转换为对应的Unicode字符,将所有转换后的字符拼接成字符串返回。根据三张图片发现首站是地铁朝阳站,终点站是魏公站,观察地图,发现首站是3号线最后是4号线,根据有19站,然后就是分析猜测,最后猜测是3104。这里对size大小没有做严格的判断,导致输入很大的size也可以,就会导致堆溢出,覆盖到下一个chunk,存在堆溢出漏洞。**掩码爆破,最后发现对了。
2025-05-20 00:16:28
1836
原创 ISCC 2025练武题 WP部分
垃圾比赛,垃圾题目,纯脑洞题,技术好不好没得关系,就看你脑洞大不大。web里塞misc,re里塞misc真是牛逼他妈给牛逼开门牛逼到家。逆天平台,卡的一批,靶机还是公用的,把flag删了也是逆天。封你IP没得商量,下个附件,把老子IP封几十个,代理池换都换不过来。你值得拥有。
2025-05-07 20:06:01
1704
2
原创 SQCTF--商丘师范学院第四届网络安全及信息对抗大赛(校外赛)
函数有两个参数,第一个是必须的,代表要解析注册成变量的字符串,比如“a=1”经过parse_str()函数后会注册$a并复制为1,第二个参数是一个数组,当第二个参数存在时,注册的变量会放到这个数组里,如果原来有相同的键值,则会覆盖掉它。这道题奇怪的是nginx日志在/var/log/nginx/access.log,一般apache日志在类似目录下(/var/log/httpd/access.log)识别:若干次加密,e不同,n相同,m相同。就可以在不分解n和求d的前提下,解出明文m。
2025-04-14 09:29:43
2352
3
原创 XYCTF 2025-部分wp
清明假期玩了两天没怎么打,只做了一点解码:或者参考这篇博客解题过程:下载是个vbs文件,txt可以查看,参照博客记一次VBS逆向 - 漫宿骄盛 - 博客园。把开头改成wscript.echo,就能输出源代码。逆向解出flag:PWNgirlfriend分析这里存在格式化字符串漏洞这里存在栈溢出漏洞,能溢出8个字节,刚好能覆盖返回地址,这里使用栈迁移来打。注意使用mprotect来设置可执行段时要保证页对齐,也就是:data或者bss要以0x000结尾才行EXP:MISCXGCTF提示
2025-04-07 07:13:58
802
原创 FSOP利用(详细代码解读)+House of orange
简单总结一下吧,首先最外层是我们的io_file_plus结构体,在io_file_plus结构体之内,包括两个部分,一个是io_file,另一个是io_jump_t,io_file结构体里面有我们要找的chain字段,连接着stdin,stdout和stderr三个结构体,而io_jump_t里面存放一些函数指针,指向实现各种文件操作的函数用这张不太美观的图,可以勉强看懂。
2025-03-27 20:39:35
888
原创 CTFShow bypass安全机制
有时候Func这个参数 也可以是我们自定义的参数这里的11也代指 SIGSEGVsigsegv_handler函数我们定义为:程序定义了一个信号量,当出现这个信号量(非法内存访问)的时候,会执行sigsegv_handler函数即当我们非法内存访问的时候,会将我们的flag通过标准错误打印出来(fflush(stderr))所以本题的解题方法是只要能溢出就能触发这个信号。
2025-03-02 14:32:35
1263
3
原创 CTF中pwn shellcode题目
下面是一些shellcode代码和绕过技巧。一些只给payload或者exp一把梭首先给出两个常用shellcode仓库,可以检索需要的shellcode。
2025-03-02 14:24:26
1047
原创 CTFshow---格式化字符串[91-100]更新完毕
简单的格式化字符串。通过反汇编代码可以看出只要就能getshell通过调试可以看到偏移为7最终exp为。
2024-09-20 22:56:43
1415
原创 ctfshow [栈溢出]系列------49-90 持续更新
嘿嘿嘿,慢慢更新,预计7月底栈溢出全部更完,至于为什么是7月底更完栈溢出,因为我善。
2024-07-08 10:24:42
569
1
原创 CTFHub[技能树]-----House of orange
House of orange也是我第一次学,边学边做题,来来回回折腾了8小时,代码检查了一遍又一遍,没问题但总是打不成功,最后百度查了一下这个是概率成功,我哭了。白白浪费了这么久时间。
2023-02-10 11:27:25
338
原创 [CTFHub-技能树]-----House of roman
先利用UAF漏洞,把chunk申请到ptr_size处,修改size的大小,构造堆溢出,利用堆溢出,打unlink,把chunk申请到ptr处,最后篡改**.fini_array**的值,拿到shell。如下图,可以看出来chunk已经申请到size处了,之后伪造size,造成堆溢出。会在程序结束时调用,一般有2个指针,会依次调用,调用完后才会真正退出。这是一道静态编译的题,没有libc库,所以不能用常规的方法来打。之后再利用堆溢出,打unlink,篡改.fini_array。先定义好要用到的地址。
2023-02-09 13:56:08
277
原创 [CTFHub-技能树]-----House of spirit
这题的ptr只能储存一个chunk的指针,且题目中已经有个0x110大小的chunk,进入了unsorted bins,先申请0x68字节大小的chunk,其会从unsorted bin中分割0x71大小的chunk给我们,利用这个特性可以泄露出libc地址。之后再泄露heap的地址,其实也可以不用泄露,可以爆破低2字节的16进制数,概率是1/16,但我不想爆破,所以直接泄露heap的地址。,一开始始终没有找到漏洞出现的地方,结果问里一下其他师傅,恍然大悟,我就是傻子。这里只是简单讲一下,一定要动手。
2023-02-08 22:34:26
269
原创 House of Einherjar
然后再申请一个和chunk_1一样大小的chunk_4,这时chunk_4也是指向chunk_1,因为之前unsorted bin中的大小为chunk_1+chunk_2,申请chunk_4时unsorted bin做分割吧chunk_1给chunk_4,这时有2个chunk指向同一个chunk。最后进入unsorted bins的地址是chunk_0的地址,注意这里chunk_1并没有被free,所以再申请回chunk_0,之后main_arena的地址就放在了chunk_1中。
2023-02-08 12:16:34
222
原创 CTFHub技能树---pwn-Chunk Extend
add这里如果 index 0 ~ 9 都申请了的 chunk ,那么 i = 10 再退出 for 循环,但是还会接下去利用 ptr[10] = malloc(ptr[20]) 申请chunk,实现 index 0 的堆块溢出。最后第11个chunk的size会变成非常大,编辑chunk0,就可以实现溢出。也就是add 可以覆盖掉一个第一个 chunk 的 size。
2023-02-07 14:04:08
626
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅