Winamp поддерживает проигрывание b4s-файлов, которые составляются
при помощи xml. Синтаксис таков: 

<?xml version=»1.0″ encoding=’UTF-8′ standalone=»yes»?> 
<WinampXML> 
<!— Generated by: Nullsoft Winamp3 version 3.0 —> 
<playlist num_entries=»[кол-во записей]» label=»[название_list’a]»> 

<entry Playstring=»file:[путь_к_звуковому_файлу]»> 
<Name>[названи_песни]</Name> 
<Length>[величина_в_байтах]</Lengt> 
</entry> 

</playlist> 
</WinampXML> 

Переполнение буфера происходит при обработке чрезмерно длинного названия листа (4-ая строчка). Причём, есть некоторые нюансы: 

При получении 16 398 байт переполнение происходит только при ВЫХОДЕ из WinAmp’a. 4-мя байтами затирается eax и retaddr (причём ret
находится в регистре eax). Если же название листа ещё увеличить на ~100b, переполнение произойдёт сразу же при запуске. 12-ю байтами перезапишутся ecx, esi и retaddr (указатель стэка в момент «падения» 0x1007C340). Хотя, имхо, что касается
адресного пространства, данные могут разниться в зависимости от билда WinAmp’a и вообще операционной системы (это
маловероятно). Так или иначе, составить b4s’ку, протроянивающую систему, не составляет никакого труда. 

Уязвимость обнаружена D4rkGr3y из Damage Hacking Group.



Оставить мнение