这是一周前做的一道题目,总的来说这道题很简单,当然一开始看了半天没发现溢出点也是十分的惭愧,题目出的很良心,思路就是溢出之后我们可以控制main函数的ebp, 进而在main函数返回时进行漏洞利用。

先看看IDA反汇编的结果

主函数的几个内存操作的函数都没有什么问题,那么问题很可能出现在auth函数了

这时候溢出点就一目了然了,input最大12个字节,而v4只有8个字节,调试一下发现,覆盖的是主函数的ebp,经过调试发现控制ebp可以跳转到任意地址,那么跳转到哪呢,发现input是个固定地址, input是我们输入的内容,依靠leave指令将执行system("/bin/sh")的地址赋给esp,最后ret指令将地址给eip,完成利用。

最新文章

  1. 对象排序,compareTo
  2. 使用php添加定时任务
  3. SURF算法与源码分析、上
  4. XAMPP和Bugfree详细教程
  5. Readonly和disabled的区别 display:none和visible:hidden的区别
  6. WPF 带CheckBox、图标的TreeView
  7. Zlib文件压缩和解压
  8. 手工启动oracle EM
  9. 【SSH进阶之路】Hibernate基本原理(一)
  10. Java使用递归找出某目录下的所有子目录以及子文件
  11. 什么样的PPT能助你成为一个优秀的演讲者——程序员的演讲之道
  12. 201521123060 《Java程序设计》第9周学习总结
  13. 在MyEclipse 10中配置tomcat田服务器时出现的问题以及解觉办法
  14. 关于js的语句类型运算符等
  15. 我用 tensorflow 实现的“一个神经聊天模型”:一个基于深度学习的聊天机器人
  16. 极速创建 IOS APP !涛舅舅苹果 IOS APP自助生成系统!不用证书、不用越狱、永久可用
  17. kettle中文乱码问题
  18. 10 种保护 Spring Boot 应用的绝佳方法
  19. UITableView 和 UITableViewController
  20. java----Java的栈,堆,代码,静态存储区的存储顺序和位置

热门文章

  1. python模块httplib的使用
  2. Android --差缺补漏之 Intent&putExtra()
  3. java语法基本知识2
  4. AngularJs angular.identity和angular.noop详解
  5. JS中offsetwidth等图文解释
  6. 转载--提高C++性能的编程技术
  7. java语法基础
  8. sudo: /etc/sudoers is world writable
  9. 在Visual Studio中使用Git命令提示符
  10. 整数中1出现的次数(从1到n整数中1出现的次数)