Cha4SEr Security Study

[해커팩토리 초급] - 10번 본문

Web/해커팩토리[초급]

[해커팩토리 초급] - 10번

Cha4SEr 2020. 7. 13. 14:55

해커팩토리 초급 10번 문제입니다.

 

 

8번과 유사하게 개인정보 열람 페이지에서 관리자 계정 획득 후 관리자 계정으로 로그인하는 문제입니다.

들어가봅시당

 

 

로그인 화면이 나오고

guest1/guest1 로 로그인!

 

마이페이지 화면에 들어가면 8번문제와는 다르게 id를 입력받는 곳이 없습니다. 

 

F12를 눌러서 소스코드를 확인해봅시다.

 

 

자바스크립트 코드가 있는 부분이 있습니다.

하지만 특별히 수정하거나 얻을 정보는 없는것 같네요. 좀더 내려봅시당

 

 

계정의 고유번호에 대한 정보 처럼 보이는 곳이 있었습니다.

 

1~1000은 게스트 계정이고

5000~6000은 인가 계정이라고 합니다.

 

이런 정보가 있다는 것은 서버에 요청할 때 저 값을 함께 보낸다는 것을 유추해볼 수 있습니다.

 

Burp Suite를 통해서 어떻게 전달하는지 봅시다.

 

 

sid 부분이 눈에띄었습니다.

현재는 1이라는 숫자가 있는데 위에서 게스트 계정은 1~1000의 값을 가진다고 하니 그 안에 있는 숫자들 중

몇개를 넣어봅시다.

 

2로 수정한 다음 Forward 하면

 

guest2 라는 계정이 출력되었습니다.

 

3으로 바꾼다음 Forward 하면 

 

 

게스트 3에 대한 정보가 출력되었습니다.

 

 

위에 있는 힌트를 보면 1~1000은 게스트 계정이고

5000~6000은 인가 계정이라고 하니

 

"admin" 이라는 계정의 sid는 5000 ~ 6000 사이에 있는 숫자일 것으로 예상됩니다.

 

하지만 저 많은 숫자들을 하나하나 대입해보는 것은 굉장히 끔찍하기 때문에

 

저는 Burp Suite에서 브루트 포스 (brute force) 기능을 제공하는 Intruder를 사용했습니다.

 

 

우선 브루트포스 공격을 할 페이지의 HTTP Request를 따와야 합니다.

 

이 페이지를 띄운 다음 Burp Suite를 활성화 시키고 새로고침 해서

 

HTTP Ruquest를 따오는데, 여기서 마우스 우클릭을 하여 Send to Intruder를 클릭합니다.

 

 

Send to Intruder를 누른 다음 Intruder 탭에 들어가면 Host와 Port가 자동으로 설정 됩니다.

그 다음은 Position을 설정해 주어야 합니다. Position을 클릭해봅시다.

 

 

Position은 HTTP Request 중 어떤 부분에 무차별 대입을 할것인지 설정하는 부분입니다.

 

초록색으로 표시된 곳이 공격을 할 부분인데, 지금은 쿠키값들 까지 같이 잡혀있기 때문에 오른쪽에 Clear 버튼을

눌러서 우선 초기화를 시켜줍니다.

 

 

Clear를 누르게 되면

이와같이 초록색으로 표시된 부분이 사라졌습니다.

 

이제 공격을 할 부분을 새로 지정해 봅시다.

우리는 sid 값을 5000~6000 으로 공격해봐야 하기 때문에 현재 1로 적혀있는 부분에 드래그를 하고 Add 버튼을 눌러줍시다.

 

 

이렇게 하면

 

sid 뒤에 있는 값이 초록색으로 바뀌었습니다. 

 

 

이제 위치를 지정해주었으니 어떤 값으로 넣을지 설정해봅시다. 

Payloads 탭을 클릭합니다.

 

빨간색으로 표시된 부분으로 설정을 바꿔주시면 됩니다.

 

Payload type은 여러가지가 있는데 우리는 5000~6000 이라는 숫자를 넣을것이기 때문에 Numbers라고 설정합니다.

 

다음 숫자의 범위에서 시작은 5000 끝은 6000으로 설정하고, Step은 값을 얼마나 증가시킬지를 설정하는 부분입니다.

1이면 5000, 5001, 5002... 로 증가하고

2로 설정하였다면 5000, 5002, 5004 ... 이런식으로 증가할 것 입니다.

 

이렇게 하면 설정은 모두 끝나게 됩니다. 이제 오른쪽 위에 Start Attack을 누릅시다!

 

누르면 경고창이 하나 뜨는데, 무료 버전이라 일부 기능은 사용 못하며 시간이 오래걸릴 수 있다고 합니다.

돈주고 살수는 없으니 그냥 OK 누릅시다.

 

(좀 오래 걸리긴 합니다..ㅎ)

 

OK를 누르게 되면 위와 같이 창이 새로 하나 뜹니다.

 

Payload 탭에는 순차적으로 어떤값을 넣는지 볼 수 있고

행 하나를 클릭하면 그 값에 대한 Response 데이터를 볼 수 있습니다.

 

위 사진에서는 sid에 5000을 넣었을 때 Response에 존재하지 않는 회원이라는 경고창이 뜨게 된다는 것을 알 수 있습니다.

 

 

자세히 보시면

 

다른 행의 Length는 모두 798인데, sid에 5002를 넣었을 때는 길이가 유독 긴 것을 볼 수 있습니다.

이는 뭔가 다른 응답이 왔다는 것을 의미합니다.

 

클릭해보면 정상적으로 Response가 와서 sid가 5002인 계정의 정보를 출력해주는 것을 확인할 수 있습니다.

 

ID : goodman

PW : goodluck

 

하지만 이 계정으로 로그인해보면 별 다른 것이 보이지 않습니다. 

아마도 admin이 아닌 것으로 판단이 되고 다른 계정이 뜨기까지 기다려보기로 했습니다.

 

 

그렇게 계속 기다리고 또 기다리다 보면 여러가지 계정들이 몇개 뜨긴 하는데 모두 admin이 아니었습니다.

아마 ID : admin 인 계정이 따로 있는것 같은데..

 

 

 

한참을 기다리면 나오지만 시간이 급하신 분들을 위해 힌트를 드리자면

 

 

 

 

Payload 범위를 5600 ~ 5700 으로 설정하시면 그 안에 admin이 나올것입니다.

 

그렇게 나온 admin 계정을 통해 로그인을 하면

 

로그인에 성공하고 인증키를 획득할 수 있습니다!

'Web > 해커팩토리[초급]' 카테고리의 다른 글

[해커팩토리 초급] - 8번  (0) 2020.07.12
[해커팩토리 초급] - 7번  (0) 2020.07.09
[해커팩토리 초급] - 6번  (1) 2020.07.08
[해커팩토리 초급] - 5번  (1) 2020.07.08
[해커팩토리 초급] - 4번  (0) 2020.07.08
Comments