-
Webhacking.kr :: old-58๋ฒSECURITY/Webhacking 2021. 2. 2. 15:44
์ฒ์์ ๋ญ๊ฐ ๋ก๋ฉ์ค์ธ๊ฐ ํ๋๋ฐ ๋ฐ์ ์์๋ค.
๊ทธ๋ฅ ๋ฌด์์ send ๋ฅผ ๋๋ฌ๋ณด๋,
์ด๊ฒ ๋ฌ๋ค. command injection ์ธ ๊ฒ ๊ฐ๋ค.
script ๋ฅผ ํ์ธํด๋ณด์.
socket io ๋ก ์๋ฒ์ ์ก์์ ํ๋ ๊ฒ์ด ๊ตฌํ๋์ด ์๋ค.
socket.emit('Event', data); :: ์ ์ก
socket.on('Event', function(data)); :: ์์
์ฆ, socket.emit ์ผ๋ก cmd ๋ก username:[input] ์ ์คํํ๋๋ก ํ๋ ๊ฒ์ด๋ค. (input ์์ id ๊ฐ m ์ด๋ค.)
๊ทธ๋ฆฌ๊ณ ๊ทธ ํต์ ์ผ๋ก ๋ฐ์์จ data ๋ฅผ message ์ append ํด์ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด๋ค.
์ ์ผ๋จ ls ๋ฅผ ์ ๋ ฅํด๋ณด๋ฉด, ๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ๋ค.
index.js ์ temp.html ์ด ์๋ค..
flag ๋ฅผ ์ ๋ ฅํ๋ admin only ๊ฐ ๋ฌ๋ค.
์์ script ์์ socket ์ผ๋ก data ๋ฅผ ๋ณด๋ผ ๋ username ์ด guest ๋ก ๋์ด์์ด์ flag ๋ฅผ ๋ณผ ์ ์๋ ์ํฉ์ธ๋ฏ.
๊ทธ๋ ๋ค๋ฉด username ์ admin ์ผ๋ก ํด์ ๋ณด๋ด์ฃผ๋ฉด ๋๋ค.
์๋ script ์ฝ๋๋ฅผ ๋ณต์ฌํด์ username ์ admin ์ผ๋ก ๋ฐ๊ฟ์ฃผ๊ณ console ์ ์ ๋ ฅํด์ค๋ค.
๊ทธ๋ฌ๋ฉด ์ฌ์ฉ์๊ฐ send ๋ฅผ ๋๋ฅด๋ฉด ๊ธฐ์กด์ ์ ์๋ ํจ์๋ ์คํ๋์ง๋ง, ๋ด๊ฐ ์ ์ํ ํจ์๋ ์คํ๋๋ค.
๊ทผ๋ฐ ๋๋ admin ์ผ๋ก ๋ฐ๊ฟ ์ฃผ์์ผ๋, flag ์ ์ ๋ ฅํ๊ณ send ํ๋ฉด
๊ธฐ์กด์ ํจ์๋ admin only ๋ฅผ ์ถ๋ ฅํ์ง๋ง, ์๋ก ์ ์ํ ํจ์๋ฅผ ํตํด FLAG ๋ฅผ ์ป์ ์ ์๋ค~
๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ๋ค. ์ฌ๊ธฐ์ ๋์จ flag ๋ฅผ Auth ์ ์ ๋ ฅํด์ฃผ๋ฉด ๋!
'SECURITY > Webhacking' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Webhacking.kr :: old-23๋ฒ (0) 2021.02.15 Webhacking.kr :: old-42๋ฒ (0) 2021.02.02 Webhacking.kr :: old-47๋ฒ (0) 2021.02.02 Webhacking.kr :: old-32๋ฒ (0) 2021.02.02 Webhacking.kr :: old-25๋ฒ (0) 2021.02.02