Щось давно не було!
Вечірня історія QA. Як перевірити, чи проект світиться назовні і заробити плюсик в репутацію.
ну що я маю вам сказати.
Повертаємось до теми безпеки. І якщо ви QA, який не просто клікає кнопки, а хоче розуміти, що реально з проектом ця історія для вас.
Сьогодні поділюсь одним лайфхаком з реальної практики.
І якось прочитав я статтю, що іноді деви залишають службові файли десь у публічному доступі, просто не подумавши.
Задача яка перевірити, чи проект відкриває щось зайве через nginx. якщо якась службова інфа світиться зовні, це реальна дірка.
І я вирішив це перевірити
і так був файл який реально світиться зовні в якому інфа про версіі, номера сертифікатів і т.д до той чи іншой інфи) в нашому випадку той файлик не велику інфу несе і його прикрили) але це могло чи у вас може буди важливим)
Суть яка
Береш якийсь умовний, непримітний файл. Називаєш його скажімо,
internal-status/health.txt або zxc123/debug.log.
Далі, пробуєш просто постукати по порту напряму.
Наприклад, у вас девсервер був на
10.10.123.123
, і пробуйте
curl -I http://10.10.123.123:443/zxc123/debug.log
І Якщо
200 OK. І пішов контент.
то цей лог доступний зовні. Просто валяється під руками, без авторизації, прямо через NGINX.
Це не баг у коді. Це неправильна конфігурація nginx. просто забули закрити або прибрати шлях у location.
І от тут ви вже не просто QA, а той, хто потенційно врятував реліз від зливу інфи.
А тепер ще цікавіше: .git/
я часто читаю шо деви особливо не опетні забувають прятати .git, і ви можете це перевірити не відкрита службова папка .git/ (а вона часом випадково заливається разом із кодом).
просто зробіть
curl -I http://{{IP}}/.git/configІ якщо знову 200 OK і у відповідь прийшов вміст git-конфігу з remote URL, ім'ям розробника, і навіть ssh-ключем (true story 🫣). то це просто провал)
Це реальна загроза, бо
.git/HEAD, .git/config, .git/index
- відкривають структуру репозиторію, через них можна відновити весь код і навіть знайти секрети, які колись хтось пушнув
як перевірити, що шось лишнє світиться,
Найпростіше через curl
Умовно
curl -I http://<IP>:<port>/.git/config
Можете перевірити ще кілька
curl -I http://<IP>/.env
curl -I http://<IP>/debug.log
curl -I http://<IP>/logs/latest.log
Якщо щось дає 200 OK бігом в чат з девами
Чому це важливо для QA?
Бо іноді найкращий тест це просто подивитись трохи глибше. Ти можеш реально знайти вразливість, яка обійде всі UI-тести, не вилізе в CI. і яку ніхто навіть не шукав
А ти взяв і знайшов і тебе вже хвалять)
Поінт від мене простий
Навіть не будучи сек'юріті інженером, ви можете знаходити великі речі. Просто треба розуміти, що і навіщо перевіряти.
Такі штуки це реальний плюс до твоєї репутації як QA.
якщо хочете окрему шпаргалку по типових шляхах, які треба перевірити чекаю від вас ❤️
а вообще спробуйте шо у вас і напешіть в коментарях шо вийшло або ви про це взнали і перевіряєте це вже давно)
Бажаю вам гарного вечора!
Обняв 🤗