源码论坛公告:本站是一个交流学习建站资源的社区论坛,旨在交流学习源码脚本等资源技术,欢迎大家投稿发言! 【点击此处将锦尚放在桌面

源码论坛,商业源码下载,尽在锦尚中国商业源码论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

查看: 1223|回复: 0
打印 上一主题 下一主题

RedHat Linux dump 缓冲区溢出漏洞

[复制链接]

39

主题

422

帖子

27

金币

初级会员

Rank: 1

积分
422
QQ
跳转到指定楼层
1#
发表于 2010-3-14 17:52:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RedHat Linux dump 缓冲区溢出漏洞   受影响系统:

  MandrakeSoft Linux Mandrake 7.0

  MandrakeSoft Linux Mandrake 6.1

  RedHat Linux 6.2

  RedHat Linux 6.1

  RedHat Linux 6.0

  RedHat Linux 5.2

  RedHat Linux 5.1

  不受影响系统:

  NetBSD-current

  描述:

  RedHat Linux中有一个文件备份工具"dump".它被安装在 /sbin下并且被设置了

  setuid/setgid root位。当传送一个很长的字符串给"-f a"参数时,dump将发生

  堆栈溢出。如果提供的参数经过精心构造,攻击者就可能替代堆栈中保存的EIP

  (指令指针或者返回地址)并以gid root权限来执行任意代码。Dump在crash时会

  丢弃setuid root权限,但是没有丢弃setgid root权限。因此攻击者可能利用这

  个漏洞获得setgid root权限,进而可能获取对整个系统的控制权。

  <* 来源: - Yong-jun, Kim -

  e - mail : loveyou@hackerslab.org s96192@ce.hannam.ac.kr

  homepage : http://www.hackerslab.org http://ce.hannam.ac.kr/~s96192

  *>

  测试方法:

  警 告

  以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

  [loveyou@loveyou SOURCES]$ dump -f a `perl -e 'print "x" x 556'`

  DUMP: Date of this level 0 dump: Mon Feb 28 14:45:01 2000

  DUMP: Date of last level dump: the epoch

  DUMP: Dumping xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx to a

  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: 颇老 捞抚捞 呈公 遍聪促 while opening filesystem

  DUMP: SIGSEGV: ABORTING!

  Segmentation fault

  [loveyou@loveyou SOURCES]$ dump -f a `perl -e 'print "loveyou" x 556'`

  DUMP: SIGSEGV: ABORTING!

  Segmentation fault <= occur ctime4()

  建议:

  Yong-jun, Kim提供了一个patch:

  [root@loveyou SOURCES]# diff -ru dump-0.4b13/dump/main_orig.c dump-0.4b13/dump/main.c

  --- dump-0.4b13/dump/main_orig.c Mon Feb 28 14:40:01 2000

  +++ dump-0.4b13/dump/main.c Mon Feb 28 14:40:57 2000

  @@ -273,6 +273,9 @@

  exit(X_STARTUP);

  }

  disk = *argv++;

  + if ( strlen(disk) > 255 )

  + exit(X_STARTUP);

  +

  argc--;

  if (argc >= 1) {

  (void)fprintf(stderr, "Unknown arguments to dump:");

  临时解决办法:

  去掉dump的suid位: chmod a-s /sbin/dump
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

锦尚中国源码论坛

聚合标签|锦尚中国,为中国网站设计添动力 ( 鲁ICP备09033200号 ) |网站地图

GMT+8, 2024-11-16 02:39 , Processed in 0.144959 second(s), 26 queries .

带宽由 锦尚数据 提供 专业的数据中心

© 锦尚中国源码论坛 52jscn Inc. 非法入侵必将受到法律制裁 法律顾问:IT法律网 & 褚福省律师 锦尚爱心 版权申诉 版权与免责声明