攻防世界(pwn篇)—CGfsb
题目描述
菜鸡面对着pringf发愁,他不知道prinf除了输出还有什么作用
基本情况分析
checksec命令可以查看可执行文件开启的保护
- 1.RELRO:
RELRP会有Pratial RELRO 和FULL RELRO,如果开启FULL RELRO,意味着我们无法修改got表
- 2.Stack:
Canary found 表示不能直接用溢出的方法覆盖栈中返回地址,而要通过改写指针与局部变量、leak canary、overwrite canary的方法来绕过
- 3.NX:
NX enabled表示栈中的数据没有执行权限,通常用rop/构造rop链绕过
- 4.PIE:
PIE enabled 表示开启了地址随机化,即每次程序运行的时候地址都会变化,而如果没有开PIE的话,No PIE(0x400000),括号内的数据就是程序运行的基地址
- 5.FORTIFY:
FORTIFY_SOURCE机制对格式化字符串有两个限制:
(1)包含%n的格式化字符串不能位于程序内存中的可写地址。
(2)当使用位置参数时,必须使用范围内的所有参数。所以如果要使用%7$x,你必须同时使用1,2,3,