XXE ์ทจ์•ฝ์ 
ยท
Study/WebHacking
๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
Padding Oracle ์ทจ์•ฝ์ 
ยท
Study/WebHacking
1. ํŒจ๋”ฉ ์˜ค๋ผํด ์ทจ์•ฝ์ ์ด๋ž€? (1) Padding์ด๋ž€? ํŒจ๋”ฉ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ธ”๋ก ํฌ๊ธฐ์— ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ”์ดํŠธ์ด๋‹ค. ๋ธ”๋ก ์•”ํ˜ธํ™”๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์ •ํ•œ ํฌ๊ธฐ(์˜ˆ: 16๋ฐ”์ดํŠธ)์˜ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ„์–ด ์•”ํ˜ธํ™”ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.ํ•˜์ง€๋งŒ ์•”ํ˜ธํ™”ํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ(=ํ‰๋ฌธ)๊ฐ€ ๋ธ”๋ก ํฌ๊ธฐ์˜ ๋ฐฐ์ˆ˜๊ฐ€ ์•„๋‹ ์ˆ˜ ์žˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, 19๋ฐ”์ดํŠธ ๋ฉ”์‹œ์ง€๋ฅผ 16๋ฐ”์ดํŠธ ๋ธ”๋ก์œผ๋กœ ์•”ํ˜ธํ™”ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?๋ฐ”๋กœ ์ด๋•Œ ํŒจ๋”ฉ(padding)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. (2) oracle์ด๋ž€ ?์˜ค๋ผํด์€ ์–ด๋–ค ์งˆ๋ฌธ์— ๋Œ€ํ•ด ์ฐธ(True) ๋˜๋Š” ๊ฑฐ์ง“(False) ๊ฐ™์€ ํ”ผ๋“œ๋ฐฑ์ด๋‚˜ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์‹œ์Šคํ…œ์„ ์˜๋ฏธํ•œ๋‹ค.์ฆ‰, ๊ณต๊ฒฉ์ž๊ฐ€ ์–ด๋–ค ์ž…๋ ฅ์„ ์ฃผ์—ˆ์„ ๋•Œ ์‹œ์Šคํ…œ์ด ๊ทธ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. (์˜ค๋ผํด ํšŒ์‚ฌ์™€ ์ „ํ˜€ ์ƒ๊ด€์—†๋Š” ์šฉ์–ด) ๋”ฐ๋ผ์„œ, ..
[ํŒŒ์ด์ฌ] pickle module (Deserialize ์ทจ์•ฝ์ )
ยท
Study/WebHacking
1. Serialization & DeserializationํŒŒ์ด์ฌ์˜ pickle ๋ชจ๋“ˆ์€ ๊ฐ์ฒด ๊ตฌ์กฐ์˜ ์ง๋ ฌํ™”(serialization)์™€ ์—ญ์ง๋ ฌํ™”(deserialization)๋ฅผ ์œ„ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด, pickle ๋ชจ๋“ˆ์€ ํŒŒ์ด์ฌ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ๋ณ€ํ™˜ํ•˜๊ณ , ๋‹ค์‹œ ๊ทธ ๊ฐ์ฒด๋กœ ๋ณต์›ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ์ด๋‹ค.serialization : ํŒŒ์ด์ฌ ๊ฐ์ฒด ๊ณ„์ธต ๊ตฌ์กฐ -> ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ = picklingdeserialize : ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ -> ํŒŒ์ด์ฌ ๊ฐ์ฒด ๊ณ„์ธต ๊ตฌ์กฐ  = unpickling์ฆ‰, ์ง๋ ฌํ™”๋ฅผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ/DB์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ์„ธ์…˜์— ๊ฑธ์ณ ํ”„๋กœ๊ทธ๋žจ์„ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜, ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.  2. Pickle ..
[PHP] strcmp ํ•จ์ˆ˜ ์ทจ์•ฝ์ 
ยท
Study/WebHacking
strcmp ํ•จ์ˆ˜ ์ž์ฒด๋Š” PHP์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.PHP์—์„œ strcmp ํ•จ์ˆ˜๋Š” ๋‘ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜์—ฌ ๊ฐ™์œผ๋ฉด 0์„, ๋‹ค๋ฅด๋ฉด 0์ด ์•„๋‹Œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.(strcmp($a, $b) ๋ฅผ ์‹คํ–‰ ํ•  ๋•Œ, $a๊ฐ€ ์ž‘์œผ๋ฉด ์Œ์ˆ˜, $b๊ฐ€ ์ž‘์œผ๋ฉด ์–‘์ˆ˜, ๊ทธ๋ฆฌ๊ณ  $a์™€ $b๊ฐ€ ๊ฐ™์œผ๋ฉด 0 ์ด ๋ฐ˜ํ™˜)์ด ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์˜ ๊ฐ’๊ณผ ํƒ€์ž…์„ ์—„๊ฒฉํ•˜๊ฒŒ(strict) ๋น„๊ตํ•œ๋‹ค. ํ•˜์ง€๋งŒ strcmp๋Š” ์ธ์ž๊ฐ’์œผ๋กœ ๋ฌธ์ž์—ด์ด ๋“ค์–ด์˜ค์ง€ ์•Š์„ ๊ฒฝ์šฐ(๋ฐฐ์—ด๋กœ ์ธ์ž๊ฐ’์„ ์ฃผ๊ฒŒ ๋  ๊ฒฝ์šฐ), NULL์„ ์ถœ๋ ฅํ•˜๋Š” ์ทจ์•ฝ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์˜ˆ์ œ GET ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ์„ ๋ฐ›์•„ admin์ธ์ง€ ์•„๋‹Œ์ง€ ํ™•์ธํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•  ๋•Œ,test = 1์„ ์ฃผ๋ฉด no๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๊ณ  test=admin์„ ์ž…๋ ฅํ•˜๋ฉด yes๋ฅผ ์ถœ๋ ฅํ•  ๊ฒƒ์ด๋‹ค.  (php 7.1 ๋ฒ„์ „์—์„œ ํ…Œ..
[PHP] Type Juggling ์ทจ์•ฝ์ 
ยท
Study/WebHacking
PHP๋Š” ๋น„๊ต ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด == ์—ฐ์‚ฐ์ž์™€  === ์—ฐ์‚ฐ์ž๋ฅผ ์ง€์›ํ•œ๋‹ค.์ด๋•Œ, PHP๋Š” ๋‘ ๊ฐ’์„ ๋น„๊ตํ•˜๊ธฐ ์ „์— ํ•„์š”์— ๋”ฐ๋ผ ํƒ€์ž…์„ ๋ณ€ํ™˜ํ•œ๋‹ค.์ด๋Ÿฌํ•œ ๋ณ€ํ™˜์€ ์˜๋„ํ•˜์ง€ ์•Š์€ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜์—ฌ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. loose (๋Š์Šจํ•œ) ๋น„๊ต ==     vs    strict (์—„๊ฒฉํ•œ) ๋น„๊ต === ==: ๋‘ ๊ฐ’์˜ ํƒ€์ž…์ด ๋‹ค๋ฅด๋ฉด ํƒ€์ž…์„ ๋ณ€ํ™˜ํ•œ ํ›„ ๋น„๊ต (์ฆ‰, ๊ฐ’๋งŒ ๋น„๊ต)===: ๋‘ ๊ฐ’์˜ ํƒ€์ž…๊ณผ ๊ฐ’ ๋ชจ๋‘ ๊ฐ™์•„์•ผ TRUE ๋ฆฌํ„ด ๊ธฐ๋ณธ ์˜ˆ์ œ var_dump(0 == '0'); // truevar_dump(0 == '0.0'); // truevar_dump(0 == ''); // truevar_dump(0 == null); // truevar_dump(0 == 'string'); // true (PHP..
CSP ์šฐํšŒ
ยท
Study/WebHacking
1. CSP CSP (์ฝ˜ํ…์ธ  ๋ณด์•ˆ ์ •์ฑ…Content Security Policy)๋Š” XSS, clickjacking์ด๋‚˜ ๋ฐ์ดํ„ฐ ์ฃผ์ž…๊ณผ ๊ฐ™์€ ํŠน์ • ์›น์‚ฌ์ดํŠธ ๊ด€๋ จ ๊ณต๊ฒฉ์„ ํƒ์ง€ ํ•˜๊ฑฐ๋‚˜ ์™„ํ™” ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. CSP๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด Content-Security-Policy HTTP ํ—ค๋”๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์›น ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค. Content-Security-Policy-Report-Only: policy +) Content-Security-Policy-Report-Only ํ—ค๋”์™€ Content-Security-Policy ํ—ค๋”๊ฐ€ ๋ชจ๋‘ ๋™์ผํ•œ ์‘๋‹ต์— ์žˆ์œผ๋ฉด, ๋‘ ์ •์ฑ…์€ ๋ชจ๋‘ ์ ์šฉ๋จ. ์ฆ‰, ๋‘˜๋‹ค ์„ค์ •ํ•˜๋ฉด ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ ์š”์ฒญ์ด ๋ณด๋‚ด์ง€์ง€๋„ ์•Š๊ณ  ๋ณด๊ณ ์„œ๋„ ๋ณด๋‚ด์ง. (๋ณด์•ˆ ๊ฐ•ํ™”์˜ ํšจ๊ณผ)  ํƒœ๊ทธ๋ฅผ ํ†ตํ•ด ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ..
[์ทจ์•ฝ์ ] Relative Path Overwrite
ยท
Study/WebHacking
Relative Path Overwrite (RPO)Relative Path Overwrite (RPO)๋Š”  ์ƒ๋Œ€ ๊ฒฝ๋กœ์˜ URL์„ ๋ฎ์–ด์จ์„œ ์˜๋„ํ•˜์ง€ ์•Š์€ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•์ด๋‹ค.์„œ๋ฒ„์™€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ƒ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ํ•ด์„ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ฐจ์ด์ ์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.  Relative Path Confusion์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค.  RPO๋ฅผ ์›น์—์„œ ์ด์•ผ๊ธฐํ•  ๋• link, script ๋“ฑ resource๋ฅผ ์ฝ์–ด์˜ค๋Š” ๊ณผ์ •์—์„œ Host๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์€ URL์„ Relative URL์ด๋ผ๊ณ  ํ•˜๊ณ , ์ด๋ฅผ Overwriteํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์— resource์˜ ์ฃผ์†Œ ๋“ฑ์„ ์กฐ์ž‘ํ•˜์—ฌ ๊ณต๊ฒฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์•ก์…˜์œผ๋กœ ์œ ๋„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. (๋Œ€ํ‘œ์ ์œผ๋กœ XSS) Path Description ExampleAbsolute URL Hos..
[์ทจ์•ฝ์ ] CSS Injection
ยท
Study/WebHacking
Cascading Style Sheet (CSS)๋Š” HTML๋กœ ์ •์˜๋œ ๋ฌธ์„œ๋ฅผ ๋‹ค์ฑ„๋กญ๊ฒŒ ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.๊ฐœ๋ฐœ์ž๋Š” CSS๋กœ HTML ์š”์†Œ๋“ค์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ป๊ฒŒ ๋ณด์—ฌ์งˆ์ง€ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์„œ์˜ ๋ฐฐ๊ฒฝ ์‚ฌ์ง„, ์ƒ‰์ƒ์„ ๋น„๋กฏํ•ด ๋ฒ„ํŠผ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ค๋‘์—ˆ์„ ๋•Œ ์–ด๋–ค ์ƒ‰์ƒ๊ณผ ์†๋„๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ‘œํ˜„์— ์‚ฌ์šฉ๋  ์ž„์˜์˜ CSS ์ฝ”๋“œ๋ฅผ ์ฃผ์ž…์‹œ์ผœ ์˜๋„ํ•˜์ง€ ์•Š์€ ์†์„ฑ์ด ์ •์˜๋˜๋Š” ๊ฒƒ์„ CSS Injection์ด๋ผ๊ณ  ํ•œ๋‹ค. CSS Injection์€ XSS์™€ ๋น„์Šทํ•˜๊ฒŒ ์›น ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‹œ ์•…์˜์ ์ธ ๋ฌธ์ž์—ด์„ ์‚ฝ์ž…ํ•˜์—ฌ ์•…์˜์ ์ธ ๋™์ž‘์„ ์ด๋„๋Š” ๊ณต๊ฒฉ์ด๋‹ค.๊ณต๊ฒฉ์ž๊ฐ€ ์ž„์˜ CSS ์†์„ฑ์„ ์‚ฝ์ž…ํ•ด ์›นํŽ˜์ด์ง€์˜ UI (์ƒ๊น€์ƒˆ)๋ฅผ ๋ณ€์กฐํ•˜๊ฑฐ๋‚˜ CSS ์†์„ฑ์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์›น ํŽ˜์ด์ง€๋‚ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์™ธ๋ถ€๋กœ ํ›”์น  ์ˆ˜ ์žˆ๋‹ค.์ด๋•Œ CSS Injection์„..
[์ทจ์•ฝ์ ] SSRF
ยท
Study/WebHacking
1. CSRF vs SSRF ์„œ๋น„์Šค ๊ฐ„ HTTP ํ†ต์‹ ์ด ์ด๋ค„์งˆ ๋•Œ ์š”์ฒญ ๋‚ด์— ์ด์šฉ์ž์˜ ์ž…๋ ฅ๊ฐ’์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋•Œ ์ด์šฉ์ž์˜ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ์ธํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„ํ•˜์ง€ ์•Š์€ ์š”์ฒญ์ด ์ „์†ก๋  ์ˆ˜ ์žˆ๋‹ค. Server-side Request Forgery(SSRF)๋Š” ์›น ์„œ๋น„์Šค์˜ ์š”์ฒญ์„ ๋ณ€์กฐํ•˜๋Š” ์ทจ์•ฝ์ ์œผ๋กœ, ์„œ๋ฒ„ ์ธก์—์„œ ์œ„์กฐ๋œ HTTP ์š”์ฒญ์„ ๋ฐœ์ƒ์‹œ์ผœ ์ง์ ‘์ ์ธ ์ ‘๊ทผ์ด ์ œํ•œ๋œ ์„œ๋ฒ„ ๋‚ด๋ถ€ ์ž์›์— ์ ‘๊ทผํ•˜์—ฌ ์™ธ๋ถ€๋กœ ๋ฐ์ดํ„ฐ ์œ ์ถœ ๋ฐ ์˜ค๋™์ž‘์„ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ณต๊ฒฉํ˜•ํƒœ๋งŒ ๋ณด๋ฉด ์œ„์กฐ๋œ HTTP ์š”์ฒญ(Request Forgery)๋ฅผ ์ด์šฉํ•œ ๊ณต๊ฒฉ์ด๊ธฐ ๋•Œ๋ฌธ์— CSRF(Cross Site Request Forgery)์™€ ์œ ์‚ฌํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์œผ๋‚˜ ๊ณต๊ฒฉ์ž์˜ ๊ณต๊ฒฉ์ด ๋ฐœํ˜„๋˜๋Š” ์ง€์ ์ด ์„œ๋ฒ„ ์ธก(Server Side)์ธ์ง€ ํด๋ผ์ด์–ธํŠธ ์ธก(Clien..
[์ทจ์•ฝ์ ] SQL Injection
ยท
Study/WebHacking
๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
mnzy๐ŸŒฑ
-->