Хакерам города посвещается... про SQL инъекцию...
#1
Отправлено 03 March 2006 - 15:29
А вот собственно и вопрос, пачиму с помощью UNION SELECT password FROM mysql.user WHERE user='user()' не хрена не магу выдернуть пароль доступа к БД, мож кто знает??? Моя цель щас просто в бд мд5 хеш админа на свой мд5 заменить.....
#3
Отправлено 03 March 2006 - 19:43
leva (03 March 2006, 15:29) писал:
Не совсем понятно что ты пытаешься сделать этой командой.
напиши по подробней
user() - эт функция?
#5
Отправлено 04 March 2006 - 04:08
leva (03 March 2006, 16:29) писал:
А вот собственно и вопрос, пачиму с помощью UNION SELECT password FROM mysql.user WHERE user='user()' не хрена не магу выдернуть пароль доступа к БД, мож кто знает??? Моя цель щас просто в бд мд5 хеш админа на свой мд5 заменить.....
просто объясни для чего это те надо. может и помогу
#6
Отправлено 04 March 2006 - 13:00
Цитата
напиши по подробней
user() - эт функция?
user() - функция, например UNION SELECT user() даст имя пользователя, version(), database() , ну эт все даст то что ожидается, процесс происходит в БД под названием (что выдаст) database(), а мне надо вернуться назад, и попасть в mysql.user , там храняться все юзеры, пароли и т.п. пользующиеся этим сервером....
Цитата
Наверное самоутвердиться, сам не знаю...
добавлено:
Кста про mysql.user, мне надо попасть в БД mysql и там в таблицу user
#7
Отправлено 06 March 2006 - 21:23
Обычно скрипт жрет его из кого нить файла !!! , А в БД хроняться данные о юзверях их правах и паролях но не к БД а к конкретному Web-приложению ... :sorcerer: :smile:
#8
Отправлено 06 March 2006 - 23:41
Цитата
Обычно скрипт жрет его из кого нить файла !!! , А в БД хроняться данные о юзверях их правах и паролях но не к БД а к конкретному Web-приложению ...
Пойми, откуда по твоему жрет весь сервак имя и пароли юзеров???? На стандартном майскл сервере, есть такая БД, называется - mysql, а в ней есть таблица всех юзверей, где столб password и содержит то что мне нада.....
#9
Отправлено 09 March 2006 - 16:36
#11
Отправлено 26 March 2006 - 12:35
#12
Отправлено 28 March 2006 - 15:55
Цитата
Ну научи глупцов...
#13
Отправлено 31 March 2006 - 14:11
$result = sql_db_query("db", "select * from userTable where login = '$Login' and password = '$Password' ");
Где $Login и $Password - переменные, которые после интерполяции строк получают фактическое значение введённые пользователем. Допустим, ты ввёл ИВАНОВ:ПАРОЛЬ, тогда строка запроса будет выглядеть так:
select * from userTable where login = 'ИВАНОВ' and password = 'ПАРОЛЬ'
Если такой логин/пароль действительно присутствуют в базе, функция сообщает идентификатор результата, в противном случае возвращается FALSE. Зная логин, но не зная пароля можно поступить так, например, ввести такие данные - admin:ДУРАК' or '1'= '1 (надеюсь понятно, где логин, а где пароль). Скрипт послушно считает эти данные и подставит их в $Login и $Password и запрос примет вид:
select * from userTable where login = 'admin' and password = 'ДУРАК' or '1'= '1'
Кавычка, стоящая после ДУРАК, замкнула пользовательский пароль, а весь последующий ввод попал в логическое выражение, навязанное БД атакующим. Кто разбирается в программировании, тот сообразит, что 1 всегда равен 1, т.е. запрос будет считаться выполненным при любом введенном пароле и SQL-сервер возвратит все записи из таблицы, которые относятся к admin. Примерно так объясняют про "навязывание запроса" на курсах web-программистов, поэтому сейчас даже "криворукий программер" знает, что прежде чем сформировать запрос к БД надо проверить логин/пароль на наличии специальных символов, таких как ' -- /*.
Если ты про эту инъекцию, то поподробней напиши, самому аж интересно. И ещё, если ты получил check-string (по твоему хеш, который ты "типа брутил", тоже интересно как, напиши), зачем восстаннавливать пароль, ведь для аутентификации он в принципе не нужен?
#14
Отправлено 31 March 2006 - 19:05
Ссылку давать смысла не вижу, т.к. уже связался с админами и расписал им все дыры, на что они пригласили меня работать у них тестером или кодером, гы...
иньекция выглядила так:
Допустим есть урл http://site/articles.php?id=8
Ну все расписывать не буду, в итоге при попадание на такой урл http://site/articles.php?id=999999+union+s...t+from+admins/* (мля, чето он в урле select нормальный не пишет) видать пароль, кста + можно и %20 заменить (это кодирование пробела)....
Сообщение отредактировал leva: 31 March 2006 - 19:18