How to Hack Web Application

πŸ” Introduction

β€œHow to Hack a Web Application”은 Web 기반의 Application을 ν…ŒμŠ€νŒ…ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. μ „λ°˜μ μΈ ν…ŒμŠ€νŒ… λ©”μ»€λ‹ˆμ¦˜κ³Ό ν™˜κ²½ ꡬ성에 λŒ€ν•œ λ‚΄μš©μ„ 주둜 λ‹€λ£Ήλ‹ˆλ‹€.

What is Web?

Web은 μ›”λ“œ μ™€μ΄λ“œ μ›Ή(World Wide Web, WWW, W3)의 μ€„μž„λ§λ‘œ μ‚¬μš©λ˜λ©° 인터넷에 μ—°κ²°λœ μ—¬λŸ¬κ°€μ§€ 컴퓨터λ₯Ό 톡해 정보λ₯Ό κ³΅μœ ν•  수 μžˆλŠ” 곡간을 μ˜λ―Έν•©λ‹ˆλ‹€. 인터넷에 μ—°κ²°λœ λ””λ°”μ΄μŠ€λ“€μ€ μ—¬λŸ¬κ°€μ§€ ν”„λ‘œν† μ½œμ„ ν†΅ν•΄μ„œ 데이터λ₯Ό κ΅ν™˜ν•©λ‹ˆλ‹€. 이쀑 μ›Ήμ—μ„œ κ°€μž₯ 핡심이 λ˜λŠ”κ±΄ HTTP(HyperText Transfer Protocol)μž…λ‹ˆλ‹€.

HTTP

HTTPλŠ” μ›Ήμ—μ„œ 정보λ₯Ό 주고받을 수 μžˆλŠ” ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€. TCPλ₯Ό 주둜 μ‚¬μš©ν•˜λ©°, HTTP/3 λΆ€ν„΄ UDPλ₯Ό ν†΅ν•œ 톡신도 μ§€μ›ν•˜κ³  있고, 기본적으둜 80ν¬νŠΈμ™€ SSL이 적용된 443 포트(https)λ₯Ό κ°€μž₯ 많이 μ‚¬μš©ν•©λ‹ˆλ‹€.

각 버전별 νŠΉμ§•μ€ μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

Version DT Desc
HTTP/0.9 TCP 초기 HTTP ν”„λ‘œν† μ½œ, 단일 Line, Only GET Method
HTTP/1.0 TCP Header 지원, Content-Type, StatusCode
HTTP/1.1 TCP Persistent Connection, Pipelining
HTTP/2 TCP Multiplexed Streams, Header Compression
HTTP/3 (QUIC) UDP QUIC(Quick UDP Internet Connections)

μžμ„Έν•œ λ‚΄μš©μ€ Cullinan > HTTPλ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš”.

πŸ—‘ Hack Mechanism

MITM Proxy

MITM(Man In the Middle Attack)은 보톡 μ€‘κ°„μž 곡격을 μ˜λ―Έν•©λ‹ˆλ‹€. μ‹€μ œ 곡격에선 μŠ€λ‹ˆν•‘ λ“±μœΌλ‘œ ν‘œν˜„λ˜μ§€λ§Œ, Web을 ν…ŒμŠ€νŒ…ν•˜λŠ” μž…μž₯에선 μ΄λ ‡κ²Œ 쀑간에 κ°œμž…ν•˜λŠ” 도ꡬ듀을 톡해 λΈŒλΌμš°μ €, λͺ¨λ°”일 λ“± λ””λ°”μ΄μŠ€κ°€ μ„œλ²„λž‘ ν†΅μ‹ ν•˜λŠ” λ‚΄μš©λ“€μ„ κ°€λ‘œμ±„κ³  λ³€κ²½ν•˜μ—¬ ν…ŒμŠ€νŠΈν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Client와 Server μ‚¬μ΄μ—μ„œ 데이터λ₯Ό λ³€μ‘°ν•˜λ©° ν…ŒμŠ€νŠΈν•©λ‹ˆλ‹€.

