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

  #10  
Старый 20.11.2008, 00:54
Grey
Познавший АНТИЧАТ
Регистрация: 10.06.2006
Сообщений: 1,113
С нами:
10483586

Репутация: 5826


По умолчанию

Цитата:
Сообщение от Ershik  
На сайте под управлением mssql access есть уязвимость в авторизации.
пытаюсь скомбинировать как в mssql

но не получается. Как правильно ввести данные?
Это так теория, в твоём случае она не применима, но знать будет полезно (для других БД, к примеру мускул).

Это зависит только от запроса, т.е. найти вариант, который прокатывал бы в каждой админке с уязвимой авторизацией не реал.

1. "--" будет служить символом комментария только если после этого чуда идёт пробел, а в админках часто используется обрезание пробельных символов по краям, так что лучше юзать так: "-- 1".

2. Пробывать лучше это:

login' or 1=1-- 1
password' or 1=1-- 1

3. Часто бывает что без извращений с юнионом в админку по скуле в авторизации не попасть, но тут не видя сорца скрипта сделать что либо почти не реал.

Хотя в крации расскажу:

Если авторизации (т.е. проверка правильности введённой инфы) проходит только по результату запроса, то прокатывает посдановка вышеуказанной комбинации.
А бывает, что из запроса (по логину) достается соотвествующий пароль или хеш пароля, а уже затем он сравнивается с введённым тобою, что то вроде этого:

Код:
select password from admin where login = '$login';
В таких случаях нужно через объединение запросов впихивать левые данные:

Код:
логин = 1' and 1=2 union select 'pass'-- 1
И пароль соответственно = pass
Ну или есть хеширование:

Код:
логин = 1' and 1=2 union select md5('pass')-- 1
И пароль соответственно = pass
Но это так теория, на практике это будет геморно осуществить.

4. Ещё как вариант попробовать раскрутить инъекцию как слепую - тоже частенько удаётся сделать.

Последний раз редактировалось Grey; 20.11.2008 в 01:04..
 
Ответить с цитированием