์ด๋ฒ ํฌ์คํ
์ 'Broken Auth. - Insecure Login Forms' ์
๋๋ค.
์ค์ตํ๋ ๋ชจ๋ ๊ณต๊ฒฉ์ ์ค์ ๋ก ์ฌ์ฉํ์๋ฉด ์๋ฉ๋๋ค.
ํ์ฉ๋ฐ์ง ์์ ์๋น์ค ๋์์ ํดํน์ ์๋ํ๋ ํ๋์ ๊ธ์งํ๋ฉฐ,
๋ชจ๋ ๋ฒ์ ์ฑ
์์ ์ฌ์ฉ์์๊ฒ ์๋ ๊ฒ์ ๋ช
์ฌํด์ฃผ์ธ์.
์์ ํ์ง ์์ ๋ก๊ทธ์ธ ํ์
'ba_insecure_login_1.php' ํ์ด์ง์์๋ ์น ํ์ด์ง๊ฐ ์์ ํ์ง ์์ ๋ก๊ทธ์ธ ํ์์ ์ฌ์ฉํ๋์ง ์ ๊ฒํ๋ค.
๋์ด๋ ํ
ํ์ด์ง๋ฅผ ํด๋ฆญํด์ค๋ค. (์ ๋ ๊ณต๊ฒฉ์ ์๋ก ์
๊ทธ๋ ์ด๋ ๋ ๊ณต๊ฒฉ์ค์ต ์ธ๊ฒ ๊ฐ์๋ค.)
ํ์ด์ง์ ๋ค์ด์์ ๋ณด๋, ๋ก๊ทธ์ธ ํ๋ ํ์ด์ง์ด๋ค.
์ด ํ์ด์ง์ ์์ค ์ฝ๋๋ฅผ ๊ฐ๋ฐ์๋๊ตฌ[F12]๋ก ํ์ธํ๋ค.
'main'์์ POST๋ฐฉ์์ผ๋ก ์ ์กํ๋ form ํ๊ทธ๋ฅผ ์ฐพ์์ ๋ณด๋ฉด, login์ด๋ผ๋ ๋ ์ด๋ธ ๋ฐ์ ํฐ์์ผ๋ก ์ง์ ํ ํ๊ทธ๊ฐ ์๋ค.
์ด๊ฑธ black์ผ๋ก ๋ฐ๊ฟ์ค๋ค.
์จ๊ฒจ์ ธ์๋ ๊ธ์จ๊ฐ ๋ณด์ธ๋ค.
์ด๋๋ก ๋ก๊ทธ์ธ์ ํด๋ดค๋ค. (๋ณด์ด๋ ๋๋ก ์
๋ ฅ ํด์)
๋ก๊ทธ์ธ ์ฑ๊ณต..(?!)
๋๋ฌด ์ฌ์ด ๋ฐฉ๋ฒ์ด๋ค.. ๋
ธ์ถ๋ ๋ก๊ทธ์ธ ์ ๋ณด๋ก ๋ก๊ทธ์ธ ํ๊ธฐ
-> clear
์ฌ์ค ๋๋๊ทธ ํด๋ ๋ณด์ธ๋ค...
๋์ด๋ ์ค
๋์ด๋๋ฅผ ์ค์ผ๋ก ํ๋ฉด '๋์ด๋ ํ' ์๋ ๋ค๋ฅด๊ฒ Name์นธ์ ์ด๋ฏธ 'brucebanner' ์ด๋ผ๋ name์ด ์
๋ ฅ๋์ด ์๋ค.
๋ฐ๋ผ์ ์ด ์ฌ์ฉ์๋ก ๋ก๊ทธ์ธํ๊ธฐ ์ํ์ฌ ์น ํ์ด์ง์์ ์ทจ์ฝํ ๋ถ๋ถ์ ์ฐพ๋๋ค.
์ฝ๋๋ฅผ ๊ฐ๋ฐ์๋๊ตฌ๋ก[F12] ํ์ธํด๋ณด์.
์์ด๋๋ ๋
ธ์ถํ๊ณ ์์ง๋ง, ๋น๋ฐ๋ฒํธ๋ ๋
ธ์ถํ์ง ์๋๋ค.
๋ณ์๋ช
์ passphrase์ด๊ณ , unlock ๋ฒํผ์ ํด๋ฆญ(onclick)ํ๋ฉด unlock_secret()ํจ์๋ฅผ ํธ์ถํ๋ค.
password๋ฅผ ์์๋ด๊ธฐ ์ํด ์์ค ์ฝ๋๋ฅผ ํ๋ฒ์ ๋ด๋ณด์.
๋ง์ฐ์ค ์ฐํด๋ฆญ ํ๋ฉด ํ์ด์ง ์์ค ๋ณด๊ธฐ ๋ผ๋ ๋ฉ๋ด๊ฐ ์๋ค.
๋ฉ๋ด ํด๋ฆญ ํ Ctrl+F ๋ก (์ฐพ๊ธฐ ๋ช
๋ น์ด)
passphrase(๋น๋ฐ๋ฒํธ ์
๋ ฅ ๊ฐ์ ์ ์ฅํ๋ ๋ณ์)๋ฅผ ์ฐพ์๋ณธ๋ค.
์ด ์ ์ฅํ ๊ฐ๊ณผ secret์ด ๊ฐ๋ค๋ฉด ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ค.
( . . . ๋๋
ํ์ค)
์ฝ๋ ํด์์ ์ํด ์กฐ๊ธ ์ ์ฝ๋๋ถํฐ ์ดํด๋ณด์๋ค.
์ฝ๋๋ javascript
๋งจ ๋ง์ง๋ง ์ค์ ์ ์ดํด๋ณด๋ฉด secret ๋ณ์์ d,j,k,q ... ๋๋ ๋ฌธ์๊ฐ ๋์
๋์ด ์๋ค.
secret๋ณ์๋ unlock_secret()ํจ์ ๋ด๋ถ์ ์ ์๋์ด ์๊ณ ,
์ด ํจ์๋ charAt ํจ์๋ฅผ ํธ์ถํ๋ ํจ์์ด๋ค.
charAtํจ์์๋ํด ์ ๊น ์ค๋ช
ํ์๋ฉด,
์ด ํจ์๋ ๋ฌธ์์ด ๊ฐ์ฒด์์ ๋ฌธ์ ํ๋๋ง ๋ฐํํ๋ ํจ์๋ก, ์ ์๋ฅผ ์ธ์๋ก ๋ฐ์ ํด๋นํ๋ ์์์
๋ฌธ์๋ฅผ ์ถ๋ ฅํ๋ฉฐ, ์์๋ (์ธ๋ฑ์ค) 0๋ถํฐ ์์ํ๋ค.
์์ ๋ ์๋ ํด๋ฆญ โผ
๋ค์ ์ฝ๋๋ฅผ ํด์ํด๋ณด์.
secret๋ณ์์ ๋์
๋ ๊ฐ์ ๋ฌธ์๊ฐ ์๋, var ํ์
์ผ๋ก ์ ์ธ๋ ๋ณ์์ด๋ค.
๊ฐ์ ๋ณ์ ๋ช
์ด ์ฌ๋ฌ ๋ฒ ๋ฑ์ฅํ๋ ๊ฒ์ผ๋ก ๋ณด์, ๋ณ์์ ์
๋ ฅํ ๊ฐ์ ๊ณ์ ๋ฎ์ด์ฐ๊ณ ์๋ค.
๊ฐ์ฅ ๋ง์ง๋ง์ ์ ์ธ๋ ๋ณ์์ ํด๋นํ๋ ๊ฐ์ผ๋ก ์๋ secret (๋น๋ฐ๋ฒํธ) ๊ฐ์ ์ฐพ์๋ณธ๋ค.
๊ฐ์ ์ด๋ฐ์์ผ๋ก ๋์
ํด์ ์ฐพ์๋ณด๋ฉด ๋๋ค.
var bWAPP๋ผ๋ ๋ฌธ์์ด์ ์ด 28๊ธ์!(๊ณต๋ฐฑํฌํจ) ์ด ๊ฐ์ผ๋ก ์ง์ง ๊ฐ์ ์ฐพ๋๊ฒ์ด๋ค.
var secret์์ d = charAt(23)์ฆ, bWAPP ๋ฌธ์์ด์ 24๋ฒ์งธ์ ์กด์ฌํ๋ ๋ฌธ์ 'h' ์ด๋ค. (0๋ถํฐ ์์ํ๋ฏ๋ก)
bash update killed my shells!
0123456789..์ด๋ฐ์์ผ๋ก ๋ฒํธ๋ฅผ ์ฐพ์๊ฐ๋ฉด ๋จ.
์ด๋ ๊ฒ ๋๋จธ์ง๋ค๋ ์ฐจ๋ก๋๋ก ์ฐพ์์ ๋ฐํํ๋ ๊ฐ์ ์ฐพ์๋ณธ๋ค.
d=23, j= 5, k=14, q=12, x=4, t=2, o=19, g=1, h=2, d=23, p=28
(์ฒ์์ ๋ฐฉํฅ์ด ํท๊ฐ๋ ธ๋๋ฐ ์ฝ๋์์ '<--' ์ด๋ฐฉํฅ์ผ๋ก ์ฝ์ด๋๊ฐ์๋ฉด ๋ฉ๋๋ค.)
์ด pw๊ธธ์ด๋ 11๊ธ์
๋ฐํ ๊ฐ์ ๋์
ํด๋ณด๋ฉด,
hulk smash!
์ฐพ์ ๊ฐ์ ๋น๋ฐ๋ฒํธ์ ์
๋ ฅํด๋ณด๋, ๋ก๊ทธ์ธ์ด ๋์๋ค.
๋์๋ฐฉ์
๋์ด๋ ์ ์์๋ ์๋ฌด ๊ฒ๋ ๋ณด์ด์ง ์๋๋ค.
์ฝ๋๋ฅผ ์ดํด๋ดค๋๋, login_3.php ๋ก form ํ๊ทธ๋ฅผ ๋ณด๋ด๊ณ ์์ผ๋ฉฐ, method๋ฐฉ์๋ post์ด๋ค.
์ด์ ๋จ๊ณ๋ค๊ณผ ๋ค๋ฅด๊ฒ ํฐ์์ผ๋ก ์จ๊ฒจ๋์ ํ๊ทธ๋ ๋ณด์ด์ง ์์ผ๋ฉฐ,
์์ค ์ฝ๋์ ๋ํ ํํธ๋ ๋
ธ์ถ๋์ด ์์ง ์๋ค.
์ฆ ๋ค๋ฅธ ํ์ด์ง๋ก ๋๊ฒจ ๋ณด์ด์ง ์๊ฒ ์ฒ๋ฆฌ ํด์ฃผ๋ ๊ฒ์ด๋ค.