hop-by-hop headers

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 μ§€μ›ν•˜κΈ°

이 κΈ€μ˜ μš”μ•½μž…λ‹ˆλ‹€ https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers

Hop-by-hop ν—€λ”λŠ” 단일 전솑 μˆ˜μ€€ 연결에 νŠΉμ •ν•˜λ©°, 주둜 HTTP/1.1μ—μ„œ 두 λ…Έλ“œ(ν΄λΌμ΄μ–ΈνŠΈ-ν”„λ‘μ‹œ λ˜λŠ” ν”„λ‘μ‹œ-ν”„λ‘μ‹œ) κ°„μ˜ 데이터 관리λ₯Ό μœ„ν•΄ μ‚¬μš©λ˜λ©°, 전달될 μ˜λ„κ°€ μ—†μŠ΅λ‹ˆλ‹€. ν‘œμ€€ hop-by-hop ν—€λ”μ—λŠ” Keep-Alive, Transfer-Encoding, TE, Connection, Trailer, Upgrade, Proxy-Authorization, Proxy-Authenticateκ°€ ν¬ν•¨λ˜λ©°, μ΄λŠ” RFC 2616μ—μ„œ μ •μ˜λ©λ‹ˆλ‹€. μΆ”κ°€ ν—€λ”λŠ” Connection 헀더λ₯Ό 톡해 hop-by-hop으둜 지정될 수 μžˆμŠ΅λ‹ˆλ‹€.

Hop-by-Hop 헀더 μ•…μš©

ν”„λ‘μ‹œκ°€ hop-by-hop 헀더λ₯Ό λΆ€μ μ ˆν•˜κ²Œ κ΄€λ¦¬ν•˜λ©΄ λ³΄μ•ˆ λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν”„λ‘μ‹œκ°€ μ΄λŸ¬ν•œ 헀더λ₯Ό μ œκ±°ν•΄μ•Ό ν•˜μ§€λ§Œ, λͺ¨λ“  ν”„λ‘μ‹œκ°€ κ·Έλ ‡κ²Œ ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 잠재적인 취약점이 생길 수 μžˆμŠ΅λ‹ˆλ‹€.

Hop-by-Hop 헀더 처리 ν…ŒμŠ€νŠΈ

νŠΉμ • 헀더가 hop-by-hop으둜 ν‘œμ‹œλ  λ•Œ μ„œλ²„ μ‘λ‹΅μ˜ λ³€ν™”λ₯Ό κ΄€μ°°ν•˜μ—¬ hop-by-hop ν—€λ”μ˜ 처리λ₯Ό ν…ŒμŠ€νŠΈν•  수 μžˆμŠ΅λ‹ˆλ‹€. 도ꡬ와 슀크립트λ₯Ό μ‚¬μš©ν•˜μ—¬ 이 과정을 μžλ™ν™”ν•˜κ³ , ν”„λ‘μ‹œκ°€ μ΄λŸ¬ν•œ 헀더λ₯Ό μ–΄λ–»κ²Œ κ΄€λ¦¬ν•˜λŠ”μ§€ μ‹λ³„ν•˜λ©°, 잘λͺ»λœ κ΅¬μ„±μ΄λ‚˜ ν”„λ‘μ‹œ λ™μž‘μ„ λ°œκ²¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Hop-by-hop 헀더λ₯Ό μ•…μš©ν•˜λ©΄ λ‹€μ–‘ν•œ λ³΄μ•ˆ λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜λŠ” μ΄λŸ¬ν•œ 헀더가 잠재적인 곡격을 μœ„ν•΄ μ–΄λ–»κ²Œ μ‘°μž‘λ  수 μžˆλŠ”μ§€λ₯Ό λ³΄μ—¬μ£ΌλŠ” λͺ‡ κ°€μ§€ μ˜ˆμž…λ‹ˆλ‹€:

X-Forwarded-For둜 λ³΄μ•ˆ μ œμ–΄ 우회

