URL ๋ถˆ์ผ์น˜๋ฅผ ํ†ตํ•œ ์บ์‹œ ์˜ค์—ผ

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

์ด ๋ฌธ์„œ๋Š” ์บ์‹œ ํ”„๋ก์‹œ์™€ ์›น ์„œ๋ฒ„ ๊ฐ„์˜ ๋ถˆ์ผ์น˜๋ฅผ ์•…์šฉํ•˜์—ฌ ์บ์‹œ ์˜ค์—ผ ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ œ์•ˆ๋œ ๊ธฐ์ˆ ์˜ ์š”์•ฝ์ž…๋‹ˆ๋‹ค ์บ์‹œ ์˜ค์—ผ ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด.

Note

์ด ๊ณต๊ฒฉ์˜ ๋ชฉํ‘œ๋Š” ์บ์‹œ ์„œ๋ฒ„๊ฐ€ ์ •์  ๋ฆฌ์†Œ์Šค๊ฐ€ ๋กœ๋“œ๋˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์บ์‹œ ์„œ๋ฒ„๋Š” ๊ฒฝ๋กœ์˜ ์ผ๋ถ€๋ฅผ ์บ์‹œ ํ‚ค๋กœ ์ €์žฅํ•˜๋Š” ๋™์•ˆ ์บ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์›น ์„œ๋ฒ„๋Š” ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋ฅผ ํ•ด๊ฒฐํ•˜์—ฌ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ์›น ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž์˜ ๋ฏผ๊ฐํ•œ ์ •๋ณด, XSS์™€ ๊ฐ™์€ ์•…์„ฑ ํŽ˜์ด๋กœ๋“œ ๋˜๋Š” ๊ณต๊ฒฉ์ž์˜ ์›น์‚ฌ์ดํŠธ์—์„œ JS ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋Š” ๋™์  ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜๋Š” ์‹ค์ œ ๊ฒฝ๋กœ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ๋ถ„์ž

URL ๊ตฌ๋ถ„์ž๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์„œ๋ฒ„์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋ฉฐ, ์š”์ฒญ์ด ๋ผ์šฐํŒ…๋˜๊ณ  ์‘๋‹ต์ด ์ฒ˜๋ฆฌ๋˜๋Š” ๋ฐฉ์‹์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์›๋ณธ ๊ตฌ๋ถ„์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ์„ธ๋ฏธ์ฝœ๋ก : Spring์—์„œ ํ–‰๋ ฌ ๋ณ€์ˆ˜๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค (์˜ˆ: /hello;var=a/world;var1=b;var2=c โ†’ /hello/world).
  • ์ : Ruby on Rails์—์„œ ์‘๋‹ต ํ˜•์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: /MyAccount.css โ†’ /MyAccount).
  • ๋„ ๋ฐ”์ดํŠธ: OpenLiteSpeed์—์„œ ๊ฒฝ๋กœ๋ฅผ ์ž˜๋ผ๋ƒ…๋‹ˆ๋‹ค (์˜ˆ: /MyAccount%00aaa โ†’ /MyAccount).
  • ์ƒˆ ์ค„ ๋ฐ”์ดํŠธ: Nginx์—์„œ URL ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: /users/MyAccount%0aaaa โ†’ /account/MyAccount).

์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋”ฐ๋ผ ๋‹ค๋ฅธ ํŠน์ • ๊ตฌ๋ถ„์ž๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • 1๋‹จ๊ณ„: ์บ์‹œํ•  ์ˆ˜ ์—†๋Š” ์š”์ฒญ์„ ์‹๋ณ„ํ•˜๊ณ  ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž ์žฌ์ ์ธ ๊ตฌ๋ถ„์ž๊ฐ€ ์žˆ๋Š” URL์ด ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋Š”์ง€ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.
  • 2๋‹จ๊ณ„: ๊ฒฝ๋กœ์— ๋ฌด์ž‘์œ„ ์ ‘๋ฏธ์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ๋น„๊ตํ•˜์—ฌ ๋ฌธ์ž๊ฐ€ ๊ตฌ๋ถ„์ž๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • 3๋‹จ๊ณ„: ๋ฌด์ž‘์œ„ ์ ‘๋ฏธ์‚ฌ ์•ž์— ์ž ์žฌ์ ์ธ ๊ตฌ๋ถ„์ž๋ฅผ ๋„์ž…ํ•˜์—ฌ ์‘๋‹ต์ด ๋ณ€๊ฒฝ๋˜๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ๊ตฌ๋ถ„์ž ์‚ฌ์šฉ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์ •๊ทœํ™” ๋ฐ ์ธ์ฝ”๋”ฉ

  • ๋ชฉ์ : ์บ์‹œ ๋ฐ ์›๋ณธ ์„œ๋ฒ„์˜ URL ํŒŒ์„œ๋Š” ์—”๋“œํฌ์ธํŠธ ๋งคํ•‘ ๋ฐ ์บ์‹œ ํ‚ค๋ฅผ ์œ„ํ•ด ๊ฒฝ๋กœ๋ฅผ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด URL์„ ์ •๊ทœํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ํ”„๋กœ์„ธ์Šค: ๊ฒฝ๋กœ ๊ตฌ๋ถ„์ž๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ๋ฌธ์ž๋ฅผ ๋””์ฝ”๋”ฉํ•˜๊ณ  ์  ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๊ฒฝ๋กœ๋ฅผ ์ถ”์ถœํ•˜๊ณ  ์ •๊ทœํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ธ์ฝ”๋”ฉ

