Pointer Redirecting
字符串指针
如果一个函数调用将使用位于堆栈中的字符串的地址,可以利用缓冲区溢出来覆盖此地址,并在二进制文件中放入指向不同字符串的地址。
例如,如果一个**system
函数调用将使用一个字符串的地址来执行命令**,攻击者可以在堆栈中放置不同字符串的地址,export PATH=.:$PATH
,并在当前目录中创建一个以新字符串的第一个字母命名的脚本,因为这将由二进制文件执行。
您可以在以下位置找到一个示例:
32位,更改堆栈中标志字符串的地址,以便通过
puts
打印出来
函数指针
与字符串指针相同,但应用于函数,如果堆栈包含将被调用的函数的地址,则可以更改它(例如调用**system
**)。
您可以在以下位置找到一个示例:
参考资料
最后更新于