error 노출로 인한 sql query 노출 및 sql injection

Writer super-cert Program 수산아이앤티

WEB Resolved High No Reward Last Updated: Dec 30, 2021 (6 months ago) Created: Nov 1, 2021

Weakness

SQL Injection

Description

개요

[취약점 제보에 대한 개요를 작성해 주세요]
보도자료 쪽 검색 로직에서 에러 발생 시 sql 쿼리 노출 및 sql injection 취약점 발생

재현 과정

[취약점 재현을 하기 위한 과정을 서술해 주세요]

  1. [step1] 정상쿼리
    Description
  2. [step2] search_type 파라미터를 그대로 where 문에서 사용하여 sql error 및 쿼리 노출
    Description
  3. [step3] payload 삽입 시 error based sql injection 발생 => 버전정보 노출 확인
    Description

예상되는 취약점 발생 원인

[해당 취약점이 발생하는 예상 원인을 서술해 주세요]
php 기본의 addslashess 함수가 적용되어 있으나 search_type 같은 파라미터는 싱글/더블 쿼터에 상관없이 그대로 쿼리문에서 사용되어 취약점 발생

패치 방법

[해당 취약점을 패치하기 위한 대응 방법을 서술해 주세요]
search_type 에서 문자열을 받는 경우 화이트리스트 형태로 필요 문자열만 매핑해서 사용하도록 권고

예상 결과 및 파급력

[해당 취약점으로 인해 예상되는 결과 및 파급력을 서술해 주세요. 시나리오가 포함되어도 좋습니다.]

  • 내부 데이터 베이스 조회 및 데이터 탈취 가능
  • load_file 가 유효한 경우 lfi 취약점 가능
  • php 서버를 사용하기 때문에 로그 poisoning을 통한 rce 가능성 존재

기타사항 및 레퍼런스

[그 외에 추가할 내용이 있다면 이곳에 작성해주세요.(스크린샷, 로그 등)]

  • [첨부파일 / 레퍼런스]

Timeline

super-cert submitted ticket. November 1, 2021 (8 months ago)
Dona BUGCAMP STAFF changed the status from 'Submitted' to 'In Progress'. November 11, 2021 (8 months ago)
Steve BUGCAMP STAFF changed the status from 'In Progress' to 'Resolved'. December 30, 2021 (6 months ago)

안녕하세요 제보자님 해당 취약점 조치되어 티켓을 종료하겠습니다. 수산아이앤티 버그바운티 프로그램에 참여해주셔서 감사합니다.

Steve BUGCAMP STAFF changed the disclosure from 'Closed' to 'Disclosed (Full)'. December 30, 2021 (6 months ago)