利用 int3
干扰 ptrace 监控,劫持 strlen@GOT
实现 ROP 链,最终通过 system
拿 shell。
-
西湖论剑 2025 初赛 - babytrace
-
西湖论剑 2025 初赛 - Heaven's door
利用无效seccomp绕过限制,直接注入常规shellcode获取shell。
-
永远在“服务器故障”的gpg与解决方案
自从配好了
*ray
的 DNS 接管并自动分流后,我在使用 gpg 接收公钥的时候就一直显示 “gpg: 从公钥服务器接收失败:服务器故障”。这令我非常头疼,明明 keyserver 的网页都可以正常打开,但是没法使用 gpg 下载公钥。关闭*ray
后,有时候可以,有时候又不行。 背后的原因到底是什么? hkp 和 http 协议导致发送的 DNS 请求又有什么区别? 这次,我终于抓住了破解了其背后的秘密... -
国赛 决赛 2025 - mqtt
利用MQTT客户端处理消息时的条件竞争,通过
sleep
窗口篡改全局变量arg
实现命令注入。 -
L3HCTF 2025 - Library
题目基于 Kotlin/Native 编译,利用UTF-16字符串特性与jvm heap内存布局,通过构造伪对象泄露libc地址并FSOP获取shell。
-
L3HCTF 2025 - heack_revenge
利用
game
函数中的pop rbp
劫持rbp指向堆,构造tcache链分配chunk 0写入ROP链,通过leave; ret
实现堆上ROP拿shell。 -
L3HCTF 2025 - heack
利用栈溢出配合任意地址写跳转至含
%lu
的printf泄露libc,通过爆破4位构造ROP链执行system("/bin/sh")
。 -
D^3CTF 2025 - d3cgi
利用 FastCGI 中 CVE-2025-23016 的整数溢出,通过精确堆风水与函数指针覆盖实现控制流劫持,最终使用裸 FastCGI 请求打通远程并获取 shell。
-
内核加载seccomp:syscall_nr赋给了X寄存器?
最近 dbgbgtf 在编写ceccomp的代码,为了做和内核一样的bpf检查,他研究了内核对于
seccomp
系统调用传入的结构体做的检查。在检查过程中,他发现原本指令中的LD|W|ABS
被内核替换成了LDX|W|ABS
,而这是从seccomp_data
中加载nr
等关键数据结构的指令。 难道syscall_nr其实在内核中一直是加载到X寄存器中,而非A寄存器中? -
京麒CTF 2025 - OldWine
通过修改栈上
[rbp]
为rbp+0x10
,使call read@plt
时rsp
指向可控区域,从而劫持返回地址泄露libc,最终利用ROP链调用execveat
实现利用。