CTF_Pwn保护机制相关(动态更新)

保护机制及其编译选项

NX

-z execstack / -z noexecstack (关闭 / 开启) 不让执行栈上的数据,于是JMP ESP就不能用了

即可写处不可执行,可执行处不可写

Canary

-fno-stack-protector /-fstack-protector / -fstack-protector-all (关闭 / 开启 / 全开启) 栈里插入cookie信息

又名金丝雀,在函数开始时就随机产生一个值,将这个值CANARY放到栈上紧挨ebp的上一个位置,当攻击者想通过缓冲区溢出覆盖ebp或者ebp下方的返回地址时,一定会覆盖掉CANARY的值;当程序结束时,程序会检查CANARY这个值和之前的是否一致,如果不一致,则不会往下运行,从而避免了缓冲区溢出攻击。

PIE

-no-pie / -pie (关闭 / 开启) 地址随机化,另外打开后会有get_pc_thunk

RELRO

-z norelro / -z lazy / -z now (关闭 / 部分开启 / 完全开启) 对GOT表具有写权限

posted @ 2022-04-29 17:49  L1ngYi  阅读(67)  评论(0编辑  收藏  举报