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.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии