id 파라미터를 통한 sql injection

작성자 as3617 프로그램 webhacking.kr

WEB 종료됨 매우높음 1,000,000 마지막 업데이트일: 2021년 8월 2일 (4달 전) 작성일: 2021년 8월 2일

취약점 유형

blind sql injection

상세내용

개요

회원가입 id 중복체크 도중 SQL injection이 발생

재현 과정

현재 가입되어 있지 않은 아이디와 sql injection payload를 이용하여 중복체크 시도
image.png

image.png
invaild id란 메세지와 함께 해당 아이디가 이미 존재한다는 메세지를 확인할 수 있음

image.png

image.png
image.png
id가 존재한다고 했지만 정상적으로 회원가입이 되는 것을 확인할 수 있음

image.png
sleep이 포함된 페이로드를 전송할 시 무한 로딩이 걸리게 됨

예상되는 취약점 발생 원인

id 중복체크 이전에 특수문자 포함여부를 확인하지만 이후 특수문자가 포함되있어도 처리를 중단하지 않고
그대로 중복체크를 진행하였고 이때 별다른 필터링이 존재하지 않아서 sql injection이 발생하게 됨.

패치 방법

중복체크 이전에 필터링 진행 후 sql injection에 사용되는 문자가 발견되었을 경우 exit이나 die함수를 이용하여 처리를 함.
해당 취약점은 중복체크 이후 실제 회원가입을 진행할 때도 동일하게 발생할 것으로 예상됨.
Prepared statement를 사용하거나 모든 파라미터에 대해 mysql_real_escape_string함수나 addslashes함수를 사용하여 sql injection에 사용되는 문자에 대해 백슬래시 처리를 함

예상결과 및 파급력

예상 결과 및 파급력

blind sql injection을 이용하여 database에서 회원정보 탈취, 악성 데이터 삽입 등 추가적인 공격 진행 가능

기타사항 및 레퍼런스

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

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

타임라인

as3617 님이 티켓을 제출했습니다. 2021년 8월 2일 (4달 전)
rubiya MANAGER 님이 상태를 '제출됨'에서 '확인중'으로 변경했습니다. 2021년 8월 2일 (4달 전)
as3617 님이 댓글을 남겼습니다. 2021년 8월 2일 (4달 전)

현재 로그인 기능이 잘 작동하지 않는 것 같습니다. 제 세션에서 무한 로딩이 걸리는 것 같습니다

rubiya MANAGER 님이 상태를 '확인중'에서 '패치중'으로 변경했습니다. 2021년 8월 2일 (4달 전)
as3617 님이 댓글을 남겼습니다. 2021년 8월 2일 (4달 전)

방금까지 info 수정도 됬었는데 갑자기 무한로딩 때문에 아무것도 못하고 있습니다.

rubiya MANAGER 님이 댓글을 남겼습니다. 2021년 8월 2일 (4달 전)

수정했습니다. 잘 패치되었는지 확인 부탁드립니다.

as3617 님이 댓글을 남겼습니다. 2021년 8월 2일 (4달 전)

잘 패치된 것 같습니다. 빠른 처리 감사합니다!

rubiya MANAGER 님이 댓글을 남겼습니다. 2021년 8월 2일 (4달 전)

확인 감사합니다.
코멘트로 말씀주신 info 수정이 가능했다는건 어떤 이슈를 말씀하시는건가요?

as3617 님이 댓글을 남겼습니다. 2021년 8월 2일 (4달 전)

아 제가 새로운 취약점을 찾아보기 위해서 info 페이지에서 제 정보를 수정했을 때 정상적으로 됬었는데 갑자기 무한로딩이 걸려서 페이지가 작동을 안한다는 말이였습니다. 지금은 정상적으로 동작합니다

rubiya MANAGER 님이 댓글을 남겼습니다. 2021년 8월 2일 (4달 전)

확인 감사합니다.
현재 업무중이어서 바운티 책정을 비롯한 나머지 프로세스는 저녁에 이어서 진행하도록 하겠습니다.
심각도는 매우 높음 그대로 유지될 것 같습니다.

as3617 님이 댓글을 남겼습니다. 2021년 8월 2일 (4달 전)

감사합니다

rubiya MANAGER 님이 보상 1,000,000 크레딧을 지급했습니다. 2021년 8월 2일 (4달 전)
rubiya MANAGER 님이 댓글을 남겼습니다. 2021년 8월 2일 (4달 전)

webhacking.kr의 회원가입 과정에서 입력값에 이상이 있을 경우 ID 중복 확인 후 프로세스가 중단되어 SQL Injection 취약점이 발생했습니다.
회원가입 과정에서 입력값에 이상이 있을 경우 ID 중복 확인 역시 수행하지 않도록 패치하였습니다.
멋진 제보 감사드리며, 앞으로도 많은 관심 부탁드립니다.

rubiya MANAGER 님이 상태를 '보상완료'에서 '종료됨'으로 변경했습니다. 2021년 8월 2일 (4달 전)
rubiya MANAGER 님이 공개상태를 '비공개'에서 '전체공개'로 변경했습니다. 2021년 8월 2일 (4달 전)
as3617 님이 댓글을 남겼습니다. 2021년 8월 2일 (4달 전)

감사합니다!