본문 바로가기

[PROGRAMMING]/[WEB]

XSS 공격

XSS : 사용자로부터 입력받은 값을 검증하지 않고 실행해서 생기는 취약점
         XSS자체적으로 위험이 없으나 함께 사용되는 코드에 따라 여러가지 공격 발생.
         사용자가 접근하는 페이지에 XSS 공격코드를 삽입하여 사용자가 원하지 않는 페이지로 이동하거나 악성코드에 감염하게
         되며 또한 사용자 정보 수집에 이용되기도 한다.
대응법
URL 입력값을 검증하여 < > 기호가 포함되어 있는지를 확인하여 필터한다.
EX)Keyword=Replace(keyword,"<","&lt")
     Keyword=Replace(keyword,"<","&lt")
Replace(문자열,찾을문자열,바꿀문자열) 함수를 이용
1.XSS 스크립트 공격이 가능한지여부를 체크한다.
 1)TEST계정을 하나만들고 게시판에 글을 남긴다.
 2)게시판에 글을남긴다.글의내용은 <SCRIPT>ALERT(DOCUMENT.COOKIE)</SCRIPT>
 3)게시물을 읽게되면 게시물을 클릭한 사용자의 쿠키 값이 팝업창으로 나타난다.
 4)팝업창이 나타나면 해당 게시판은 XSS취약하다는걸 알수있다.




작성한 글밑에 글을 읽으면 쿠키값이 팝업으로 나타나게 스크립트를 삽입한다.




글을 읽게되면 위와같이 쿠키값이 팝업으로 보여지게되는대 이것은 XSS 공격에 취약하다는것이다.


 XSS 공격이 가능하면 TXT파일로작성후 GETCOOKIE.ASP파일로 저장한다


그후 작성한GETCOOKIE.ASP 파일을 게시물에 첨부파일에 저장하고 관리자에게 글을 쓴다.
그리고 첨부된 asp파일 오른쪽클릭후 속성에서 주소를 복사하여 메모장에 복사한다.


파일을 첨부하고 게시물 내용에 스크립트를 삽입한다.


관리자는 공격자가 작성한 게시물을 읽게되고 위와같은 상태가된다.



공격자는 아까작성한 asp파일로인해 관리자가 글을 읽게되면  http://주소/board/pds/getcookie.txt 이주소로 쿠키값이 웹서버에 저장된다.
그럼 공격자는 cooxie라는 프로그램을 이용하여 쿠키값을 관리자의 쿠키값으로 변경한다.


그럼 위와같이 ADMIN권한으로 게시판에 접속이 가능하게된다.

처음으로 책을보고 공부한내용을 정리차원에서 실습해보았는대 흥미롭네요..ㅎㅎ
책에나온 xp랑 sql personl 버전구하느라 3일동안 고생했지만 어찌되었든 성공했네요 ^^
기사도끝났고 이제 당분간 자격증공부는 생각하지말고 해킹공부만 해야겠습니다.