ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

WEB

[WEB] SSRF(Server Side Request Forgery)์— ๋Œ€ํ•ด์„œ

SSRF Server Side Request Forgery 0. Background Knowledge SSRF ์ทจ์•ฝ์ ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ request๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•˜๋Š” ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค. SSRF ์ทจ์•ฝ์ ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ธฐ ์ „์—, ๊ธฐ๋ณธ์ ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ request๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค. ์ž˜ ์„ค๋ช…๋˜์–ด์žˆ๋Š” ๊ทธ๋ฆผ์ด ์—†์–ด์„œ ์•„์˜ˆ SSRF ์‚ฌ์ง„์„ ๋“ค๊ณ ์™€๋ฒ„๋ ธ๋Š”๋ฐ, ์–ด์ฐจํ”ผ ์„ค๋ช…ํ•˜๋Š” ๋ฐ”์™€ ์ ํ•ฉํ•ด์„œ ๊ฑ ์ด๊ฑธ ์“ฐ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ฌดํŠผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„œ๋น„์Šค๋Š” ๋ˆ„๊ตฌ๋‚˜ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” web server์™€, ์ธ๊ฐ€๋œ ์†Œ์ˆ˜์˜ ์ธ์›๋“ค๋งŒ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” DB server๊ฐ€ ๋ณดํ†ต ๊ตฌ๋ถ„๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ์œ„ ๊ทธ๋ฆผ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์™ธ๋ถ€์ธ์ด ์ •๋ณด๋ฅผ ์š”๊ตฌํ•œ๋‹ค๋ฉด web server์™€ db server๊ฐ€ ํ†ต์‹ ์„ ํ•˜์—ฌ ๊ทธ ๊ฒฐ๊ณผ, ์ฆ‰ r..

2021.08.09 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

WEB

[WEB] XXE(XML External Entity) ์ทจ์•ฝ์ 

XXE XML External Entity 0. ๋ฐฐ๊ฒฝ์ง€์‹ XXE์ทจ์•ฝ์ ์€ ์ด๋ฆ„์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด XML์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ XXE์— ๋Œ€ํ•ด ๋…ผํ•˜๊ธฐ ์ „์— XML์— ๋Œ€ํ•ด์„œ ์กฐ๊ธˆ ์•Œ์•„๋ด…์‹œ๋‹ค. XML์€ Extensible Markup Language์˜ ์ค„์ž„๋ง๋กœ, ํ™•์žฅ๋œ Markup Language์ •๋„๋กœ ํ•ด์„์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ์ง์—ญ์ด๋ผ ์˜๋ฏธ๊ฐ€ ์žˆ๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒใ…Žใ…Ž ๋” ํŒŒ๊ณ ๋“ค์–ด ๋ด…์‹œ๋‹ค. ์šฐ์„  Markup Language๋Š” HTML๋กœ ์„ค๋ช…์ด ๊ฐ€๋Šฅํ•˜์ฃ . ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ๊ฐ€ HTML์ด๊ธฐ ๋•Œ๋ฌธ์—, HTML๊ณผ XML์„ ๋น„๊ตํ•˜์—ฌ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. HTML์—์„œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋‹ค์–‘ํ•œ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. head, body, div, a ๋“ฑ๋“ฑ ๋งŽ์€ ํƒœ๊ทธ๊ฐ€ ์กด์žฌํ•˜๊ธด ํ•˜์ง€๋งŒ, ์ด๋ฏธ ์ •ํ•ด์ง„ ํƒœ๊ทธ๋งŒ ์‚ฌ..

2021.08.06 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

WEB

[WEB] SSTI(Server Side Template Injection) ์ทจ์•ฝ์ 

SSTI Server Side Template Injection 0. ๋ฐฐ๊ฒฝ์ง€์‹ SSTI์— ๋Œ€ํ•ด์„œ ๋…ผํ•˜๊ธฐ ์ „์—, ๋จผ์ € ๊ธฐ๋ณธ์ ์œผ๋กœ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•  ์ง€์‹๋“ค์— ๋Œ€ํ•ด์„œ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„  Template์— ๋Œ€ํ•ด์„œ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์›นํŽ˜์ด์ง€๋Š” ์œ ์ €์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ์ •์  ์›นํŽ˜์ด์ง€์™€ ๋™์  ์›นํŽ˜์ด์ง€๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ๋‹น์—ฐํžˆ ๋™์  ์›นํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๋Š”๊ฒŒ ํ›จ์”ฌ ๋” ์ž์œ ๋„๊ฐ€ ๋†’๊ฒ ์ฃ ? ๋”ฐ๋ผ์„œ ๋Œ€๋ถ€๋ถ„์˜ ์›นํŽ˜์ด์ง€๊ฐ€ ๋™์  ์›นํŽ˜์ด์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ๋กœ ์›นํŽ˜์ด์ง€๋Š” HTML, CSS, JavaScript, PHP ๋“ฑ์˜ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์œ„ ์–ธ๊ธ‰ํ•œ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์  ์›นํŽ˜์ด์ง€๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ…œํ”Œ๋ฆฟ์ด๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ๊ฐ„ํŽธํ•˜๊ณ , ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ์›น ํ…œํ”Œ๋ฆฟ์˜ ์ข…๋ฅ˜๋Š” ์ •๋ง ๋งŽ์œผ๋ฉฐ, ๊ฐ..

