Linux Kernel: build, boot and debug in QEMU
一次内核编译到运行的尝试
编译内核
拉取源码
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
一次内核编译到运行的尝试
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
2025 年十月羊城杯 hello_iot
Do you know
本人代码水平拙劣🥲,实现部分仅供参考
想给今年的 HGAME Mini 2025 出一道简单的 Pwn 题,突然想着之前的题目似乎没有涉及到 IoT Pwn 的(虽然可能是因为不太算 pwn 的入门内容?),打算来一道比较简单的,正好学习一下 IoT 的相关知识吧。
From: ACTF 2025
题目给出一个去符号的 qemu 二进制文件
qemu-system-x86_64,启动参数如下
#!/bin/sh
timeout --foreground 300 ./qemu-system-x86_64 \
-L pc-bios \
-m 1024 \
-kernel bzImage \
-initrd rootfs.cpio \
-drive file=null-co://,if=none,id=mydisk \
-device virtio-blk-pci,drive=mydisk,ioeventfd=off \
-device readflag \
-append "priority=low console=ttyS0" \
-monitor /dev/null \
-nographic
FSOP 是 File Stream Oriented Programming 的缩写。
FSOP 的核心思想就是劫持
_IO_list_all的值来伪造链表和其中的_IO_FILE项,但是单纯的伪造只是构造了数据还需要某种方法进行触发。FSOP 选择的触发方法是调用_IO_flush_all_lockp,这个函数会刷新_IO_list_all链表中所有项的文件流,相当于对每个 FILE 调用 fflush,也对应着会调用_IO_FILE_plus.vtable中的_IO_overflow。
但你必须先向我们证明自己有回到 2016 的实力!
祝你玩的开心 o ( ̄▽ ̄) ブ
没有附件是正常的喵
这个分数或许也考虑了买 hint 这件事,别害怕嘻嘻
这道题是没有给出附件的,我们需要根据输入和程序的输出获取一切信息。
由于友链页面有使用图片的要求,同时为其他人的站点提供相关的图片资源(虽然使用现成的 GitHub Page 就可以基本实现,但是 Page 所在的仓库是公开的),尝试通过 GitHub 作为图床解决这个问题。然而,访问速度和稳定性都无法得到保证,为此通过网上搜索学习了一下反向代理 (Reverse Proxy) 的相关知识。

存在 off-by-null 漏洞,当 prev_size 域复用时,可置零相邻
chunk 的 prev_inuse 位。

存在越界写入漏洞。
本次 DASCTF 12 月赛尝试了 pwn 方向的两道题目,最终还是如愿以偿的爆零了。首先看到题目我就有种陌生的感觉,给定程序是去掉调试符号的,并且有多个函数,大大降低了可读性,和我先前遇见的题目有不小的区别。
一叶舟轻,双桨鸿惊。水天清、影湛波平。鱼翻藻鉴,鹭点烟汀。过沙溪急,霜溪冷,月溪明。
重重似画,曲曲如屏。算当年,虚老严陵。君臣一梦,今古空名。但远山长,云山乱,晓山青。
——《行香子・过七里濑》
shellcode 是一段用于利用软件漏洞而执行的代码,shellcode 为 16 进制之机械码,以其经常让攻击者获得 shell 而得名。shellcode 常常使用机器语言编写。