[11 WEEK] XSS Example, XSS Protection
2024. 7. 5. 18:39ㆍ정보보안 및 해킹/Normaltic's 취업반 강의
XSS 공격 예제
Event Handler
onload, loclick, onmouseover 등 <>안에서 빠져나오지 못 할 경우 유용함
href
<a href="javascript:alert(1)">TEST</a>
a tag를 클릭하면 페이지가 이동되는 특성 활용
XSS 대응방안
오답
필터링
블랙필터링
- 특정 단어를 허용하지 않음
- 대소문자, 특정단어, 특정특수문자 등
- 우회할 가능성이 무궁무진함
화이트필터링
- 특정 단어만을 허용함
- 게시판 등 자유도가 보장되어야 하는 곳에서 사용되지 못 함
정답
HTML Entity
XSS를 유발할 수 있는 특수문자를 HTML Encoding
Character | Entity Number | Entity Name | Description |
" | " | " | quotation mark |
' | ' | ' (does not work in IE) | apostrophe |
& | & | & | ampersand |
< | < | < | less-than |
> | > | > | greather-than |
기본적으로는 < ' " > 이 네 가지의 특수문자만 치환해도 XSS로부터 어느정도는 방어할 수 있다
BUT!!
HTML Entity가 사용될 수 없는 곳이 있는데, 바로
HTML Editor
사용자가 직접 HTML코드를 작성할 수 있도록 하는 HTML Editor는 HTML Entity를 그대로 적용하는 순간
기능을 상실한다
따라서 HTML Editor는 아래 3가지의 절차를 거치면 어느정도 방어가 가능하다
PROCESS
1. 파라미터에서 HTML 특수문자들을 전부 HTML Entity로 치환
- 임시로 특수 문자들을 치환
2. 허용해 줄 태그들을 식별하고 그 태그를 다시 살린다
- < ' " > 중에서도 필요한 것들을 식별할 수 있어야 한다
3. 살려준 태그 내에 악의적인 event handler가 있는지 블랙리스트 기반으로 필터링
- <img src="" onerror=""> 라는 구문을 사용자가 입력했다면, src는 확인하고 제대로 된 png파일이 맞다면 넣어도 되지만 onerror는 누가 봐도 수상하다...
'정보보안 및 해킹 > Normaltic's 취업반 강의' 카테고리의 다른 글
[13 WEEK] CSRF Protection, CSRF + XSS, SOP / CORS (0) | 2024.07.11 |
---|---|
[12 WEEK] CSRF (0) | 2024.07.05 |
[9 / 10 WEEK] XSS (0) | 2024.06.25 |
[5 WEEK] SQL Injection (0) | 2024.06.07 |
[4 WEEK] Burp Suite 기능 (0) | 2024.06.06 |