美文网首页
MITIGATIONS

MITIGATIONS

作者: devilisdevil | 来源:发表于2020-10-03 10:38 被阅读0次

No eXecute (NX Bit) | Data Execution Prevention (DEP)

makes certain areas of memory non executable and makes an executable area, non writable.

Data, stack and heap segments are made non executable while text segment is made non writable

关闭:-z execstack

bypass: return-to-libc (return address overwritten as with a particular libc function address)
chained return to libc

Stack Canaries/Cookies

Address Space Layout Randomization (ASLR)

随机化程序基地址,栈地址,堆地址,库地址

查看是否打开:cat /proc/sys/kernel/randomize_va_space
0:ASLR关闭
1:随机化栈基地址(stack)、共享库(.so\libraries)、mmap 基地址
2:在1基础上,增加随机化堆基地址(chunk)

修改:echo 0 | sudo tee /proc/sys/kernel/randomize_va_space

PIE

gcc编译选项

Relocation Read-Only (RELRO)

Partial RELRO

Full RELRO

FORTIFY

用于检查是否存在缓冲区溢出的错误

gcc -D_FORTIFY_SOURCE=1 (-O1 及以上) 只在编译阶段添加检查 (some headers are necessary as #include <string.h>)
gcc -D_FORTIFY_SOURCE=2 (-O2 及以上) 还在运行时检查 (detected buffer overflow terminates the program)

对格式化字符串影响

  1. 包含%n的格式化字符串不能位于程序内存中的可写地址。
  2. 当使用位置参数时,必须使用范围内的所有参数。所以如果要使用%7$x,你必须同时使用1,2,3,4,5和6。

参考

相关文章

  • MITIGATIONS

    No eXecute (NX Bit) | Data Execution Prevention (DEP) mak...

网友评论

      本文标题:MITIGATIONS

      本文链接:https://www.haomeiwen.com/subject/pasodktx.html