ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <Suninatas> 8번 문제
    Wargame/Suninatas 2021. 11. 1. 15:40

    8번 문제

    로그인 창이 있고 패스워드가 틀렸다고 한다.

    우선, 페이지 소스코드를 먼저 살펴보겠다.

     

    로그인 창을 구성하는 HTML코드가 있다. 따로 특별한 함수가 보이지 않고, 아래에 힌트가 주어져 있다.

    admin으로 로그인하고 패스워드는 0부터 9999까지라고 한다.

    페이지 소스코드에 브루트 포스를 방지하는 구문이 없는걸로 보아 브루트 포스 공격으로 패스워드를 찾아내면 될 것 같다.

     

    Burp Suite를 이용해 브루트 포스 공격을 수행해 보겠다.

    Burp Suite의 Proxy를 이용한다.

    먼저 로그인 창에 아이디는 admin 패스워드는 0을 입력한다.

    Proxy의 HTTP history에서 방금 로그인한 Request를 찾을 수 있다.

    이것을 Burp Suite의 Intruder로 보낸다.(마우스 오른쪽 버튼으로 Intruder에게 보낼 수 있다.)

     

    Intruder에서 Payload의 위치를 설정해야한다. 처음엔 여러 위치가 설정되어있지만, 이 문제를 풀기 위해서는 패스워드의 값만 변경해주면 되기 때문에 패스워드에 해당하는 값 pw의 위치만 설정한다.(위치를 설정하기위해 'Clear $' 버튼으로 모든 위치를 해제하고 0만 드래그하여 'Add $' 버튼으로 설정한다.

     

    다음으로, Payload로 보낼 값을 설정해야한다. 패스워드는 0부터 9999까지 였기에 숫자로 보내면된다. 패스워드 값 하나만 Payload로 보내기 때문에 Payload set은 1, Payload type은 Numbers가 된다.

    패스워드는 0부터 9999까지이므로 0에서 9999까지로 설정하고 연속적이고 1씩 증가하게 설정하면 된다.

     

    만약 패스워드가 맞아 인증 키가 주어질 경우, Authkey라는 키워드가 주어진다. 그것을 쉽게 파악하기 위해 Intruder의 옵션의 Grep-Match에 Auth키워드를 추가하여 공격을 수행한다.(공격은 우측 상단의 Start attack 버튼을 사용한다.)

     

    공격을 수행하면 Burp Suite가 알아서 0부터 9999까지의 값으로 로그인을 수행한다.

    제법 시간이 걸린다.

    실수로 윗 칸을 짤라버렸다. 체크표시 열은 Auth키워드의 유무를 나타낸다.

    Auth키워드가 뜨는 패스워드의 값을 찾아냈다.

     

    ※ Auth 키워드를 설정하지 않아도 다른 값들은 Response의 길이가 2221임에 비해 정답인 패스워드 7707에 대한 Response의 길이는 2278로 다른 것을 확인할 수 있다. 이를 통해 7707이 패스워드라고 짐작할 수도 있다.

     

    이제 이 값으로 로그인을 하면 인증 키 값을 획득할 수 있다.

    'Wargame > Suninatas' 카테고리의 다른 글

    <Suninatas> 23번 문제  (0) 2021.11.07
    <Suninatas> 22번 문제  (0) 2021.11.05
    <Suninatas> 7번 문제  (0) 2021.10.31
    <Suninatas> 6번 문제  (0) 2021.10.31
    <Suninatas> 5번 문제  (0) 2021.10.29
Designed by Tistory.