[LOS] Assassin ํ’€์ด(15)

15 ๋ฒˆ์งธ ๋ฌธ์ œ์ธ "assassin"์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ "$_GET[pw]" ๋ผ๋Š” ๋ณ€์ˆ˜์— ์ฟผ๋ฆฌ๋ฌธ์„ ์ž…๋ ฅ๋ฐ›์•„ ์‹คํ–‰๋˜๋Š” ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. if(preg_match('/\'/i', $_GET[pw])) exit("No Hack ~_~"); ์ž…๋ ฅ๊ฐ’์„ ๊ฒ€์ฆํ•˜๋Š” ๋ถ€๋ถ„์ธ "preg_match" ํ•จ์ˆ˜๋ฅผ ๋ณด๋ฉด ์‹ฑ๊ธ€์ฟผํ„ฐ๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("assassin"); ์–ด์Ž„์‹  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„  ์ž…๋ ฅ๋ฐ›์€ pw์˜ ๊ฐ’์ด "admin" ๊ณ„์ •์ด์–ด์•ผ ํ•œ๋‹ค๋Š”๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ƒ๋‹จ์˜ ์ฟผ๋ฆฌ๋ฌธ์„ ๋ณด๋ฉด =(๋“ฑํ˜ธ) ๋Œ€์‹  " like " ๊ตฌ๋ฌธ์„ ์“ฐ๊ณ  ์žˆ๋„ค์š” *like๋Š” ..

CHALLENGE
XSS Challenges 6

์ „ ๋‹จ๊ณ„์—์„œ์˜ ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•ด ๋ณธ ๊ฒฐ๊ณผ ํŒ์—…์ฐฝ์ด ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ์†Œ์Šค๋ฅผ ํ™•์ธํ•ด์„œ ๊ฒ€์ฆ๋˜๊ณ  ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด ๋ณธ ๊ฒฐ๊ณผ ์ด๋ฒˆ์—๋Š” "(๋”๋ธ” ์ฟผํ„ฐ)๋ฅผ --> ์ •๊ทœํ‘œํ˜„์‹์œผ๋กœ ์น˜ํ™˜ํ•˜์—ฌ ์˜๋ฏธ ์—†๋Š” ๋ฌธ์žฅ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  (๊บฝ์‡ ) ์กฐ์ฐจ ์น˜ํ™˜ํ•˜๊ณ  ์žˆ์–ด์„œ ์ด๋ฒˆ์—๋Š” ์ถ”๊ฐ€์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€์˜ ์šฐํšŒ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด๋ด์•ผ ๋ฉ๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 1. '"(์‹ฑ๊ธ€์ฟผํ„ฐ ์™€ ๋”๋ธ” ์ฟผํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€?) 2. ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•ด์ค๋‹ˆ๋‹ค. g -> 103 u -> 117 l -> 108 e -> 101 u -> 117 m -> 109 ์„ฑ๊ณต์ ์œผ๋กœ '(์‹ฑ๊ธ€ ์ฟผํ„ฐ), "(๋”๋ธ” ์ฟผํ„ฐ), (๊บฝ์‡ ) ๊ฒ€์ฆ์„ ์šฐํšŒํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๊ณต์ ์œผ๋กœ ํŒ์—…์ฐฝ์„ ๋„์šด๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Exploit Code..

CHALLENGE
XSS Challenges 5-2

์ „๋‹จ ๊ณ„์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ URL์— ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›์•„ ํŒ์—…์ฐฝ์„ ๋„์šฐ๋„๋ก ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฒ€์ฆ์„ ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ „ ๋‹จ๊ณ„์—์„œ์˜ ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ํŽ˜์ด์ง€์˜ ์†Œ์Šค๋ฅผ ํ™•์ธํ•ด ๋ณธ ๊ฒฐ๊ณผ ์ด๋ฒˆ์—๋Š” '(์‹ฑ๊ธ€ ์ฟผํ„ฐ)๋ฅผ --> \' ํ˜•ํƒœ๋กœ ๋ฐฑ ์Šฌ๋ž˜์‹œ๋ฅผ ์ถ”๊ฐ€๋กœ ๋ถ™์—ฌ์„œ ๊ฒ€์ฆํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 1. "(๋”๋ธ”์ฟผํ„ฐ) 2. \(๋ฐฑ์Šฌ๋ž˜์‹œ ํ™œ์šฉ) ์šฐ์„  ('guleum') --> (\'guleum\')๋กœ ์น˜ํ™˜๋˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— '(์‹ฑ๊ธ€์ฟผํ„ฐ) --> "(๋”๋ธ”์ฟผํ„ฐ)๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์‚ฌ์šฉํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋‹ค์Œ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ์†Œ์Šค๋ฅผ ๋ณด์‹œ๋ฉด a ๋ณ€์ˆ˜์—๋Š” '(์‹ฑ๊ธ€ ์ฟผํ„ฐ)๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•˜๋‚˜๊ฐ€ ๋ถ™์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ซ์„ ๋•Œ๋„ '(์‹ฑ๊ธ€ ์ฟผํ„ฐ)๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฌถ์–ด์ค˜์•ผ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿด ๋•Œ๋Š” \(๋ฐฑ ์Šฌ๋ž˜์‹œ)๋ฅผ '\' ์‹ฑ๊ธ€ ์ฟผํ„ฐ๋กœ ๋ฌถ์–ด์ฃผ๋ฉด \(๋ฐฑ์Šฌ๋ž˜์‹œ)์— ์˜ํ•ด ..

CHALLENGE
XSS Challenges 5-1

์ „ ๋‹จ๊ณ„์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ ๋ณธ ๊ฒฐ๊ณผ ํŒ์—…์ฐฝ์„ ๋„์šฐ์ง€ ๋ชปํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ „ ๋‹จ๊ณ„๋“ค๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์ž…๋ ฅ๋˜๋Š” ํผ์ด ์กด์žฌํ•˜์ง€ ์•Š๊ณ  DOM ๋ฐฉ์‹์˜ ํ˜•ํƒœ๋กœ URL ์ž…๋ ฅ์ฐฝ์— ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•จ์œผ๋กœ์จ ํŒ์—…์ฐฝ์„ ์‹คํ–‰์‹œํ‚ค๋„๋ก ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ์†Œ์Šค๋ฅผ ํ™•์ธํ•ด๋ณด๋‹ˆ ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ ์•ˆ์— ์ ์ ˆํ•œ ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•ด์•ผ๋งŒ ํŒ์—…์ฐฝ์ด ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ธˆ์€ ๊ณ ๋ฏผํ•ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 1. ;(์„ธ๋ฏธ์ฝœ๋ก ) 2. ์ฃผ์„ ์šฐ์„  javascript ์—์„œ ;(์„ธ๋ฏธ์ฝœ๋ก )์€ ๋ช…๋ น์ด ๋๋‚ฌ๋‹ค๋Š”๊ฒƒ์„ ๋ช…์‹œ์ ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์ค๋‹ˆ๋‹ค. ์ฆ‰ ์„ธ๋ฏธ์ฝœ๋ก  ์—†์ด a=''alert('guleum') ํ˜•ํƒœ๋กœ ์ž…๋ ฅ๋˜๋ฉด "a" ๋ผ๋Š” ๋ณ€์ˆ˜์™€ "alert" ๊ทธ๋ฆฌ๊ณ  ์ดํ›„์˜ ์ฝ”๋“œ๊ฐ€ ๊ตฌ๋ถ„๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์ผ a='';alert('guleum'); ํ˜•์‹์œผ๋กœ ์ค‘๊ฐ„์—..

CHALLENGE