403 & 401 Bypasses

Підтримати HackTricks

Миттєво доступна установка для оцінки вразливостей та пентестингу. Запустіть повний пентест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пентестерів - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, запуску оболонок та отримання задоволення.

HTTP Verbs/Methods Fuzzing

Спробуйте використовувати різні дієслова для доступу до файлу: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK

  • Перевірте заголовки відповіді, можливо, можна отримати деяку інформацію. Наприклад, 200 відповідь на HEAD з Content-Length: 55 означає, що HEAD дієслово може отримати інформацію. Але вам все ще потрібно знайти спосіб ексфільтрувати цю інформацію.

  • Використання HTTP заголовка, такого як X-HTTP-Method-Override: PUT, може переписати використане дієслово.

  • Використовуйте TRACE дієслово, і якщо вам дуже пощастить, можливо, у відповіді ви також зможете побачити заголовки, додані проміжними проксі, які можуть бути корисними.

HTTP Headers Fuzzing

  • Змініть заголовок Host на деяке довільне значення (це спрацювало тут)

  • Спробуйте використати інші User Agents для доступу до ресурсу.

  • Fuzz HTTP Headers: Спробуйте використовувати HTTP Proxy Headers, HTTP Authentication Basic та NTLM brute-force (тільки з кількома комбінаціями) та інші техніки. Для цього я створив інструмент fuzzhttpbypass.

  • X-Originating-IP: 127.0.0.1

  • X-Forwarded-For: 127.0.0.1

  • X-Forwarded: 127.0.0.1

  • Forwarded-For: 127.0.0.1

  • X-Remote-IP: 127.0.0.1

  • X-Remote-Addr: 127.0.0.1

  • X-ProxyUser-Ip: 127.0.0.1

  • X-Original-URL: 127.0.0.1

  • Client-IP: 127.0.0.1

  • True-Client-IP: 127.0.0.1

  • Cluster-Client-IP: 127.0.0.1

  • X-ProxyUser-Ip: 127.0.0.1

  • Host: localhost

Якщо шлях захищений, ви можете спробувати обійти захист шляху, використовуючи ці інші заголовки:

  • X-Original-URL: /admin/console

  • X-Rewrite-URL: /admin/console

  • Якщо сторінка за проксі, можливо, саме проксі заважає вам отримати доступ до приватної інформації. Спробуйте зловживати HTTP Request Smuggling або hop-by-hop заголовками.

  • Fuzz спеціальні HTTP заголовки, шукаючи різні відповіді.

  • Fuzz спеціальні HTTP заголовки під час fuzzing HTTP Methods.

  • Видаліть заголовок Host і, можливо, ви зможете обійти захист.

Path Fuzzing

Якщо /path заблоковано:

  • Спробуйте використовувати /%2e/path _(якщо доступ заблоковано проксі, це може обійти захист). Спробуйте також_** /%252e**/path (подвійне кодування URL)

  • Спробуйте Unicode обхід: /%ef%bc%8fpath (закодовані символи URL подібні до "/"), тому при повторному кодуванні це буде //path і, можливо, ви вже обійшли перевірку назви /path

  • Інші обходи шляху:

  • site.com/secret –> HTTP 403 Forbidden

  • site.com/SECRET –> HTTP 200 OK

  • site.com/secret/ –> HTTP 200 OK

  • site.com/secret/. –> HTTP 200 OK

  • site.com//secret// –> HTTP 200 OK

  • site.com/./secret/.. –> HTTP 200 OK

  • site.com/;/secret –> HTTP 200 OK

  • site.com/.;/secret –> HTTP 200 OK

  • site.com//;//secret –> HTTP 200 OK

  • site.com/secret.json –> HTTP 200 OK (ruby)

  • Використовуйте весь цей список у наступних ситуаціях:

  • /FUZZsecret

  • /FUZZ/secret

  • /secretFUZZ

  • Інші API обходи:

  • /v3/users_data/1234 --> 403 Forbidden

  • /v1/users_data/1234 --> 200 OK

  • {“id”:111} --> 401 Unauthriozied

  • {“id”:[111]} --> 200 OK

  • {“id”:111} --> 401 Unauthriozied

  • {“id”:{“id”:111}} --> 200 OK

  • {"user_id":"<legit_id>","user_id":"<victims_id>"} (JSON Parameter Pollution)

  • user_id=ATTACKER_ID&user_id=VICTIM_ID (Parameter Pollution)

Parameter Manipulation

  • Змініть значення параметра: З id=123 --> id=124

  • Додайте додаткові параметри до URL: ?id=124 —-> id=124&isAdmin=true

  • Видаліть параметри

  • Переставте параметри

  • Використовуйте спеціальні символи.

  • Виконайте граничне тестування в параметрах — надайте значення, такі як -234 або 0 або 99999999 (просто кілька прикладів).

Protocol version

Якщо використовується HTTP/1.1 спробуйте використовувати 1.0 або навіть перевірте, чи підтримує 2.0.

Інші обходи

  • Отримайте IP або CNAME домену та спробуйте зв'язатися з ним безпосередньо.

  • Спробуйте навантажити сервер, надсилаючи звичайні GET запити (Це спрацювало для цього хлопця з Facebook).

  • Змініть протокол: з http на https, або з https на http

  • Перейдіть на https://archive.org/web/ і перевірте, чи був у минулому цей файл всесвітньо доступний.

Brute Force

  • Вгадайте пароль: протестуйте наступні загальні облікові дані. Чи знаєте ви щось про жертву? Або назву виклику CTF?

  • Brute force: Спробуйте базову, дайджестну та NTLM автентифікацію.

Загальні облікові дані
admin    admin
admin    password
admin    1234
admin    admin1234
admin    123456
root     toor
test     test
guest    guest

Автоматичні інструменти

Миттєво доступна установка для оцінки вразливостей та тестування на проникнення. Запустіть повний тест на проникнення з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо тестувальників на проникнення - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.

Підтримати HackTricks

Last updated