검색창을 통한 error-based sql injection

Writer 41c71ca9 Program 엔큐리티

WEB Resolved Critical No Reward Created: Oct 14, 2021 (3 years ago) Last Updated: Jan 3, 2022 (2 years ago)

Weakness

error-based sql injection

Description

개요

Notice 검색창에 '(싱글쿼터) 입력 시, 에러가 발생되어 error-based sql injection 발생

재현 과정

  1. [step1] 검색창에 '(싱글쿼터) 삽입 시, 에러 메시지 발생
    Description
    Description
  2. [step2] 참, 거짓 반응을 통해 sql injection 공격이 가능함을 확인
    Description
    Description
  3. [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 ‘%’=’
    Description

예상되는 취약점 발생 원인

싱글쿼터 입력 시, 에러 메시지가 보여 error-based sql injection이 가능함.

패치 방법

Prepared statement 구문 조치를 통해 sql 쿼리에 대해서 선처리 컴파일하여 입력받은 변수 값을 문자열변수 처리

예상 결과 및 파급력

데이터베이스 내의 모든 정보를 탈취할 수 있음.

기타사항 및 레퍼런스

Timeline

41c71ca9 submitted ticket. October 14, 2021 (3 years ago)
Dona BUGCAMP STAFF changed the status from 'Submitted' to 'In Progress'. November 11, 2021 (2 years ago)
Steve BUGCAMP STAFF posted a comment. November 12, 2021 (2 years ago)

안녕하세요. 제보자님
엔큐리티 버그바운티 프로그램에 제보해주셔서 감사합니다.

제출해주신 티켓은 유효한 티켓으로 Error Base SQL Injection이 발현되는 것을 확인하였습니다. 해당 티켓은 개발팀에 전달될 예정이며, 개발팀 일정으로 인해 수정에 시간이 걸릴 수 있느점 참고부탁드립니다.

감사합니다.

Steve BUGCAMP STAFF changed the status from 'In Progress' to 'Resolved'. January 3, 2022 (2 years ago)

안녕하십니까 제보자님, 제보해주신 취약점 패치되었습니다.
엔큐리티 버그바운티 프로그램에 참여해주셔서 감사드립니다.

Steve BUGCAMP STAFF changed the disclosure from 'Closed' to 'Disclosed (Full)'. January 3, 2022 (2 years ago)