相同的二进制文件和不同的权限,怎么可能?

相同的二进制文件和不同的权限,怎么可能?

我在做pwn ctf时发现了一个奇怪的情况。

ctf 包括二进制文件和服务器。有一个给定的 elf 64 位。

checksec 输出(相同的本地和服务器)。

Arch:     amd64-64-little
RELRO:    Partial RELRO
Stack:    No canary found
NX:       NX disabled
PIE:      No PIE (0x400000)
RWX:      Has RWX segments

从这里我们可以理解,有RWX段,没有NX位。当使用 gdb(本地)运行程序时,我可以看到唯一的段是 RWX 是我的堆栈。

0x00000000401000 0x00000000000000 r-x [executable]
0x00000000602000 0x00000000001000 r-- [executable]
0x00000000603000 0x00000000002000 rw- [executable]
0x00000000624000 0x00000000000000 rw- [heap]
0x007ffff7d89000 0x00000000000000 rw-
0x007ffff7db1000 0x00000000000000 r-- [libc] 
0x007ffffffff000 0x00000000000000 rwx [stack]

我在过度杀伤解决方案的同时完成了 ctf,然后我检查了一些文章,看看我是否像其他人一样做了。

然后我看到其他人使用其他段作为RWX段,我使用我自己的漏洞并检查服务器权限。

00400000-00401000 r-xp 00000000 103:00 23593680  [executable]
00601000-00602000 r-xp 00001000 103:00 23593680  [executable]
00602000-00603000 rwxp 00002000 103:00 23593680  [executable]
00603000-00624000 rwxp 00000000 00:00 0          [heap]
7ffffffde000-7ffffffff000 rwxp 00000000 00:00 0  [stack]   

           

我对二进制文件做了 md5sum,它们是相同的。 readelf 说唯一的段是 rwx 是堆栈(与本地一样)。

怎么会这样?

相关内容