2021.08.05 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

WEB

[Cloud] AWS IAM์— ๋Œ€ํ•˜์—ฌ

AWS IAM 1. AWS? AWS๋ž€ (Amazon Web Service) ์•„๋งˆ์กด์—์„œ ๊ฐœ๋ฐœํ•œ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์€ ๋‹จ์ˆœํžˆ ๋งํ•ด์„œ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด IT ๋ฆฌ์†Œ์Šค์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ผ์ข…์˜ ์ข…๋Ÿ‰ ๊ณผ๊ธˆ์ œ๋กœ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค์ด์ฃ . ์˜ค๋Š˜์€ AWS ์ž์ฒด์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋„ˆ๋ฌด ๊นŠ๊ฒŒ ์งš๊ณ  ๋„˜์–ด๊ฐ€์ง€๋Š” ์•Š๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋กœ ์งš๊ณ  ๋„˜์–ด๊ฐˆ ์ ์€ AWS๊ฐ€ ์••๋„์ ์œผ๋กœ ์ ์œ ์œจ์ด ๋†’๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. AWS์˜ ๊ธ€๋กœ๋ฒŒ ์ธํ”„๋ผ๊ฐ€ ํ˜„์žฌ ์ „์„ธ๊ณ„์— ์ด 24๊ฐœ์˜ ์ง€์—ญ(region)์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ œ๊ณต๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ์‹œ์žฅ์—์„œ๋„ ์ ์œ ์œจ 1์œ„๋ฅผ ๊ณ„์†ํ•ด์„œ ์œ ์ง€ํ•ด์˜ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. [1] 2. AWS IAM ํด๋ผ์šฐ๋“œ์˜ ๋ณด์•ˆ์„ ์ค‘์š”์‹œํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, ์•„๋ฌด๋ฆฌ ์„œ๋น„์Šค ์ž์ฒด์˜ ๋ณด..

2021.08.02 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

WEB

[SQLite fts3] fts3_tokenizer ์ทจ์•ฝ์ 

fts3_tokenizer 0. fts3_tokenizer์— ๋Œ€ํ•ด์„œ ์ผ๋‹จ ์ด ์นœ๊ตฌ๊ฐ€ ๋ญํ•˜๋Š” ์นœ๊ตฌ์ธ์ง€ ๋ด…์‹œ๋‹ค. FTS๋ž€ Full Text Search์˜ ์ค„์ž„๋ง๋กœ, ํšจ์œจ์ ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ๋ฌธ์„œ(ํŠนํžˆ ๋Œ€์šฉ๋Ÿ‰)์„ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์ƒ๋œ Table์ž…๋‹ˆ๋‹ค. ๋ฌด์‹ํ•˜๊ฒŒ ์ฐพ์œผ๋ฉด ์‹œ๊ฐ„์ด ๋ฌด์ง„์žฅ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋‹ˆ๊น ์ตœ๋Œ€ํ•œ ์ตœ์ ํ™”์‹œ์ผœ๋†“์€ ์‹œ์Šคํ…œ์ด๋ผ๊ณ  ๋ณด๋Š”๊ฒŒ ๊ฐ€์žฅ ํŽธํ•  ๊ฒƒ ๊ฐ™๋„ค์š”. ๊ทธ๋ž˜์„œ ๊ทธ ๊ฒ€์ƒ‰์„ ํŽธํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ ์ค‘ ํ•˜๋‚˜๊ฐ€ Tokenizers์ž…๋‹ˆ๋‹ค. Tokenizer๋Š” ๋ฌธ์žฅ์—์„œ ๋‹จ์–ด๋ฅผ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ž˜๋ผ๋‚ผ์ง€์— ๋Œ€ํ•œ ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต์€ ๋ฌธ์žฅ์—์„œ ๊ณต๋ฐฑ(' ')์„ ๊ธฐ์ค€์œผ๋กœ token์„ ๋งŒ๋“ค๊ฒ ์ง€๋งŒ ํŠน์ • ์–ธ์–ด์— ๋งž์ถ”์–ด์ง„ custom tokenizer๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” tokenizer๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค..

2021.07.27 ๊ฒŒ์‹œ๋จ