събота, 20 ноември 2010 г.

Sql Injection Текстов урок

Пиша тази статия за SQL Injection защото все още не виждам добра и пълна статия за SQLi на български :)
Аз не се занимавам с уеб хакинг затова за да напиша тази статия се рових доста из интернет.
Някой ако иска може да допълни с някаква информация или да поправи неточности :)

Какво е SQL?
SQL е съкращение от английски Structured Query Language което на български съответно е Език за Структурирани Запитвания.
SQL е един от най популярните езици за програмиране ако може да се нарече език за програмиране.
Той се ползва за създаване, модифициране, извличане и манипулиране на данни от релационни системи за управление на бази данни.
Такива системи са напраимер: Sybase, Oracle, Microsoft SQL Server, Access, MySQL, Ingres и други.
Въпреки че повечето системи за бази данни използват SQL, повечето от тях имат свои собствени свойства които
обикновени са само за определената система.
Но стандартните SQL команди като 'Select', 'Insert', 'Update', 'Delete', 'Create', 'Drop' които важът за всички
системи са ви достатачни за да извършите всичко което ви е нужно с базите от данни.

Какво е SQL Injection?
SQL Injection съкратено SQLi е метод за уеб хакинг чрез който хакера може да внедри и изпълни SQL команди
върху базата данни на даденият сайт.

Какво води до SQLi дупки?
Обикновено нефилтрирани данни предавани към базата от данни води до SQLi уязвимости.
В тази статия няма да наблегна на това а на намирането и експлойтването на SQLi, по нататък с малко помощ
бих могъл да я разшеря.

С какво може да се сдобием чрез SQLi атаки?
Можете да вземете всичко от базата данни на сайта или да промените.Можете да вземете usernames,passwords,
admin accounts  а ако имате достъп до например някакъв онлайн магазин можете да се сдобиете и с кредитни карти.
И тъй като доста от потребителите не разбират рисковете онлайн използват едни и същи пароли почти навсякаде
от което след че сдобиете ли се с един акаунт в даден сайт ще се сдобиете с още няколко на даденият потребител
сред които може да има и акаунти като PayPal,WebMoney,AlertPay и тем подобни.
При някой по критични случей от една SQLi атака можете да постигнете root достъп на сървъра кадето се хоства
сайта :)

Как да намираме SQLi дупки?
Има много методи със ботове, скенери но аз ще ви покажа един от най успешните и елементарни и това е чрез
самият Google. Това става чрез използването на така наречентие доркове (dorks) това е просто вид гоогле запитване
чрез което по определен начин търсим за имена на често уязвими променливи в адреса на сайта или за SQL грешки по самата
страница.Разбирасе от намерините сайтове много малък процент ще са податливи на атака, надявам се да го разбирате :)

Ето ви няколко примера за SQLi доркове (можете да ползвате и пакета с доркове):

inurl:title.php?id=
inurl:news_display.php?getid=
inurl:sql.php?id=
inurl:loadpsb.php?id=
"id=" & intext:"Warning: mysql_query()
"id=" & intext:"Warning: preg_match()

Както казах дорка е просто запитване което кара google да търси за страници със SQL грешка или за променливи в адреса на сайта,
които често са уязвими.

Но възниква малък проблем, гоогле са сложили защита срещу прекомерното използване на такива доркове,
така де например ако търсите уазвими сайтове с даден дорк то след 10/12 страница може да ви излезе:



Това е защита сложена от гоогле която спира ботове да сканират постояно за уязвими сайтове.
Но за всеки проблем си има решения и в случая решението идва с една друга услуга предлагана от гоогле.
А имено това да си направите ваша собствена гоогле търсачка от тук -> http://www.google.com/cse/
Трябва ви gmail акаунти първо за да си направите търсачка, но сега няма да обяснявам това мисля че
всеки ще се справи за да си направи.
Направил съм една която можете да ползвате -> http://www.google.com/cse/home?cx=000908831945226824112:hl6ikt_iqv0
Тези търсачки не блокират сайтове, нямат филтри и затова ще получавате много повече резултати.

Добавил съм текстов доукмент със доста SQLi доркове към края на статията но ако искате да видите какви други
интересни неща за които не сте и подозирали можете да намерите чрез гоогле ето ви линк -> http://johnny.ihackstuff.com/ghdb/
Най-добрите гоогле доркове на куп, тук не само за SQLi а и за куп други неща :)

Още нещо да добавя за дорковете ако например искате да намирате само сайтове с определен домейн можете да правите така:
inurl:php?id= site:com //ще намирате сайтове които съдържат php?id= във адреса си и домейна завършва на .com
inurl:php?id= site:karazero.blogspot.com //ще намирате само местата където се съдържа php?id= във адреса на сайта karazero.blogspot.com
Как да проверим дали адреса има SQLi дупка?
След като имате листа от доста адреси които сте намерили със доркове може да започнете да проверявате дали са податливи на атака.
Това става като добавите ' към края на адреса.
Пример: www.website.com/index.php?id=25'

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


Разбирасе не е задължително грешката да е на празна страница може грешката да се покаже на самата уеб страница ето така:




ДА ЗАПОЧНЕМ ЕКСПЛОЙТВАНЕТО!
След като имаме вече няколко сайта които знаем че са податливи на атака може да започнем със самата атака :)

Няма коментари:

Публикуване на коментар