Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Study

CVE-2020-25762 본문

웹 보안/Exploit-db

CVE-2020-25762

^_^? 2021. 1. 6. 16:32

1. 개요

CVE 코드 CVE-2020-25762
분류 Unauthenticated SQL Injection
대상 어플리케이션 Seat Reservation System 1.0
취약 코드

/seat_reservation/admin/admin_class.php

실행 환경 Apache 2.4.46 / PHP Version 7.4.9 / Windows 7 x64

 

1.1 대상 어플리케이션 설명

 

: Seat Reservation System 1.0의 admin 페이지 로그인 화면이다.

 

(그림 1) admin 페이지 로그인 화면

 

username과 password로 들어오는 입력값에 대한 검증이 전혀 이루어지지 않기 때문에 sql인젝션 취약점이 발생한다.

 

 

 

1.2 공격 시나리오

 

 - id에 임의의 값, password에 ' or 1=1 -- 을 넣어 로그인을 시도한다.

 

   -> 로그인에 성공하면 관리자 계정으로 모든 기능을 관리할 수 있다. 

 

 

2. 상세 분석

 

2.1 발생원리

 

-사용자가 입력한 데이터가 애플리케이션에 의해 검증, 필터링, 삭제되지 않을 때 발생한다.

 

(그림 2) admin_class.php

 

2.2 취약점 확인

 

id에 임의의 값, password에 ' or 1=1 -- 을 넣어 로그인을 시도한 결과 

로그인에 성공했다.

 

(그림 3) 관리자 페이지 로그인 성공했을 때

 

admin계정으로 로그인되었기 때문에 예매현황 확인, 영화리스트 확인 및 추가 등 

관리자만이 할 수 있는 기능들을 공격자가 임의로 사용 가능하다.

 

3. 대응 방안

/seat_reservation/admin/admin_class.php 코드에 특수문자 필터링을 적용한다.

 

(그림 4) 수정 후 admin_class.php

 

필터링 적용 후 다시 로그인을 시도해본 결과 로그인에 실패 해

sql Injection이 발생하지 않는다.

 

(그림 5) 로그인 실패

 

마지막으로 sqlmap을 이용해 sql Injection 취약점이 발견되는지 확인해보았지만 발견되지 않았다.

 

(그림 6) sqlmap 이용한 검증 결과

 

4. 참고자료

- preg_replace() 설명

www.php.net/manual/en/function.preg-replace.php

'웹 보안 > Exploit-db' 카테고리의 다른 글

EDB-49420, 49428  (0) 2021.01.27
EDB-49431  (0) 2021.01.22
EDB-49375  (0) 2021.01.15
EDB-47583  (0) 2021.01.13
EDB-ID-48822  (0) 2020.12.30