Nginx, Node ๋ฐ CloudFront์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ HTTP ์„œ๋ฒ„ ๋ฐ ํ”„๋ก์‹œ๋Š” ๊ตฌ๋ถ„์ž๋ฅผ ๋‹ค๋ฅด๊ฒŒ ๋””์ฝ”๋”ฉํ•˜์—ฌ CDNs ๋ฐ ์›๋ณธ ์„œ๋ฒ„ ๊ฐ„์˜ ๋ถˆ์ผ์น˜๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์›น ์„œ๋ฒ„๊ฐ€ ์ด ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ /myAccount%3Fparam โ†’ /myAccount?param์ด์ง€๋งŒ ์บ์‹œ ์„œ๋ฒ„๋Š” ๊ฒฝ๋กœ /myAccount%3Fparam์„ ํ‚ค๋กœ ์œ ์ง€ํ•˜๋ฉด ๋ถˆ์ผ์น˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ถˆ์ผ์น˜๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ฒฝ๋กœ๋ฅผ ์ธ์ฝ”๋”ฉ ์—†์ด ๋กœ๋“œํ•œ ํ›„ ๋‹ค์–‘ํ•œ ๋ฌธ์ž๋ฅผ URL ์ธ์ฝ”๋”ฉํ•˜์—ฌ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์ธ์ฝ”๋”ฉ๋œ ๊ฒฝ๋กœ ์‘๋‹ต์ด ์บ์‹œ๋œ ์‘๋‹ต์—์„œ ์˜จ ๊ฒƒ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์  ์„ธ๊ทธ๋จผํŠธ

์ ์ด ํฌํ•จ๋œ ๊ฒฝ๋กœ ์ •๊ทœํ™”๋Š” ์บ์‹œ ์˜ค์—ผ ๊ณต๊ฒฉ์— ๋งค์šฐ ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, /static/../home/index ๋˜๋Š” /aaa..\home/index์™€ ๊ฐ™์€ ๊ฒฝ์šฐ, ์ผ๋ถ€ ์บ์‹œ ์„œ๋ฒ„๋Š” ์ด๋Ÿฌํ•œ ๊ฒฝ๋กœ๋ฅผ ํ‚ค๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์บ์‹œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ์„œ๋ฒ„๋Š” ๊ฒฝ๋กœ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  /home/index๋ฅผ ์บ์‹œ ํ‚ค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด์ „๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์ด ์บ์‹œ์—์„œ ์ˆ˜์ง‘๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ฉด /home/index์— ๋Œ€ํ•œ ์‘๋‹ต์ด ์ด๋Ÿฌํ•œ ๊ฒฝ๋กœ๊ฐ€ ์š”์ฒญ๋  ๋•Œ ์ „์†ก๋œ ์‘๋‹ต์ธ์ง€ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์ •์  ๋ฆฌ์†Œ์Šค

์—ฌ๋Ÿฌ ์บ์‹œ ์„œ๋ฒ„๋Š” ์‘๋‹ต์ด ์ •์ ์ด๋ผ๊ณ  ์‹๋ณ„๋˜๋ฉด ํ•ญ์ƒ ์บ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ํ™•์žฅ์ž: Cloudflare๋Š” ๋‹ค์Œ ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ ํŒŒ์ผ์„ ํ•ญ์ƒ ์บ์‹œํ•ฉ๋‹ˆ๋‹ค: 7z, csv, gif, midi, png, tif, zip, avi, doc, gz, mkv, ppt, tiff, zst, avif, docx, ico, mp3, pptx, ttf, apk, dmg, iso, mp4, ps, webm, bin, ejs, jar, ogg, rar, webp, bmp, eot, jpg, otf, svg, woff, bz2, eps, jpeg, pdf, svgz, woff2, class, exe, js, pict, swf, xls, css, flac, mid, pls, tar, xlsx
  • ๊ตฌ๋ถ„์ž์™€ ์ •์  ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์  ์‘๋‹ต์„ ์บ์‹œํ•˜๋„๋ก ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด /home$image.png์— ๋Œ€ํ•œ ์š”์ฒญ์€ /home$image.png๋ฅผ ์บ์‹œํ•˜๊ณ  ์›๋ณธ ์„œ๋ฒ„๋Š” /home์œผ๋กœ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.
  • ์ž˜ ์•Œ๋ ค์ง„ ์ •์  ๋””๋ ‰ํ† ๋ฆฌ: ๋‹ค์Œ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ์ •์  ํŒŒ์ผ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๊ทธ ์‘๋‹ต์€ ์บ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค: /static, /assets, /wp-content, /media, /templates, /public, /shared
  • ๊ตฌ๋ถ„์ž, ์ •์  ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ ์ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์  ์‘๋‹ต์„ ์บ์‹œํ•˜๋„๋ก ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด /home/..%2fstatic/something์€ /static/something์„ ์บ์‹œํ•˜๊ณ  ์‘๋‹ต์€ /home์ด ๋ฉ๋‹ˆ๋‹ค.
  • ์ •์  ๋””๋ ‰ํ† ๋ฆฌ + ์ : /static/..%2Fhome ๋˜๋Š” /static/..%5Chome์— ๋Œ€ํ•œ ์š”์ฒญ์€ ๊ทธ๋Œ€๋กœ ์บ์‹œ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์‘๋‹ต์€ /home์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ •์  ํŒŒ์ผ: /robots.txt, /favicon.ico, /index.html๊ณผ ๊ฐ™์€ ํŠน์ • ํŒŒ์ผ์€ ํ•ญ์ƒ ์บ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” /home/..%2Frobots.txt์™€ ๊ฐ™์ด ์•…์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์บ์‹œ๋Š” /robots.txt๋ฅผ ์ €์žฅํ•˜๊ณ  ์›๋ณธ ์„œ๋ฒ„๋Š” /home์— ์‘๋‹ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