**
PWN1:
**
root@ab31efd2b02f:/pwd/pwn1# checksec pwn1
[*] '/pwd/pwn1/pwn1'
Arch: amd64-64-little
RELRO: Full RELRO
Stack: No canary found
NX: NX enabled
PIE: PIE enabled
PIE:
PIE机制,在windows中被称作ASLR,即地址随机化。PIE在linux中作为内核参数存在,可在/proc/sys/kernel/randomize_va_space中找到其具体的值,0、1、2三个值代表不同的工作强度,具体如下:
- 0 - 表示关闭进程地址空间随机化。
- 1 - 表示将mmap的基址,stack和vdso页面随机化。
- 2 - 表示在1的基础上增加栈(heap)的随机化。
NX:
NX即No-eXecute(不可执行)的意思,NX(DEP)的基本原理是将数据所在内存页标识为不可执行,当程序溢出成功转入shellcode时,程序会尝试在数据页面上执行指令,此时CPU就会抛出异常,而不是去执行恶意指令。
在windows下,相似的保护措施是DEP。Linux中这个保护特性常被用于和PIE一起使用。
Canaries:
在windows操作系统中,这一