文章分类 -  pwn_wp

摘要:题目地址 思路 pthread多线程利用 栈溢出覆盖TLS结构体中内容,来绕过canary保护 栈迁移到bss段去执行onegadget 主函数: 漏洞函数:可以栈溢出 基本知识 / sysdeps\x86_64\nptl\tls.h typedef struct { void *tcb; /* P 阅读全文
posted @ 2024-04-17 15:15 _Ya0 阅读(52) 评论(0) 推荐(0)
摘要:题目地址 沙箱题,知识禁用了execve,所以使用orw即可 思路 程序mmap了一段地址,权限是7,也就是可读可写可执行,我们把orw布置到这里就行啦,然后控制程序执行流(也就是rip指针)到这里就行啦。 第一次输入,有格式化字符串漏洞,利用他来泄露libc基址(通过libc_start_main 阅读全文
posted @ 2024-04-12 15:32 _Ya0 阅读(74) 评论(0) 推荐(0)
摘要:BUUCTF在线评测 (buuoj.cn) ╭─root@f2b0c1f3fc1f /ctf/work ╰─➤ checksec pwn [*] '/ctf/work/pwn' Arch: i386-32-little RELRO: Full RELRO Stack: No canary found 阅读全文
posted @ 2024-04-11 20:22 _Ya0 阅读(5) 评论(0) 推荐(0)
摘要:题目地址 格式化字符串+fini_array数组 .fini_array数组中存在一些函数指针,程序在退出时,会调用这些指针,所以我们可以修改数组内容,可以达到控制程序的执行流。 本题主要是因为我们只能执行一次格式化字符串,,没办法在一次执行中拿到shell,所以可以利用劫持.fini_array数 阅读全文
posted @ 2024-04-11 20:09 _Ya0 阅读(76) 评论(0) 推荐(0)
摘要:感谢hollk师傅和江下枫师傅. 这篇文章我主要是想说,利用格式化字符串漏洞来任意地址写,并且是将printf_got覆盖为system之类的利用手法。 覆盖任意地址为一个很大的数字,这时我们只能一次写1字节或者2字节,因为程序的缓冲区可能没有4字节(也就是0xFFFFFFFF)那么大,容易爆;这里 阅读全文
posted @ 2024-04-08 10:34 _Ya0 阅读(58) 评论(0) 推荐(0)
摘要:题目地址 提取码: Ya0o 漏洞 uaf,只能一次 show函数只能用一次,所以可以打_IO_2_1_stdout_结构体,泄露environ中内容,用来计算栈偏移 堆块overlapping 开启了沙箱,控制add函数的ret地址,与栈结合使用orw exp from pwn import * 阅读全文
posted @ 2024-04-05 16:55 _Ya0 阅读(483) 评论(0) 推荐(0)
摘要:题目地址 漏洞和知识 gets函数:栈溢出 破坏canary:会调用___stack_chk_fail,打印出该文件所在地址 fork与wait:fork调用子进程,wait 父进程会等待子进程 __stack_chk_fail源码: void __attribute__ ((noreturn)) 阅读全文
posted @ 2024-03-30 23:05 _Ya0 阅读(196) 评论(0) 推荐(1)
摘要:漏洞点和知识点 UAF offbyone IO_2_1_stdout 泄露libc fastbin attack,修改fastbin链表 修改malloc_hook,但是需要用到realloc来调整栈帧,满足onegadget条件 ╰─➤ checksec pwn [*] '/ctf/tools/p 阅读全文
posted @ 2024-03-29 23:26 _Ya0 阅读(35) 评论(0) 推荐(0)
摘要:1.下载gdb-multiarch sudo apt-get install gdb-multiarch 2.下载qemu模拟器 qemu是一款可执行硬件虚拟化的虚拟机,与他类似的还有Bochs、PearPC, 但qemu具有高速(配合KVM)、跨平台的特性 qemu主要有两种运行模式:qemu-u 阅读全文
posted @ 2024-03-26 17:27 _Ya0 阅读(350) 评论(0) 推荐(0)
摘要:题目地址:BUUCTF在线评测 (buuoj.cn) 其实就是简单的64位ret2libc,但是有一些坑需要知道 其一 没有以前熟知的puts函数,所以我打算用read函数来打印处read函数的got表,但是发现没有 pop rdx ; ret 寄存器不够,不能设置好参数 所以就此作罢。 然后想到这 阅读全文
posted @ 2024-01-04 23:34 _Ya0 阅读(71) 评论(0) 推荐(0)
摘要:参考书籍:《CTF权威指南(PWN篇)》 ROP与SROP区别 ROP是通过简单的栈溢出,覆盖返回地址并执行gadgets控制执行流;不同的是,SROP使用能 够调用sigreturn的gadget覆盖返回地址,并将伪造一个sigcontext结构体放到栈中 SROP 原理 先讲一下Linux系统调 阅读全文
posted @ 2023-12-31 20:51 _Ya0 阅读(56) 评论(0) 推荐(0)
摘要:本篇博客涉及到的知识点:内平栈与外平栈 题目地址:BUUCTF在线评测 (buuoj.cn) ╭─root@f2b0c1f3fc1f /ctf/work ╰─➤ checksec get_started_3dsctf_2016 [*] '/ctf/work/get_started_3dsctf_20 阅读全文
posted @ 2023-12-31 00:31 _Ya0 阅读(29) 评论(0) 推荐(0)