专栏名称: 蚁景网络安全
致力于为你带来更实用的网络安全技术内容!
今天看啥  ›  专栏  ›  蚁景网络安全

关于栈迁移的那些事儿

蚁景网络安全  · 公众号  ·  · 2024-08-30 17:30

文章预览

一、前言 本篇文章意旨通过原理+例题的形式带领读者一步步理解栈迁移的原理以及在ctf中的应用。 二、前置知识 在笔者看来栈迁移的原理其实可以总结为一句话:因为栈溢出字节过少所以劫持 rsp 寄存器指向攻击者提前布置好 payload 的内存地址,已达到扩充溢出字节数的目的。 以一个简单的 demo1 为例,程序源码以及编译指令如下所示: #include  char buf1[0x100]; void  main () {  char buf2[0x40];  puts( "First: " );   read (0, buf1, 0x100);  puts( "Second: " );   read (0, buf2, 0x60); } // gcc -fno-stack-protector -no-pie -z lazy -o demo1 demo1.c 程序的流程非常简单存在两个输出,第一次是往全局变量 buf1 第二次是往局部变量 buf2 中写入。可以看到在第二次写入时存在明显的栈溢出漏洞,但是溢出的字节数只够写入 0x18 大小的字节,如果要构造gadget泄露内存地址,最短的ROP链 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览