Content:
General
Security/hack
Programming
Art/Stuff
 
 
наша рассылка
Твой E-mail:
Submit
 
 
  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

 
Интро | О проекте | Услуги | Статьи | Обратная связь
Freelance web designer