주통기반-정보 누출

황인환·2024년 8월 14일

정의

  • 의도하지 않게 민감한정보(에러메시지를 통한 DB정보, 소프트웨어 정보 & 파라미터에 ID와 비밀번호 누출) 누출되는 경우를 의미합니다.

원인

  • 부적절한 입력 검증: 사용자로부터 입력받는 값을 제대로 검증하지 않고 URL, 파라미터, 쿠키 등에 민감한 데이터를 포함하는 경우 그 정보를 공격자가 훔쳐갈 수 있습니다.

  • 잘못된 오류 처리: 웹 애플리케이션에서 발생하는 에러 메시지를 적절히 처리하지 않는 경우, 서버 환경 정보나 디버그 정보가 사용자에게 그대로 노출될 수 있습니다.

위협

  • 웹사이트 중요정보(개인,계정,금융 정보 등)가 노출되거나 에러 발생시 과도한 정보(DB이름, 소프트웨어 버전 등)가 누출되는 경우 제 2차 공격을 위한 정보로 활용될 수 있음

TEST방법

  • Step 1)
    웹 사이트에 중요정보가 평문으로 노출되고 있는지 확인합니다. ex) 비밀번호 ****가 아닌 평문누출

  • Step 2)
    웹페이지에 마스킹 된 중요정보가 웹페이지 소스에 평문으로 노출되고 있는지 확인합니다.(Burp Suite로 확인)

  • Step 3)
    에러 메시지 또는 에러페이지에서 과도한 정보가 노출되는 확인합니다.

  • Step 4)
    인코딩된 중요정보가 디코딩이 가능한지 확인합니다.
    ex)

    인코딩(based64)디코딩(평문)
    aWQ9dGVzdA==id=test
    cGFzc3dvcmQ9dGVzdA==password=test
  • Step 5)
    임의의 계정으로 로그인을 시도하여 반환되는 에러메시지를 통해 특정 ID가입여부를 식별할 수 있는지 확인합니다.

공격시나리오

  1. 로그인페이지에서 파라미터 값을 조사합니다.(디코딩, 평문전송)

  2. ' or '1' = '1등으로 XPath & SQL Injection TEST등으로 에러메시지 확인

  3. 정보가 누출된다면 누출된 정보를 분석하여 중요정보(개인,계정,금융 정보 등)를 취득

대상 & 판단기준 & 조치방법

설명
대상웹 어플리케이션, 웹 서버
판단기준양호: 웹사이트에 중요정보가 노출되지 않고, 에러 발생시 과도한 정보가 노출되지 않는 경우
취약: 웹사이트에 중요정보가 노출되고, 에러 발생시 과도한 정보가 노출되는 경우
조치방법웹 사이트에 노출되는 중요정보는 마스킹을 적용해야 함
발생 가능한 에러에 대해 최소한의 정보 또는 사전에 준비된 메시지만 출력하게함

0개의 댓글