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