|
|
 |
 |
 |
|
SQL Injection в форумах которые построены на ASP
|
|
 |
 |
 |
|
|
 |
 |
 |
|
Сегодня я решил написать вам текст про SQL Injection.Вы навернека спрашивайте самих себя зачем,тут разве не хватает чего-то,разве тут нет достаточно умных людей что мы не можем доверять их статьям?
Так я вам хочу сказать что есть много умных людей которые вас в свойх статьях научили всему что надо знать новичкам про SQL Injection,но они не описали
такой вопрос как : хакеры получают доступ к админке форума.Поэтому я решил написать эту статью чтоб вы поняли что может произойти с вашими форумами (если вы их не охраняете).
Я начну с того как форумы работают . Для этого я вам обьясню про язык SQL.
SQL (Strucured query language) это язык ,ориентированный специально на реляционные базы данных.
Теперь давайте я вам покажу несколько команд в языке SQL.
Допустим, у нас есть вот такая база данных:

И мы хотим знать имена учеников, которые получили больше 90 на экзамене, мы напишим этот код:
PHP код:
SELECT FirstName FROM Students
WHERE Grade = 90;
У нас должен получиться такой ответ:

Команда SELECT просто инструктирует базу данных ,чтобы извлечь информацию из таблицы.
Команда FROM говорит что надо извлечь из...
Команда WHERE говорит что извлечётся из...
Ладно, теперь когда я вам показал главное в SQL давайте посмотрим как выгледят команды SQL в форумах.
SQL код в форумах в которые мы хотим записаться выгледит так:
PHP код:
INSERT INTO Users VALUES ('[User]', '[Password]', 'User');
Допустим я хочу записаться на форум и я на него записался ,с ником Dracula4ever и паролем antichat. Тогда SQL код который находится в форуме в который мы записываемся выгледит так:
PHP код:
INSERT INTO Users VALUES ('Dracula4ever', 'HackedPro', 'User');
INSERT это название команды котороя говорит ,что мы должны вставить что-то ,новое в таблицу.
INTO Users это значит в таблицу базы данных Users (там где хранится вся информация про участников форума. Например их ник и пароль).
User это озночает что каким бы мы ником не записались на форум мы будем обыкномеными пользователями.
Теперь давайте посмотрим что хакеры могут сделать в таком случае.
Допустим злой хакер с ником Hacker с паролям 12345 хочет записаться на форум и получить админство (стать главным директором форума).
Для того чтобы получить админство на форуме хакеры могут сделать вот так:
Свой ник сделать Hacker , а пароль 12345','Admin');-- .
Что это ему (тому кто хочет взломать) даст?
Давайте рассмотрим как выгледит SQL код в форуме на который он хочет записаться:
PHP код:
INSERT INTO Users VALUES ('[User]', '[Password]', 'User');
Когда он вставляет SQL код в форум , это выгледит так:
PHP код:
INSERT INTO Users VALUES ('Gil', '12345', 'Admin');-- ', 'User');
Давайте рассмотрим что это ему даст.
Все что вы видите кроме того, что закрашено красным цветом, это обыкновенный код который я вам уже обьяснил.
Но вот есть хорошый вопрос : что значит -- ?
Этот код значит, что все что написано после этих палочек , не будет считаться базой данных.
То есть Admin поменяется местами с User и у взломщика будет возможность стать администратором форума!
Теперь давайте посмотрим возможность входа в систему SQL Injection.
SQL код который находится в форуме в который мы хотим войти в систему выгледит так:
PHP код:
SELECT UserName FROM Users WHERE (UserName = '[User]') and (Password = '[Password]');
Если я хочу войти в систему с ником Dracula4ever и паролем antichat , то SQL выгледит так:
PHP код:
SELECT UserName FROM Users WHERE (UserName = 'Dracula4ever') and (Password = 'HackedPro');
Теперь давайте посмотрим что хакеры могут сделать в таком случае.
Допустим что ник администратора Admin (пароль нам не известен).
Хакер может просто написать в логине Admin'); -- и все! (пароль не надо писать).
Давайте рассмотрим что это ему даст.
-- код значит что все что написано после этих палочек (даже пароль) не будет читаться базой данных.
Также хакеры могут просто вставить какой он хотят ник а пароль сделать blabla' or 'a'='a .
В таком случае у хакера получаютя следущий услрвия:
либо password='blabla' либо 'a'='a ' ,но a всегда равна сама себе.
Взломщик также может попробовать другие варианты если у него не получиться получить доступ к системе.
Например:
blabla" or "a"="a
blabla" or 1=1 --
blabla' or 1=1 --
blabla' or 'x'='x'
И так ещё много других вариантов.
Ладно я надеюсь что вам понравилась моя статья.
Если есть вопросы пишите мне.
Автор: Dracula4ever
Public icq: 7344790
|
|
 |
 |
 |
|
|