Study
CVE-2020-25762 본문
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 페이지 로그인 화면이다.
username과 password로 들어오는 입력값에 대한 검증이 전혀 이루어지지 않기 때문에 sql인젝션 취약점이 발생한다.
1.2 공격 시나리오
- id에 임의의 값, password에 ' or 1=1 -- 을 넣어 로그인을 시도한다.
-> 로그인에 성공하면 관리자 계정으로 모든 기능을 관리할 수 있다.
2. 상세 분석
2.1 발생원리
-사용자가 입력한 데이터가 애플리케이션에 의해 검증, 필터링, 삭제되지 않을 때 발생한다.
2.2 취약점 확인
id에 임의의 값, password에 ' or 1=1 -- 을 넣어 로그인을 시도한 결과
로그인에 성공했다.
admin계정으로 로그인되었기 때문에 예매현황 확인, 영화리스트 확인 및 추가 등
관리자만이 할 수 있는 기능들을 공격자가 임의로 사용 가능하다.
3. 대응 방안
/seat_reservation/admin/admin_class.php 코드에 특수문자 필터링을 적용한다.
필터링 적용 후 다시 로그인을 시도해본 결과 로그인에 실패 해
sql Injection이 발생하지 않는다.
마지막으로 sqlmap을 이용해 sql Injection 취약점이 발견되는지 확인해보았지만 발견되지 않았다.
4. 참고자료
- preg_replace() 설명
'웹 보안 > 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 |