Weakness
error-based sql injection
Description
개요
Notice 검색창에 '(싱글쿼터) 입력 시, 에러가 발생되어 error-based sql injection 발생
재현 과정
- [step1] 검색창에 '(싱글쿼터) 삽입 시, 에러 메시지 발생
- [step2] 참, 거짓 반응을 통해 sql injection 공격이 가능함을 확인
- [step3] mysql error-based sql injection 쿼리를 통해 데이터 추출
ex) 테이블 명 : ‘and 1=(select a from(select count(*), concat((select table_name from information_schema.tables where table_type=‘base table’ limit 1 offset 0),floor(rand(0)*2))a from information_schema.tables group by a)b) and ‘%’=’
예상되는 취약점 발생 원인
싱글쿼터 입력 시, 에러 메시지가 보여 error-based sql injection이 가능함.
패치 방법
Prepared statement 구문 조치를 통해 sql 쿼리에 대해서 선처리 컴파일하여 입력받은 변수 값을 문자열변수 처리
예상 결과 및 파급력
데이터베이스 내의 모든 정보를 탈취할 수 있음.
안녕하세요. 제보자님
엔큐리티 버그바운티 프로그램에 제보해주셔서 감사합니다.
제출해주신 티켓은 유효한 티켓으로 Error Base SQL Injection이 발현되는 것을 확인하였습니다. 해당 티켓은 개발팀에 전달될 예정이며, 개발팀 일정으로 인해 수정에 시간이 걸릴 수 있느점 참고부탁드립니다.
감사합니다.