Як я знайшов вразливість LFI за 15 секунд: Історія допитливого хакера та неготового сервера 🐞

pic

👋 Привіт! Я — Ш'ям, дослідник безпеки з особливим талантом знаходити вразливості швидше, ніж охолоне твоя кава. Сьогодні я розповім, як я випадково натрапив на критичну вразливість Local File Inclusion (LFI) на сайті xyz. Спойлер: я використав Google Dorks. 🔍

Попередження: цей блог містить сцени несподіваного успіху, розчарованих розробників і хакера, який намагається не сміятися занадто голосно. ☄️

Підготовка: Нудьгуючий хакер і Google Dorks

Було спокійне вівторкове післяобіддя, і я перебував у "режимі хакера". Уявіть мене, який сидить за столом: на одному екрані Kali Linux, на іншому — меми, а поряд чашка чаю. ☕

Відчувши цікавість, я вирішив запустити кілька Google Dorks, щоб подивитися, що вийде. Для тих, хто не знайомий, Google Dorks — це розширені пошукові запити, які можуть розкрити цікаві (а іноді й уразливі) кінцеві точки. Це як полювання за скарбами, тільки в Google. 🗺️

Один із моїх улюблених Dorks:

inurl:”download.php?filename=”

pic

Чому? Тому що він часто знаходить кінцеві точки, які динамічно обробляють файли — ідеальна територія для тестування LFI. Тож я запустив пошук, і ось що знайшов:

xyz Download Endpoint:
https://www.xyz.com/downloads/download.php?filename=

Виявлення за 2 секунди

Коли я побачив це посилання, це було як натискання на велику червону кнопку з написом “НЕ НАТИСКАТИ”. Звісно, я натиснув. 😂

Я: "Давайте подивимося, чи справді це так невинно, як виглядає, маленьке посилання."
Сервер: Тремтить від нервів.

Я змінив параметр filename у URL на

../../../../etc/passwd

Ось що я надіслав:

  • **************************************************************
  • GET /downloads/download.php?filename=../../../../etc/passwd HTTP/1.1Host: www.xyz.com
  • **************************************************************

І всього за 2 секунди сервер відповів ось так:

pic

Я: "Стривайте, що?! Це спрацювало?!" 🤯
Сервер: "О ні, я не повинен був це робити..." 😰

Внутрішній монолог хакера

На цьому етапі я сидів і думав:

  • Я що, щойно відкрив ворота до Мордору? 🏰
  • Як це взагалі можливо?
  • Сміятися чи плакати за команду безпеки сервера? 😅

Поки мій мозок святкував, я уявляв розробників:

  • Менеджер: "Ей, цей функціонал завантаження файлів безпечний?"
  • Розробник: "Так, звісно. Ми тестували це з усіма видами PDF!"
  • Менеджер: "Чудово, відправляємо в продакшн!" 🚢

Мій брат питає: Що таке LFI? Аха!

Для тих, хто не знає, Local File Inclusion (LFI) — це як попросити когось показати фото їхнього собаки, а замість цього вони випадково відправляють тобі свою історію браузера. 🐕💻

Це трапляється, коли сайт дозволяє завантажувати локальні серверні файли, маніпулюючи параметрами введення. Чому це небезпечно?

  • Ви можете отримати доступ до чутливих файлів, як-от /etc/passwd.
  • Можна знайти API-ключі або паролі.
  • Якщо це використати далі, це може призвести до повного захоплення сервера.

Що ми дізналися про LFI?

LFI — це як залишити свою передню двері відкритою, бо ви думаєте, що ніхто не зайде. Це легко використати, але так само легко запобігти.

Ось що мало б статися:

  1. Валідація вводу: Сервер повинен був перевірити, чи параметр filename відповідає списку дозволених файлів (наприклад, тільки .pdf).
  2. Санітизація: Видаляти підозрілі символи, як-от ../.
  3. Обробка помилок: Замість того, щоб віддавати чутливі файли, сервер повинен був повернути ввічливу помилку, як-от: "Вибачте, цей файл не існує!"

Час для мемів

Бо жоден блог про хакерство не обходиться без мемів:

Сервер, мовляв:
“Ти хотів один файл? Ось, бери всю систему.”

Розробники після прочитання звіту:
“Стривайте, люди можуть це зробити з нашою кінцевою точкою?”

Я, звітуючи про помилку:
“Твій сервер довірив мені.”
“Це була твоя перша помилка.”

Чому це важливо?

Виявлення цієї вразливості було не тільки демонстрацією моїх хакерських навичок — це було важливе нагадування про необхідність правильної валідації вводу. Якщо б ця вразливість потрапила до рук не тих людей, наслідки могли б бути дуже серйозними.

Заключні думки

Цей досвід нагадав мені про дві речі:

  1. Ніколи не недооцінюйте силу цікавості та хорошого Google Dork.
  2. Завжди санітизуйте ваші введення, друзі!

Чи знаходили ви коли-небудь таку вразливість LFI так швидко? Або у вас є улюблений Dork? Напишіть про це в коментарях нижче.

Перекладено з: How I Uncovered an LFI in 15 Seconds: The Tale of a Curious Hacker and an Unprepared Server 🐞

Leave a Reply

Your email address will not be published. Required fields are marked *