Показать сообщение отдельно

  #5  
Старый 10.04.2007, 18:33
guest3297
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме:
3887520

Репутация: 2996


Exclamation

Продолжение статьи:

Клас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'
Цитата:
param id=66
В большинстве случаев это из-за фильтрации, для меня это самое логическое объяснение. Но это не всегда. Лично я встречал случай когда.
Цитата:
id="$catId"-60;
Если это так, то мы составим запрос.
Цитата:
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..