SECURITY/Webhacking

Webhacking.kr :: old-19번

\b\t 2021. 2. 2. 10:47

이 λ¬Έμ œλŠ”..μ΄λ ‡κ²Œ 생겼닀.

admin μ¨μžˆλŠ”λŒ€λ‘œ κ·Έλƒ₯ 제좜 λˆŒλŸ¬λ³΄λ‹ˆ admin 이 μ•„λ‹ˆλΌκ³  ν•œλ‹€.

κ·Έλž˜μ„œ guest λ₯Ό μž…λ ₯ν–ˆλ”λ‹ˆ hello guest κ°€ λœ¬λ‹€.

logout 을 λˆŒλŸ¬λ΄λ„ μ•„λ¬΄λŸ° λ³€ν™”κ°€ μ—†λ‹€.

 

 

μΏ ν‚€λ‘œ μ‚¬μš©μžλ₯Ό ν™•μΈν•˜λŠ” 것 κ°™μ•„μ„œ μΏ ν‚€λ₯Ό ν™•μΈν•΄λ³΄λ‹ˆ, μ—­μ‹œ userid 값이 μƒμ„±λ˜μ–΄ μžˆμ—ˆλ‹€.

이 값을 admin 의 κ°’μœΌλ‘œ λ„£μ–΄μ£Όλ©΄ ν•΄κ²°ν•  수 μžˆμ„ 것 κ°™μ•˜λ‹€.

 

그러기 μœ„ν•΄μ„  μ—­μ‹œ μ–΄λ–»κ²Œ 이 μΏ ν‚€ 값을 μΈμ½”λ”©ν•œκ±΄μ§€ μ•Œμ•„μ•Όλ˜λŠ”λ°, 일단 뒀에 %3D κ°€ 뢙은건 = 을 νΌμ„ΌνŠΈ μΈμ½”λ”©ν•œ κ²ƒμ΄λ‹ˆ base64 둜 μΈμ½”λ”©λ˜μ—ˆμŒμ„ μ•Œ 수 μžˆλ‹€.

 

κ·Έλž˜μ„œ base64 둜 λ””μ½”λ”© ν•΄λ³΄μ•˜μ§€λ§Œ μ—¬μ „νžˆ μ•Œ 수 μ—†λŠ” κ°’μ΄μ–΄μ„œ.. ν•΄μ‹œκ°€ μ“°μ˜€κ΅¬λ‚˜ μ‹Άμ—ˆλ‹€.

길이λ₯Ό λ³΄λ‹ˆ md5 κ°™μ•„μ„œ guest λ₯Ό λ„£μ–΄λ΄€μ§€λ§Œ μ „ν˜€ λ‹€λ₯Έ κ°’.

g λ₯Ό λ„£μ–΄λ³΄λ‹ˆ base64 디코딩을 ν•œ κ°’μ˜ μ•žλΆ€λΆ„κ³Ό μΌμΉ˜ν•¨μ„ μ•Œ 수 μžˆμ—ˆλ‹€.

md5(g) = b2f5ff47436671b6e533d8dc3614845d

μΏ ν‚€λ₯Ό base64 λ””μ½”λ”©ν•œ κ°’ = b2f5ff47436671b6e533d8dc3614845d7b774effe4a349c6dd82ad4f(μ€‘λž΅)

 

κ²°κ΅­ g u e s t λ₯Ό ν•œ κΈ€μžμ”© md5 ν•΄μ‹œκ°’μ„ λ§Œλ“€κ³ , 이걸 base64 μΈμ½”λ”©ν•˜λŠ” λ°©μ‹μœΌλ‘œ μΏ ν‚€ 값이 λ§Œλ“€μ–΄μ§„ 것을 μ•Œ 수 μžˆλ‹€.

 

μ›λž˜ κ°’ -> md5 -> base64 -> url encode == μΏ ν‚€ κ°’

 

κ·Έλž˜μ„œ a d m i n 의 md5 λ₯Ό ν•˜λ‚˜μ”© κ΅¬ν•΄μ„œ base64 인코딩을 ν•΄μ„œ λ„£μ–΄μ£Όμ—ˆλ‹€.

 

그런데 error κ°€ λ– μ„œ 뭐지? 싢은 λ§ˆμŒμ— 둜그인 ν™”λ©΄μ—μ„œ admi λ₯Ό μž…λ ₯ν•΄λ³΄μ•˜λ‹€.

admin 이 μ•„λ‹ˆλ‹ˆ 둜그인이 λ˜μ–΄μ„œ μΏ ν‚€λ₯Ό λ³΄λ‹ˆ, λ‚΄κ°€ κ΅¬ν•œ μΏ ν‚€κ°’κ³ΌλŠ” λ―Έμ„Έν•˜κ²Œ λ‹¬λžλ‹€.

λ‚΄κ°€ κ΅¬ν•œ κ°’: MENDMTc1QjlDMEYxQjZBODMxQzM5OUUyNjk3NzI2NjE4 (μ€‘λž΅)

admi 의 μΏ κΈ° κ°’: MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5M (μ€‘λž΅)

 

 

λ­”κ°€ μ‹Άμ–΄μ„œ λ΄€λ”λ‹ˆ md5(a) = 0CC175B9C0F1B6A831C399E269772661 인데 이걸 κ·ΈλŒ€λ‘œ base64 μΈμ½”λ”©ν•˜λ‹ˆκΉŒ 값이 λ‹¬λžλ˜ 것이닀.

즉, μ•ŒνŒŒλ²³ λŒ€λ¬ΈμžλΌμ„œ....

md5(a) = 0cc175b9c0f1b6a831c399e269772661 와 같이 μ†Œλ¬Έμžλ‘œ base64 인코딩해야 ν•œλ‹€.

이걸 λ‹€ κ΅¬ν•˜κ³  λ§ˆμ§€λ§‰ == 은 %3D%3D 둜 λ°”κΎΈμ–΄ μΏ ν‚€ 값에 λ„£μœΌλ‹ˆ κ²°κ³Όκ°€ λ‚˜μ™”λ‹€. 끝!