• [SDCTF 2022] HuMongous Mistake

    2022. 5. 9.

    by. hackintoanetwork

    이번 문제는 풀이자가 가장 적었던 문제이다.


    웹사이트에 들어가면 위와 같은 페이지가 나온다.


    내 Discord 사용자 이름을 이용하여 계정을 만들었고 CTF 서버의 봇이 "2단계 인증" 코드로 DM을 보냈다.

    2FA 인증 후 로그인에 성공 했더니 자금이 충분하지 않아 아무것도 살 수 없었다.


    오른쪽 메뉴 버튼을 누르니 Add Funds 라는 "자금 추가" 페이지가 있었다.


    하지만 이마저도 들어가면 "500 Internal Server Error"가 뜬다.


    당황하였지만 다행히 페이지 소스 코드에서 관리자 계정으로 특별한 작업을 수행할 수 있다고 말하는 숨겨진 주석을 발견할 수 있었다.


    곧바로 admin 계정을 등록해보았고 아래와 같이 이미 등록되어 있는 것을 확인할 수 있었다.

     


    admin 계정으로 SQL Injection을 시도하였다.

    로그인 페이지에선 POST 방식으로 매개변수를 보내므로 BurpSuite를 사용해 로그인 요청을 캡처해보았고

    username과 password 매개 변수는 입력 값을 받아 전달하고 있다.


    username과 password 부분에 SQL Injection 공격 페이로드를 삽입해주었다.

    SQL Injection Payload는 아래와 같다.

    Payload : username=admin&password[$gt]=&password[length]=1


    공격 페이로드 삽입 후 로그인 요청을 하였고 admin 계정으로 로그인에 성공하였다.

    하지만 2FA 인증이 필요했다.

    admin 계정의 2FA 코드를 받아오는 방법은 몰랐기 때문에 처음엔 당황하였지만

    시크릿 모드를 열고 원래 내 자신의 계정에 로그인하여 2FA 코드를 받아오고

    admin 계정 2FA 인증에 사용함으로써 admin 계정으로 들어갈 수 있었다.


    admin 계정으로 들어간 이후 shop 에 들어가 Flag-Shaped-Shell 을 구입하였고

    Flag를 획득할 수 있었다.

    Flag : sdctf{th1s_ch4ll3nge_1snt_g3tt1ng_a_SQL_ad45bd}

    'CTF > San Diego CTF 2022' 카테고리의 다른 글

    [SDCTF 2022] CURL Up and Read  (0) 2022.05.09
    [SDCTF 2022] Gullible by Dovesign  (0) 2022.05.09
    [SDCTF 2022] JaWT that down!  (0) 2022.05.09
    [SDCTF 2022] Lots of Logs  (0) 2022.05.09

    댓글