
10.04.2007, 18:33
|
|
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме: 3887520
Репутация:
2996
|
|
Продолжение статьи:
Класcификация ошибок в Базах Данных от Microsoft.
Рассмотрим 3 версии самых популярных ошибок в asp.
Для начала рассмотрим те ошибки с которыми мы ничего сделать не можем.
И так по ключевым словам:
1) Microsoft Jet Database
2) VbScript
3) JetDataBase
4) "Потерянный параметр"
Первые 3 класса ошибок образуют отдельную группу. Собственно с чем мы имеем дело. Во всех 3 Примерах мы имеем дело с базой данных Microsoft Jet Database Engine. Как мы видим работает она на Access + VB. Языка как такового в запросах там не используется. В этих случаях мы не можем провести инъекцию так как:
1) Не будет вывода.
2) Запросы передаются на очень низком уровне.
3) Единственное что на мой взгляд тут можно сделать это стресс тест на переполнение буфера в отдельных компонентах которые в крупных компаниях пишут сами.
База данных в таких случаях хранится в файле *.mdb, который обязательно находится на веб сервере вместе с web скриптами. Протокол передачи запросов между базой и веб приложениями я не изучал.
Часто встречал сервера где исользуется обычный mssql и JetDB так что если в первый раз вы определили данный вид базы не стоит расстраиваться, может еще есть шансы на успех.
Редактировать и открывать файлы базы данных можно в Microsoft Office Acceess.
Теперь рассмотрим "Потерянный параметр".
Это я встречал на всех версиях Серверов от Microsoft и так и не разобрался с чем собственно это связанно. При попытке инъекции запроса с нарушением синтаксиса Сервер возвращает ошибку с некорректным параметром. Например
При url
В большинстве случаев это из-за фильтрации, для меня это самое логическое объяснение. Но это не всегда. Лично я встречал случай когда.
Если это так, то мы составим запрос.
site.gov/a.asp?catId=66'&id=6
При этом если в ошибке параметр исчезает и запрос является верным, то мы можем составить далее правильный по синтаксису запрос.
site.gov/a.asp?catId=66+or+1=@@version--&id=6
Но в большинстве случаев это именно фильтрация входяшего параметра, и только потом передача его в с другим "именем" в базу данных.
Идеальная ошибка при составлении не корректного запроса к бд будет.
Microsoft OLE DB Provider for SQL Servererror '80040e14'
Unclosed quotation mark before the character string ''.
/path_to_dir/file.asp, line 99
Именно эта ошибка 80040e14, хотя встречаются разные. Здесь с вероятностью 95% есть инъекция. Так же не забываем, что если ошибка возникает без манипуляции вами параметров скрипта, то это скорей всего ошибка в настройках скрипта, а не инъекция.
Коды ошибок :
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/adoce31/htm/ado30ref_100.asp
Данной статьей я хотел показать в каких случаях возможна инъекция да бы на форуме не было одинаковых тем.
Служит продолжением статьи http://forum.antichat.ru/showthread.php?t=30501
[ cash ] Hack-Shop.Org.Ru (c)
Последний раз редактировалось [ cash ]; 08.08.2007 в 00:29..
|
|
|