![]() |
SQL-injection для самых маленьких
Сегодня я вам расскажу об одной известной уязвимости SQL-injection. Я понимаю, что подобных статей написано уже много, но у новичков всё равно возникает множество вопросов. Итак, приступим.
Для начала немного разберёмся с языком SQL . 1. SELECT – команда для вывода информации из БД. Например: PHP код:
2. UNION – команда для объединения нескольких запросов в один. Например: PHP код:
3. INSERT – команда для добавления данных в БД. Например: PHP код:
4. DROP - команда для удаления данных из БД. Например: PHP код:
5. UPDATE – команда для изменения данных в таблице. Например у нас в таблице users есть пользователь с именем admin, нам нужно сменить его пароль, значит вводим следующее: UPDATE users SET password = ‘qwerty’ WHERE name = admin; 6. CREATE TABLE – команда для создания таблицы в БД. Например: PHP код:
Ну вот с языком SQL мы немного разобрались, теперь приступим к SQL injection. Данная уязвимость позволяет посылать запросы в БД из адресной строки браузера. Есть несколько способов проверить является ли сайт уязвимым. Например, у нас есть адрес: PHP код:
PHP код:
PHP код:
Допустим, мы определили, что сайт уязвим. Первым делом нам нужно подобрать количество полей. Это делается для того, что бы узнать значение какого поля отображается на экране. PHP код:
Предположим у нас отобразилась цифра 4, значит отображалось значение четвёртого поля. Количество полей можно перебрать и другим способом при помощи оператора order by. Например: PHP код:
PHP код:
Продолжаем дальше. Вводим следующий запрос: PHP код:
PHP код:
PHP код:
Итак, продолжим. Теперь начинаем выполнять команды. PHP код:
Узнаём имя пользователя БД: PHP код:
Получаем имя БД PHP код:
Сейчас нам надо узнать в какой таблице хранятся данные пользователей. PHP код:
Теперь нам нужно узнать пароль данного пользователя. PHP код:
Теперь осталось только найти админку и залогинется под пользователем admin. Так же есть возможность через SQL-injection есть возможность читать файлы на сервере. Для этого выполняем следующее: PHP код:
Заливаем Web Shell через SQL-injection. Например у нас есть таблица articles в ней поле computers. Выполним следующую команду: PHP код:
Так мы добавили в таблицу articles в поле computers новую запись. Теперь с помощью команды PHP код:
Теперь переходим по адресу PHP код:
Автор: FraiDex |
Незачот, http://forum.antichat.ru/thread19844.html-здесь подано посерьознее.
рассмотрен самый тривиальный случай =\ |
Я конешн в этих делах ламер,но всегда думал что после id =нужно писать или -n или + большое число что бы скуль пустой результат вернул.
|
Цитата:
|
Конечно тема избита до смерти, ну да ладно, всеравно + за старание
|
как уже говорилось всеми пришла весна и снова статейки про инжекты -- но всеже автор старался +
|
Поскольку эта тема для "самых маленьких".
Хочу добавить малось. www.lamer.org/index.php?id=-1+union+select+1,2,concat(database(),char(58),vers ion(),char(58),user()),5,6 concat() - обединение,нескольких запросов. char(58) - добавление ":". Пример. concat(login,char(58),password) ==>admin:qwerty Также используется "0x3a"(аналогично). |
| Время: 10:07 |