부적절한 입력 검증: 사용자로부터 입력받는 값을 제대로 검증하지 않고 URL, 파라미터, 쿠키 등에 민감한 데이터를 포함하는 경우 그 정보를 공격자가 훔쳐갈 수 있습니다.
잘못된 오류 처리: 웹 애플리케이션에서 발생하는 에러 메시지를 적절히 처리하지 않는 경우, 서버 환경 정보나 디버그 정보가 사용자에게 그대로 노출될 수 있습니다.
Step 1)
웹 사이트에 중요정보가 평문으로 노출되고 있는지 확인합니다. ex) 비밀번호 ****가 아닌 평문누출
Step 2)
웹페이지에 마스킹 된 중요정보가 웹페이지 소스에 평문으로 노출되고 있는지 확인합니다.(Burp Suite로 확인)
Step 3)
에러 메시지 또는 에러페이지에서 과도한 정보가 노출되는 확인합니다.
Step 4)
인코딩된 중요정보가 디코딩이 가능한지 확인합니다.
ex)
| 인코딩(based64) | 디코딩(평문) |
|---|---|
| aWQ9dGVzdA== | id=test |
| cGFzc3dvcmQ9dGVzdA== | password=test |
Step 5)
임의의 계정으로 로그인을 시도하여 반환되는 에러메시지를 통해 특정 ID가입여부를 식별할 수 있는지 확인합니다.
로그인페이지에서 파라미터 값을 조사합니다.(디코딩, 평문전송)
' or '1' = '1등으로 XPath & SQL Injection TEST등으로 에러메시지 확인
정보가 누출된다면 누출된 정보를 분석하여 중요정보(개인,계정,금융 정보 등)를 취득
| 설명 | |
|---|---|
| 대상 | 웹 어플리케이션, 웹 서버 |
| 판단기준 | 양호: 웹사이트에 중요정보가 노출되지 않고, 에러 발생시 과도한 정보가 노출되지 않는 경우 |
| 취약: 웹사이트에 중요정보가 노출되고, 에러 발생시 과도한 정보가 노출되는 경우 | |
| 조치방법 | 웹 사이트에 노출되는 중요정보는 마스킹을 적용해야 함 |
| 발생 가능한 에러에 대해 최소한의 정보 또는 사전에 준비된 메시지만 출력하게함 |