κ³΅κ²©μžλŠ” X-Forwarded-For 헀더λ₯Ό μ‘°μž‘ν•˜μ—¬ IP 기반 μ ‘κ·Ό μ œμ–΄λ₯Ό μš°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 ν—€λ”λŠ” μ’…μ’… ν”„λ‘μ‹œκ°€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μ›λž˜ IP μ£Όμ†Œλ₯Ό μΆ”μ ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ ν”„λ‘μ‹œκ°€ 이 헀더λ₯Ό hop-by-hop으둜 μ²˜λ¦¬ν•˜κ³  μ μ ˆν•œ 검증 없이 μ „λ‹¬ν•˜λ©΄, κ³΅κ²©μžλŠ” μžμ‹ μ˜ IP μ£Όμ†Œλ₯Ό μŠ€ν‘Έν•‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

곡격 μ‹œλ‚˜λ¦¬μ˜€:

  1. κ³΅κ²©μžλŠ” ν”„λ‘μ‹œ 뒀에 μžˆλŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— HTTP μš”μ²­μ„ 보내며, X-Forwarded-For 헀더에 κ°€μ§œ IP μ£Όμ†Œλ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.
  2. κ³΅κ²©μžλŠ” λ˜ν•œ Connection: close, X-Forwarded-For 헀더λ₯Ό ν¬ν•¨ν•˜μ—¬ ν”„λ‘μ‹œκ°€ X-Forwarded-Forλ₯Ό hop-by-hop으둜 μ²˜λ¦¬ν•˜λ„λ‘ μœ λ„ν•©λ‹ˆλ‹€.
  3. 잘λͺ» κ΅¬μ„±λœ ν”„λ‘μ‹œλŠ” μŠ€ν‘Έν•‘λœ X-Forwarded-For 헀더 없이 μš”μ²­μ„ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ „λ‹¬ν•©λ‹ˆλ‹€.
  4. μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ μ›λž˜μ˜ X-Forwarded-For 헀더λ₯Ό 보지 λͺ»ν•˜κ³  μš”μ²­μ΄ μ‹ λ’°ν•  수 μžˆλŠ” ν”„λ‘μ‹œμ—μ„œ 직접 온 κ²ƒμœΌλ‘œ κ°„μ£Όν•˜μ—¬, 무단 접근을 ν—ˆμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Hop-by-Hop 헀더 μ£Όμž…μ„ ν†΅ν•œ μΊμ‹œ μ˜€μ—Ό

μΊμ‹œ μ„œλ²„κ°€ hop-by-hop 헀더λ₯Ό 기반으둜 μ½˜ν…μΈ λ₯Ό 잘λͺ» μΊμ‹œν•˜λ©΄, κ³΅κ²©μžλŠ” μ•…μ„± 헀더λ₯Ό μ£Όμž…ν•˜μ—¬ μΊμ‹œλ₯Ό μ˜€μ—Όμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” λ™μΌν•œ λ¦¬μ†ŒμŠ€λ₯Ό μš”μ²­ν•˜λŠ” μ‚¬μš©μžμ—κ²Œ 잘λͺ»λ˜κ±°λ‚˜ μ•…μ„± μ½˜ν…μΈ λ₯Ό μ œκ³΅ν•˜κ²Œ λ©λ‹ˆλ‹€.

곡격 μ‹œλ‚˜λ¦¬μ˜€:

  1. κ³΅κ²©μžλŠ” μΊμ‹œλ˜μ§€ μ•Šμ•„μ•Ό ν•˜λŠ” hop-by-hop 헀더(예: Connection: close, Cookie)λ₯Ό ν¬ν•¨ν•˜μ—¬ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μš”μ²­μ„ λ³΄λƒ…λ‹ˆλ‹€.
  2. 잘λͺ» κ΅¬μ„±λœ μΊμ‹œ μ„œλ²„λŠ” hop-by-hop 헀더λ₯Ό μ œκ±°ν•˜μ§€ μ•Šκ³  곡격자의 μ„Έμ…˜μ— νŠΉμ •ν•œ 응닡을 μΊμ‹œν•©λ‹ˆλ‹€.
  3. λ™μΌν•œ λ¦¬μ†ŒμŠ€λ₯Ό μš”μ²­ν•˜λŠ” 미래의 μ‚¬μš©μžλ“€μ€ 곡격자λ₯Ό μœ„ν•΄ λ§žμΆ€ν™”λœ μΊμ‹œλœ 응닡을 λ°›κ²Œ λ˜μ–΄, μ„Έμ…˜ ν•˜μ΄μž¬ν‚Ήμ΄λ‚˜ λ―Όκ°ν•œ 정보 λ…ΈμΆœλ‘œ μ΄μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

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 μ§€μ›ν•˜κΈ°