Chapter06 - XSS공격
1. XSS 취약점 이란?
l Cross Site Script라는 언어로 자바 스크립트를 사용하여 공격하는 경우가 많다.
l SQL Injection과 함께 웹 상에서 공격하려는 사이트에 스크립트를 넣는 기법의 공격을 말한다.
l 공격에 성공하면 삽입된 코드를 실행하게 되며, 의도치 않은 행동을 수행시키거나 쿠키 혹은 세션 토큰 등의 민감한 정보를 탈취한다.
l 공격을 하기 위해서는 Sniffing과 Spoofing가 필수적으로 이루어 져야 한다.
ü Sniffing = SQL Injection -> 정보를 얻어 오기 위한 것
ü Spoofing = XSS -> 실제로 공격을 하기 위한 것
l 기존 사이트를 공격하기는 어렵기 때문에 업데이트를 하는 도중(내부적으로 스크립트가 한 번 돌아갈 때)에 공격 하는 경우가 많다.
l 웹 페이지 생성 중 부적절한 입력 무력화 공격이라고 표현한다.
2. 쿠키(Cookie)
l 사용자가 인터넷 웹 사이트에 방문할 때 생기는 4KB이하의 파일
l 쿠키 파일은 실행이 되는 파일이 아니므로 바이러스를 전파할 수 없음
l 쿠키의 용도
ü 사이트 개인화
- 쿠키를 이용하면 아이디와 비밀번호 외에도 사용자의 ‘성향’까지 파악 가능
ü 장바구니 시스템
- 사용자가 고른 물건을 쿠키에 저장
ü 웹 사이트 이용 방식 추적
- 사용자들의 사이트 방문 유형을 파악하여 마케팅 정보로 활용
ü 타깃 마케팅
- 광고주가 대형 포털 사이트의 광고 공간을 사들여 자회사의 광고를 사용자에게 보여주는 것
3. XSS(Cross-site script)
l XSS
ü 다른 사용자의 정보를 추출하는 공격 기법
ü 입력을 받는 부분의 스크립트 코드를 필터링 하지 않음으로써 공격자가 스크립트 코드를 실행할 수 있음
4. XSS의 유형
l 반사된 XSS(지속적이지 않음)
l 저장된 XSS(stored XSS, 지속적)
l 문서 객체 모델기반 XSS
5. Reflected XSS
l 반사된 XSS공격
l <script> alert(“I’m a reflected XSS attack!”);</script>
l 공격자가 HTTP요청에 악성 콘텐츠를 주입하면 그 결과가 사용자에게 “반사되는” 형태
l 링크를 클릭해야 액션이 취해 지는 것을 본다면, CSS로 실행되는 Script라고 할 수 있다. 해당 링크를 클릭하면 피해자의 세션을 하이재킹 할 수 있다.
l Fishing Attack: 악성 RUL이 가장 흔한 것
6. Stored XSS
l 저장되어진 XSS공격
l 일반 적으로 HTTP에서 POST 메소드에 사용된다.
l 사용자가 글을 저장하는 부분에 정상적인 평문(Hyper Script)이 아닌 Script코드를 입력
ü 구매 평을 적는 부분에 해커가 POST메소드에 악성 코드를 심어서 글을 저장한다.
ü 다른 사용자가 GET메소드를 이용해 값을 요청한다.
ü 해당 사용자는 GET 메소드를 호출 하자 마자 악성 Script가 실행되어 사용자의 쿠키 정보가 유출 되거나 공격을 당하게 된다.
ü 악성 Script가 심어진 자료를 요청하는 모든 사용자가 공격을 당한다.
l 데이터 베이스에 악성코드를 저장하도록 하는 수법
ü 데이터 베이스 요청은 일반적으로 POST메소드를 사용 함
7. CSRF 공격
l 크로스 사이트 요청 변조(CSRF) 공격
l 사이트간 요청 위조(Cross-Site Request Forgery)
ü 피해자가 인지 못 하는 상태에서 브라우저가 특정 사이트에 강제적으로 Request를 보내도록 하는 기법]
l 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹 사이트에 요청하게 하는 공격
l 공격 조건
ü 공격 대상이 로그인 상태인 경우
ü 희생자가 해커가 만든 피싱 사이트에 접속
8. 그 외의 웹 공격
l Slowloris
ü HTTP의 GET Request를 계속 보낸다.
ü 서버는 해당 Request에 대한 Response를 해 줘야 한다.
ü 그렇게 되면 503 Error(Service Unable)가 발생된다.
l Rudy
ü Are your dead yet?의 줄임 말
ü HTTP의 POST Request의 크기를 극단적으로 크게 만들어서 보낸다고 Header에 저장
ü 보내는 크기에 비해서 내용물은 없는 1byte의 패킷을 지속적으로 전송
ü Server는 전송받는 최종 크기의 데이터를 받을 때 까지 지속적으로 포트를 열고 기다림
ü 결국 서버는 다른 Request를 Response 할 수 없음
'3학년 > 인터넷 보안(웹 해킹)' 카테고리의 다른 글
웹 보안_Chapter07 - 웹 해킹 침해사고 및 대응 (0) | 2018.12.28 |
---|---|
웹 보안_Chapter06 - 02 XSS공격(D-DoS) (0) | 2018.12.27 |
웹 보안_Chapter05 - 웹 해킹 (0) | 2018.12.24 |
WebGoat 실습 하기 (3) | 2018.11.12 |
웹 보안_Chapter04 - SQL인젝션 공격 (0) | 2018.10.03 |