我正在实施一些 CTF 挑战。这些标志位于一些从程序中读取的文本文件中。为了保护标志,我更改了文件的所有者,但将其设置setuid
为可执行文件以便能够读取文件。当我在 gdb 外部运行程序并且读取标志时,它可以工作,但在 gdb 内部我得到Permission denied
. 我正在 VirtualBox 中的 Linux 虚拟机中运行练习。我创建了一个不在 sudoers 文件中的普通用户,并且标志文件属于 root。
-rwsr-xr-x 1 root user 15260 Mar 13 13:22 exercise6
-rw-r--r-- 1 user user 3270 Mar 13 06:10 'Exercise 6.c'
-rwsr-xr-x 1 root user 15700 Mar 14 03:28 exercise7
-rw-r--r-- 1 user user 4372 Mar 13 06:10 'Exercise 7.c'
-rwS------ 1 root root 28 Mar 13 06:10 admin_flag.txt
-rwS------ 1 root root 20 Mar 13 06:24 exercise1.txt
-rwS------ 1 root root 27 Mar 13 06:24 exercise2.txt
-rws------ 1 root user 18 Mar 13 10:34 exercise3.txt
-rwS------ 1 root root 22 Mar 13 06:24 exercise4.txt
-rwS------ 1 root root 19 Mar 13 06:10 user_flag.txt