Security
[WEB] XSS
ekwkqk12
2019. 2. 8. 12:29
※ XSS
사용자의 입력 값에 대한 필터링이 제대로 이루어지지 않을 경우, 공격자가 입력이 가능한 폼(URL 파라미터 값 또는 게시판 등)에 악의적인 스크립트를 삽입하여 사용자의 세션/쿠키 탈취, 악성코드 유포지/피싱사이트로 이동시키는 취약점으로 주로 여러 사용자가 보게 되는 게시판에 악성 스크립트가 담긴 글을 올리는 형태나 스크립트가 삽입된 URL 클릭을 유도하여 스크립트를 실행하게 한다.
※ 실습
검색 폼에 222를 입력 후 GO버튼을 클릭한 모습으로 222에 대한 결과가 없다는것을 볼 수 있다.
해당 입력 폼에 XSS를 출력하는 알람창을 띄우는 스크립트를 삽입 후 실행한 결과 스크립트가 실행된것을 볼 수 있다.
▼
▼
※ 대응방안
- 사용자가 입력한 문자열에서〈, 〉, &, ", ", (, )등을 htmlspecialchars/replace등의 문자 치환함수(혹은 Method)를 사용하여 스크립트가 실행될 문자를 <, >, &, "로 치환하여 실행되지 않게 한다.
- 홈페이지 게시판 등에서 HTML 태그 허용 시 HTML 태그의 리스트를 선정한 후, 해당 태그만 허용하는 방식(White List)을 적용한다.