λŒ€ν‘œμ μœΌλ‘œ 많이 μ‚¬μš©λ˜λŠ” λ„κ΅¬λŠ” BurpSuite, ZAP μž…λ‹ˆλ‹€. 이외에도 더 λ§Žμ€ 도ꡬ듀이 κΆκΈˆν•˜λ‹€λ©΄ WHW > mitmproxyλ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš”.

Testing Methods

ν…ŒμŠ€νŒ… 방법듀은 λͺ…ν™•ν•˜κΈ° μ •μ˜ν•˜κΈ΄ μ–΄λ ΅κ³  개개인의 κ²½ν—˜κ³Ό 지식 그리고 μŠ€νƒ€μΌμ΄ λˆ„μ λœ κ²°κ³Όμž…λ‹ˆλ‹€. ν…ŒμŠ€νŒ… 방법에 λŒ€ν•΄μ„œ 고민을 λ“€κ²Œ ν•˜λŠ” λ§ν¬λ“€μž…λ‹ˆλ‹€. ν•„μš”ν•œ 뢀뢄은 잘 μ ‘λͺ©ν•œλ‹€λ©΄ λ…νŠΉν•˜κ³  효과적인 μžμ‹ λ§Œμ˜ ν…ŒμŠ€νŒ… 방법둠을 λ§Œλ“€μ–΄κ°ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

Testing Resources

ν…ŒμŠ€νŒ… 방법, 취약점, 곡격 등은 ν•˜λ‚˜μ˜ λ¬Έμ„œλ‘œ ν‘œν˜„ ν•˜κΈ°μ—λŠ” λ„ˆλ¬΄ λ°©λŒ€ν•©λ‹ˆλ‹€. 잘 μ•Œλ €μ§„ 취약점, 곡격 방법 등은 μ•„λž˜ Resourcesμ—μ„œ μ°Έκ³ ν•˜μ…”μ„œ ν…ŒμŠ€νŒ…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. (제 μ»¬λ¦¬λ„Œμ„ μ œμ™Έν•œ λ‚˜λ¨Έμ§€λŠ” 정말 μ°Έκ³ ν•˜κΈ° 쒋은 λ¦¬μ†ŒμŠ€μž…λ‹ˆλ‹€ :D)

πŸ›  Environment

Embeded Browser

Burpsuite, ZAP λ“± 일뢀 Proxy 도ꡬ듀은 μΈμ¦μ„œ μ‹ λ’° μ²˜λ¦¬κ°€ μ„€μ •λœ λΈŒλΌμš°μ €λ₯Ό λ‚΄μž₯ν•˜μ—¬ μ œκ³΅ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. ν…ŒμŠ€νŒ… μ‹œ λ°œμƒν•  수 μžˆλŠ” μ—¬λŸ¬ λ¬Έμ œλ“€μ„ ν”Όν•΄κ°ˆ 수 μžˆμ–΄μ„œ 개인적으둜 μ„ ν˜Έν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€.

Common Browser

λ§Œμ•½ Embeded Browserκ°€ μ•„λ‹Œ PC λ‚΄ λΈŒλΌμš°μ €λ₯Ό μ‚¬μš©ν•˜λŠ” 경우 Custom Proxy μ„€μ • 및 μΈμ¦μ„œ μ‹ λ’° 섀정이 ν•„μš”ν•©λ‹ˆλ‹€.

Set Custom Proxy

  • Firefox: Settings > General > Network Settings
  • Chrome: Settings > Advanced > System > Proxy settings
  • Safari: μ‹œμŠ€ν…œ ν”„λ‘μ‹œλ₯Ό μ΄μš©ν•©λ‹ˆλ‹€.

μœ„ κ³Όμ •μœΌλ‘œ ν”„λ‘μ‹œ 섀정이 κ°€λŠ₯ν•˜λ©°, MM3 ProxySwitch, FoxyProxy λ“± Browser Addon 등을 톡해 ν† κΈ€ 섀정이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

Set CA Certificate

  • Firefox: Settings > Privacy & Security > Security > View Certificates
  • Chrome: Settings > Privacy & Security > Security > Manage certificates
  • Safari: Open Key Chain > System Root

πŸ“š Articles