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)
- Cullinan by Me :D
- HackTricks by carlospolop
- HowToHunt by kathan19
- PayloadAllTheThings by swissky
- Top 10 Web Hacking Techniques by Portswigger
๐ 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