Способи обходу перевірки домену та ip адреси

Перевірка входження рядка

Помилка в регулярному виразі

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

А що тут не так? А то, що точка в регулярному виразі - це будь-який символ, тому відправивши посилання на mail-vulnsite.com (який можна зареєструвати) - перевірка буде пройдена.

Відсутність перевірки перенаправлення

«Відрізання» частини домену

Для деяких механізмів перевірки - доменне ім'я буде відповідати google.com, а по факту - домену, вказаного через символ «@».

Деякі символи дозволяють «відрізати» хвіст у домену, і якщо парсер пропускає їх:

Символ використовується для hash-навігації або передачі інформації без участі сервера. Відкривши це посилання в браузері, браузер відправить GET запит тільки на evil.com, а обробка інформації після символу відбувається на стороні клієнта.

Аналогічна ситуація, тільки рядок після знака питання піде в параметр, точно так же, якщо відкрити сторінку evil.com/?vulnsite.com

Здебільшого це стосується сайтів на PHP, бо працював він з nullbyte не завжди добре.

  • Окремо варто відзначити символ (U + 1F4A9)

Веселий emoji «PILE OF POO» - альтернатива nullbyte для таких СУБД як MySQL з кодуванням utf8. І ця вразливість зустрічається на багатьох проектах.

Це стосується і до звичайних доменних імен.

Більш того, ці варіанти можна змішувати:

Аналогічно, Long IP можна уявити в вісімковій і шістнадцятковій системах числення:

Як виявилося, це популярний сервіс, а користуються ним багато. Після реєстрації в додатку я створив свою форму і спробував додати домен PortSwigger. Природно вилізла помилка - «This domain name is already in use», однак, тут я згадав про одну фиче з доменами.

Існує така штука, як домен нульового рівня. В кінці домену повинна стояти крапка. але вона не береться.

Наприклад, сайт вікіпедії нормально працює з точкою

але як буде вести себе логіка програми - ще незрозуміло.

Залежно від налаштувань сервера - сайт може реагувати по-різному. Хтось буде показувати 404, хтось invalid hostname, хтось bad request. Але в будь-якому випадку, браузери вважають такий запит цілком дійсним.

І як ти вже здогадався, я додав домен surveys.portswigger.net. в особистий кабінет. А так як сервіс досить популярний, знайшов ще десяток-другий компаній, який потрапили до мене в кабінет:

Схожі статті