XSS(Cross Site Scripting)은 OWASP TOP 10에서도 몇년째 상위를 차지할 만큼
빈번하게 발생하고 강력한 취약점이다.
이 취약점은 사용자가 입력한 값을 검사하지 않고 사용하여, 악성 스크립트가 저장 혹은 실행 되어 나타나게 되는 문제점인데,
초창기에 공격자들은 XSS를 통해 쿠키값을 탈취하는 데에 사용 하였다.
XSS를 통해 document.cookie 값을 공격자의 웹서버로 전송한다던지 하는 방식으로 공격 하였으며,
이를 막기 위해 Explorer 6이상에서 부터 HTTP-only속성이 나오게 되었다.
HTTP-only 속성은 클라이언트의 스크립트가 쿠키에 엑세스 할 수 있는지 여부를 지정하게 되고,
이 속성이 설정되어 있다면 스크립트로 쿠키에 접근할 수 없게 되어, 공격자가 쿠키값을 탈취할 수 없게하도록 하였다.
이에 공격자들은 다른 방법을 사용하게 되었는데,
스크립트를 통해 패스워드 변경(현재 패스워드 확인이 없는경우),
아이디와 패스워드를 입력하는 폼을 만들어 방심하게 하여 탈취하는 경우등으로 공격하게 되었다.
예를 들면 아래 동영상을 들 수 있는데,
이 동영상에서 Salesforce.com 우측에 스크립트가 삽입 되는 것을 공격자가 확인하고,
기존 로그인 폼과 똑같은 화면을 제작하여, 삽입한 것인데 동영상을 보면 이해가 쉽다.
동영상 링크 : https://player.vimeo.com/video/135892408
출처: https://www.elastica.net/salesforce-accounts-susceptible-to-hijacking-using-xss-flaw
XSS의 진단 방법은 간단하다.
<img src=YPrefer onerror=alert(1)> 등의 간단한 스크립트 구문을 전송 구간의 모든 파라미터에 넣어보는 것이다.
이때 입력한 값이 그대로 돌아오거나, DB에 저장되어 나중에 조회시 출력이 된다면 XSS취약점이 있는 것으로 볼 수 있다.
스크립트 구문의 입력을 막기위해 개발자들이 XSS필터를 걸기도 하지만, 완벽하지 않는 경우가 많아.
XSS Cheat Sheet를 확인하여 여러방법으로 시도를 해보아야 한다.
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
'Security > Web' 카테고리의 다른 글
[경험공유] LG u+ 롯데시네마 VIP 영화 예매 상영 30분 내 예매불가 우회하기! :) (0) | 2016.06.07 |
---|