Information Security Study
Chapter 9 저장된 XSS 취약점 실습 본문
'저장된 XSS'는 악의적인 스크립트 코드가 웹에 입력되면서 데이터베이스에 저장된다.
불특정 다수의 사용자가 공격자의 게시물에 접근
=> 지속적으로 악의적인 스크립트가 실행
=> 위협 영향도 높다
범죄자는 이를 이용해 악성코드를 배포한다
1) 악성 행위를 하는 스크립트 코드를 게시물에 등록
1) 사용자가 게시물을 클릭하면 악성 스크립트 코드가 실행
<script>alert('Succeed');</script>
텍스트 입력 공간에 'Succeed'라는 메시지를 출력하는 스크립트 코드 입력 후 submit
스크립트가 실행되어 경고창으로 'Succeed'라는 메시지를 출력된다.
<script>alert(document.cookie)</script>
텍스트 입력 공간에 사용자의 쿠키 값을 경고창으로 출력하는 스크립트 코드를 입력하였다.
submit을 누르면 경고창으로 사용자의 쿠키값이 출력된다.
다음 실습 페이지는 비밀번호 힌트를 새로 설정하는 기능을 제공한다.
<script>alert('Succeed');</script>
새로운 힌트 입력란에 'Succeed'라는 메시지를 출력하는 스크립트 코드를 입력했다.
change를 누르면 변경되었다는 메시지가 출력된다.
비밀번호 힌트를 확인할 수 있는 페이지로 이동해 비밀번호 힌트가 출력되도록 유도해보았다.
로그인을 하니 방금 전 입력한 스크립트가 실행되어 'Succeed'가 출력됨을 확인할 수 있었다.
<script>alert(document.cookie)</script>
chage secret 페이지로 돌아가 위의 스크립트 코드를 입력해 secret 메시지를 변경해준 뒤
다시 로그인을 하니 사용자의 쿠키값이 경고창으로 출력됨을 확인할 수 있었다.
새로운 유저를 생성해준 뒤 똑같이 실습해보았다.
<script>alert('Succeed');</script>
secret 메시지는 출력되지 않고 'Succeed' 메시지만 출력됨을 확인하였다.
위의 실습 페이지는 접속한 웹 브라우저의 정보가 저장된 User-Agent 헤더 값을 테이블 형태로 출력한다
최근 접속한 순서대로 3개까지만 출력된다.
download 글씨를 클릭하면 페이지에 접속한 모든 User-Agent의 정보를 볼 수 있다.
버프 스위트 실행이 안되어 이 실습은 실제로 진행하지는 못했다.
버프스위트로 User-Agent 헤더에 스크립트 코드를 입력해 테이블에 스트립트를 저장하는 XSS 공격을 시행해보았다.
<script>alert('Succeed');</script>
버프스위트에서 위 스크립트 코드를 입력한다
그러면 실습 페이지에서 스크립트 코드가 실행되어
Succeed 메시지가 출력된다.
<script>alert(document.cookie)</script>
버프스위트에서 위 스크립트 코드를 입력한다
위와 마찬가지로 실습 페이지에서 스크립트 코드가 실행되어
경고창으로 쿠키값이 출력된다.
'Web Hacking' 카테고리의 다른 글
Chapter 25 XML 외부 엔티티 공격 (0) | 2022.09.29 |
---|---|
Chapter 10 반사된 XSS 취약점 GET, POST 실습 (0) | 2022.09.19 |
0913 실습 환경 구축 (0) | 2022.09.18 |
0728 반사된 XSS 취약점 POST 10.2 (0) | 2022.08.02 |
0712 Blind SQL 인젝션 5.2 Time Based (0) | 2022.07.17 |