http(Hyper Text Transfer Protocol)์ ๋ํ์ฌ
์๋ฒ์ ํด๋ผ์ด์ธํธ์ ๋ฐ์ดํฐ ๊ตํ์ ์์ฒญ(Request)๊ณผ ์๋ต(Response) ํ์์ผ๋ก ์ ์
HTTP์ ๊ธฐ๋ณธ ๋ฉ์ปค๋์ฆ์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์์ฒญํ๋ฉด, ์๋ฒ๊ฐ ์๋ตํ๋ ๊ฒ์
๋๋ค.
์น ์๋ฒ๋ HTTP ์๋ฒ๋ฅผ HTTP ์๋น์ค ํฌํธ์ ๋๊ธฐ์ํต๋๋ค.
์ด ํฌํธ๋ ์ผ๋ฐ์ ์ผ๋ก TCP/80 ๋๋ TCP/8080์
๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ์๋น์ค ํฌํธ์ HTTP ์์ฒญ์ ์ ์กํ๋ฉด, ์ด๋ฅผ ํด์ํ์ฌ ์ ์ ํ ์๋ต์ ๋ฐํํฉ๋๋ค.
์์ธํ ํฌํธ์ ๋ด์ฉ์ ์ ๋งํฌ์์ ์๋ ์ด๋ฏธ์ง๋ ํ์์ ๋๋ค!
HTTP ๋ฉ์์ง
HTTP ๋ฉ์์ง์๋ ํด๋ผ์ด์ธํธ๊ฐ ์ ์กํ๋ HTTP ์์ฒญ, ๊ทธ๋ฆฌ๊ณ ์๋ฒ๊ฐ ๋ฐํํ๋ HTTP ์๋ตํฉ๋๋ค
๊ธฐ๋ฅ๊ณผ ์ธ๋ถ ๊ตฌ์กฐ์์๋ ์ฐจ์ด๊ฐ ์์ง๋ง, ํฌ๊ฒ ๋ณด๋ฉด ์ด๋ค์ HTTP ํค๋์ ๋ฐ๋๋ก ๊ตฌ์ฑ๋๋ค๋ ๊ณตํต์ ์์ฃ
HTTP ํค๋
HTTP ํค๋์ ๊ฐ ์ค์ CRLF๋ก ๊ตฌ๋ถ๋๋ฉฐ, ์ฒซ ์ค์ ์์ ์ค(Start-line), ๋๋จธ์ง ์ค์ ํค๋(Header)๋ผ๊ณ ๋ถ๋ฆ
๋๋ค.
ํค๋์ ๋์ CRLF ํ ์ค๋ก ๋ํ๋
๋๋ค.
์์ ์ค์ ์ญํ ์ ์์ฒญ๊ณผ ์๋ต์์ ํฐ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์ด์ ๋ํด์๋ ์กฐ๊ธ ๋ค์ ๊ฐ๊ฐ์ ์์ธํ ๊ธฐ์ ํ๋ฉด์ ์ค๋ช
ํ๊ฒ ์ต๋๋ค.
ํด๋ - ํ๋์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ HTTP ๋ฉ์์ง ๋๋ ๋ฐ๋์ ์์ฑ
ํ๋์ HTTP ๋ฉ์์ง์๋ 0๊ฐ ์ด์์ ํค๋๊ฐ ์์ ์ ์์ต๋๋ค.
HTTP ๋ฐ๋
HTTP ๋ฐ๋๋ ํค๋์ ๋์ ๋ํ๋ด๋ CRLF ๋ค, ๋ชจ๋ ์ค์ ๋งํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๋ ์๋ฒ์๊ฒ ์ ์กํ๋ ค๋ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋์ ๋ด๊น๋๋ค
HTTP ์์ฒญ
HTTP ์์ฒญ์ ์๋ฒ์๊ฒ ํน์ ๋์์ ์๊ตฌํ๋ ๋ฉ์์ง์ ๋๋ค.
์๋ฒ๋ ํด๋น ๋์์ด ์คํ ๊ฐ๋ฅํ์ง, ํด๋ผ์ด์ธํธ๊ฐ ๊ทธ๋ฌํ ๋์์ ์์ฒญํ ๊ถํ์ด ์๋์ง
๋ฑ์ ๊ฒํ ํ๊ณ , ์ ์ ํ ๋๋ง ์ด๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
์์ ์ค
HTTP ์์ฒญ์ ์์ ์ค์ ๋ฉ์๋(Method), ์์ฒญ URI(Request-URI), ๊ทธ๋ฆฌ๊ณ HTTP ๋ฒ์ ์ผ๋ก ๊ตฌ์ฑ
๊ฐ๊ฐ์ ๋์ด์ฐ๊ธฐ๋ก ๊ตฌ๋ถํฉ๋๋ค.
๋ฉ์๋๋ URI๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฆฌ์์ค๋ฅผ ๋์์ผ๋ก, ์๋ฒ๊ฐ ์ํํ๊ธธ ๋ฐ๋ผ๋ ๋์์ ๋ํ๋
๋๋ค.
HTTP ํ์ค์ ์ ์๋ ๋ฉ์๋๋ 8๊ฐ๊ฐ ์์ผ๋, ์ฌ๊ธฐ์๋ ๋น๊ต์ ์์ฃผ ์ฌ์ฉ๋๋ GET๊ณผ POST ๋ฉ์๋๋ง..
๋จผ์ GET์ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์ค๋ผ๋ ๋ฉ์๋์
๋๋ค. ์ด์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์ ์น ์๋ฒ์ ์ฃผ์๋ฅผ ์
๋ ฅํ๊ฑฐ๋
ํ์ดํผ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด, ์๋ก์ด ํ์ด์ง๋ฅผ ๋ ๋๋งํ๊ธฐ ์ํด ๋ฆฌ์์ค๊ฐ ํ์ํฉ๋๋ค.
์ด๋ ๋ธ๋ผ์ฐ์ ๋ GET ์์ฒญ์ ์๋ฒ์ ์ ์กํ์ฌ ๋ฆฌ์์ค๋ฅผ ๋ฐ์์ต๋๋ค.
๋ฐ๋๋ก, POST๋ ๋ฆฌ์์ค๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ผ๋ ๋ฉ์๋์
๋๋ค. ์ ์กํ ๋ฐ์ดํฐ๋ ๋ณดํต HTTP ๋ฐ๋์ ํฌํจํจ
์์๋ก ๋ก๊ทธ์ธํ ๋ ์
๋ ฅํ๋ ID์ ๋น๋ฐ๋ฒํธ, ๊ฒ์ํ์ ์์ฑํ๋ ๊ธ ๋ฑ์ด POST๋ก ์๋ฒ์ ๋ณด๋
์ด ์ธ์ ์์ฒญ URI๋ ๋ฉ์๋์ ๋์์, HTTP ๋ฒ์ ์ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ฉํ๋ HTTP ํ๋กํ ์ฝ์ ๋ฒ์ ํ์ํจ
ํค๋์ ๋ฐ๋
์์ ์ค์ ์ ์ธํ ํค๋์ ๋ฐ๋๋ HTTP ๋ฉ์์ง์์ ์ค๋ช ํ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
๐HTTP ์์ฒญ์ ๋ฉ์๋ ๋ฐ URI์ ๋ํด ๋ ์์ธํ ์๊ณ ์ถ๋ค๋ฉด, ํ์ค ๋ฌธ์๋ฅผ ๋ณด์ค ๊ฒ์ ์ถ์ฒํฉ๋๋ค
HTTP ์๋ต
HTTP ์๋ต์ HTTP ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๋ฉ์์ง์
๋๋ค.
์์ฒญ์ ์ํ ์ฌ๋ถ ๊ทธ๋ฆฌ๊ณ ์ด์ ์ ๊ฐ์ ์ํ ์ ๋ณด(Status), ํด๋ผ์ด์ธํธ์ ์ ์กํ ๋ฆฌ์์ค๊ฐ ์๋ต์ ํฌํจ.
์์ ์ค
HTTP ์๋ต์ ์์ ์ค์ HTTP ๋ฒ์ , ์ํ ์ฝ๋(Status Code), ๊ทธ๋ฆฌ๊ณ ์ฒ๋ฆฌ ์ฌ์ (Reason Phrase)๋ก ๊ตฌ์ฑ!
๊ฐ๊ฐ์ ๋์ด์ฐ๊ธฐ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
HTTP ๋ฒ์ ์ ์๋ฒ์์ ์ฌ์ฉํ๋ HTTP ํ๋กํ ์ฝ์ ๋ฒ์ ์ ๋ํ๋
๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ํ ์ฝ๋๋ ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ธ ์๋ฆฟ์๋ก ๋ํ๋
๋๋ค.
HTTP ํ์ค์ธ RFC 2616์ ๋๋ต 40์ฌ๊ฐ์ ์ํ ์ฝ๋๋ฅผ ์ ์ํ๊ณ ์๋๋ฐ,
๊ฐ๊ฐ์ ์ฒซ ๋ฒ์งธ ์๋ฆฟ์์ ๋ฐ๋ผ 5๊ฐ์ ํด๋์ค๋ก ๋ถ๋ฅ๋ฉ๋๋ค.
์ฒ๋ฆฌ ์ฌ์ ๋ ์ํ ์ฝ๋๊ฐ ๋ฐ์ํ ์ด์ ๋ฅผ ์งง๊ฒ ๊ธฐ์ ํ ๊ฒ์ ๋๋ค.
์ํ | ์ฝ๋ ์ค๋ช | ๋ํ ์์ |
1xx | ์์ฒญ์ ์ ๋๋ก ๋ฐ์๊ณ , ์ฒ๋ฆฌ๊ฐ ์งํ ์ค์ | |
2xx | ์์ฒญ์ด ์ ๋๋ก ์ฒ๋ฆฌ๋จ | 200: ์ฑ๊ณต |
3xx | ์์ฒญ์ ์ฒ๋ฆฌํ๋ ค๋ฉด, ํด๋ผ์ด์ธํธ๊ฐ ์ถ๊ฐ ๋์์ ์ทจํด์ผ ํจ. | 302: ๋ค๋ฅธ URL๋ก ๊ฐ ๊ฒ |
4xx | ํด๋ผ์ด์ธํธ๊ฐ ์๋ชป๋ ์์ฒญ์ ๋ณด๋ด์ด ์ฒ๋ฆฌ์ ์คํจํ์ต๋๋ค. | 400: ์์ฒญ์ด ๋ฌธ๋ฒ์ ๋ง์ง ์์ 403: ํด๋ผ์ด์ธํธ๊ฐ ๋ฆฌ์์ค์ ์์ฒญํ ๊ถํ X 404: ๋ฆฌ์์ค๊ฐ ์์ |
5xx | ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ ํจํ์ง๋ง, ์๋ฒ์ ์๋ฌ๊ฐ ๋ฐ์ํ์ฌ ์ฒ๋ฆฌ์ ์คํจํ์ต๋๋ค. |
500: ์์ฒญ์ ์ฒ๋ฆฌํ๋ค๊ฐ ์๋ฌ๊ฐ ๋ฐ์ํจ 503: ์๋ฒ๊ฐ ๊ณผ๋ถํ๋ก ์ธํด ์์ฒญ์ ์ฒ๋ฆฌ X |
ํค๋์ ๋ฐ๋
์์ ์ค์ ์ ์ธํ ํค๋์ ๋ฐ๋๋ HTTP ๋ฉ์์ง์์ ์ค๋ช ํ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
๐HTTP ์๋ต์ ๋ํด ๋ ์์ธํ ์๊ณ ์ถ๋ค๋ฉด, ํ์ค ๋ฌธ์๋ฅผ ๋ณด์ค ๊ฒ์ ์ถ์ฒ!
https
HTTP์ ์๋ต๊ณผ ์์ฒญ์ ํ๋ฌธ์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. ์ด๋ ์ฌ๊ฐํ ๋ณด์ ๋ฌธ์ ๋ก ์ด์ด์ง์ฃ
์๋ฅผ ๋ค์ด, ๋ก๊ทธ์ธํ ๋ ์ ์กํ POST ์์ฒญ์๋ ๋๊ฐ ์ด์ฉ์์ ID์ ๋น๋ฐ๋ฒํธ๊ฐ ํฌํจ๋ฉ๋๋ค.
๊ณต๊ฒฉ์๊ฐ ์ค๊ฐ์ ์ด๋ฅผ ๊ฐ๋ก์ฑ๋ฉด ์ด์ฉ์์ ๊ณ์ ์ด ํ์ทจ๋นํ ์ ์์ต๋๋ค.
HTTPS(HTTP over Secure socket layer)๋ TLS(Transport Layer Security) ํ๋กํ ์ฝ์ ๋์
TLS๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์ ์ค๊ฐ๋ ๋ชจ๋ HTTP ๋ฉ์์ง๋ฅผ ์ํธํํฉ๋๋ค.
๊ณต๊ฒฉ์๊ฐ ์ค๊ฐ์ ๋ฉ์์ง๋ฅผ ํ์ทจํ๋๋ผ๋ ์ด๋ฅผ ํด์ํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ฉฐ,
๊ฒฐ๊ณผ์ ์ผ๋ก HTTP ํต์ ์ด ๋์ฒญ๊ณผ ๋ณ์กฐ๋ก๋ถํฐ ๋ณดํธ๋ฉ๋๋ค.
์์ ์ฌ์ง์ HTTP ๋ฐ HTTPS์ ์น ์๋ฒ์ ์ค๊ฐ๋ ๋ฉ์์ง๋ฅผ Wireshark๋ก ํ์ธํ ๊ฒ์
๋๋ค.
๋นจ๊ฐ ๊ธ์๋ ์์ฒญ, ํ๋ ๊ธ์๋ ์๋ต์ด๊ณ HTTP ๋ฉ์์ง๋ ์ฝ๊ฒ ์ฝ์ ์ ์์ง๋ง, HTTPS์ ๊ฒ์ ํด์๋ถ๊ฐ
์น ์๋ฒ์ URL์ด http://๋ก ์์๋๋ฉด HTTP, https://๋ก ์์๋๋ฉด HTTPS ํ๋กํ ์ฝ์ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์์ฆ์ ๋ค HTTPS๋ฅผ ์งํฅํ๋ ํธ์ด์ฃ
TLS ํ์ค
TLS์ ๊ธฐ๋ฐ์ด ๋๋ ๊ณต๊ฐ ํค ์ํธ ์์คํ (Public Key Crypto Standard, PKCS) ๋ฐ ๋์นญ ํค ์ํธ(Symmetric Key Cryptography)์ ์์์ผํ๋ฉฐ, ์๋ก ๋ฌธ์๋ฅผ ์ฝ์ผ๋ฉด ์ดํด์ ๋์๋ ๊ฒ๋๋ค ์ํธํ ๊ธฐ์ด๋ ๋ฐฐ์ฐ์๊ณ ..
์ ๋ฆฌ
- HTTP(HyperText Transfer Protocol): ์น ์๋ฒ์ client๊ฐ ๋ฆฌ์์ค๋ฅผ ๊ตํ์ ์ฌ์ฉํ๋ ํ๋กํ ์ฝ.
ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ๋ฉด, ์๋ฒ๊ฐ ์๋ตํ๋ ๋ฐฉ์. - HTTP ๋ฉ์์ง: HTTP ์๋ฒ์ client๊ฐ ๊ตํํ๋ ๋ฐ์ดํฐ. ํค๋์ ๋ฐ๋๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ ์ค์ CRLF๋ก ๊ตฌ๋ถ๋จ.
- ํค๋: ๋ฉ์์ง์ ๋ํ ์ ๋ณด. ํค๋์ ๋์๋ CRLF*๊ฐ ํ ์ค ์์.
- ๋ฐ๋: ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ, ๋๋ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํ ๋ฐ์ดํฐ
- *CRLF(์ค๋ฐ๊ฟ), EOL(end-of-line) ๋ฑ์ผ๋ก ์ง์นญํ๋ฉฐ ํต์ฉ๋จ
- HTTP ์์ฒญ(Request): ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ํน์ ๋์์ ์์ฒญํ๋ ๋ฉ์์ง
- ๋ฉ์๋(Method): ์์ฒญ URI๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฆฌ์์ค์ ๋ํด, ์๋ฒ๊ฐ ์ํํ์ผ๋ฉด ํ๋ ๋์์ ์ง์
- ์์ฒญ URI(Request-URI): ๋ฉ์๋์ ๋์์ด ๋๋ ๋ฆฌ์์ค๋ฅผ ์ง์
- HTTP ์๋ต(Response): ์์ฒญ์ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ ๋ฐ ์ด์ , ํด๋ผ์ด์ธํธ์ ์ ์ก ์น ๋ฆฌ์์ค๋ฅผ ํฌํจํ ๋ฉ์์ง
- ์ํ ์ฝ๋(Status Code): ์์ฒญ์ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ
- ์ฒ๋ฆฌ ์ฌ์ (Reason Phrase): ์ํ ์ฝ๋๊ฐ ๋ฐ์ํ ์ด์
- HTTPS(HTTP on Secure socket layer): TLS๋ฅผ ์ด์ฉํ์ฌ HTTP์ ์ฝ์ ์ ๋ณด์ํ ํ๋กํ ์ฝ
์ฐธ๊ณ ์๋ฃ
์ฐธ๊ณ ์ด๋ฏธ์ง
'๐โWeb_Study > ๐โDreamhack_Hacking' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SQL Injection (0) | 2022.10.20 |
---|---|
ClientSide: CSRF (0) | 2022.06.23 |
ClientSide: XSS (0) | 2022.06.21 |
Mitigation: Same Origin Policy (0) | 2022.06.20 |