'Security/Web' 카테고리의 글 목록 :: YPrefer's Develop&Security

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

 

 

필자는 LG U+ VIP 인데, 이 등급인 사람에게는 한달에 2회 영화를 무료로!(물론 한명만 대상이 된다.)

볼 수 있는 혜텍이 주어진다.

 

 


 

그런데 예매가 오직 LG U+ 홈페이지. 그것도 데스크탑 환경에서만 가능하고, 영화 상영 1시간 전까지만 가능하다.

상영 1시간 이내에는 아래와 같이 예매 버튼이 비활성화 되어 클릭할수 없게 되는데,.

 

 

개발자 도구를 이용하면 이를 우회 가능하다.

즉, 1시간 이내 상영 영화라도 예매가 가능하다는 것이다..!

개발자 도구의 DOM 탐색기 에서 아래의 네모위에 커서 있는 버튼을 클릭하여

비활성화 된 영화를 클릭하여 확인해보면, 아래와 같이 class=soldout으로 되어있는 것을 볼수 있다.

 

오른쪽 버튼을 눌러 편집으로, class soldout 을 지워준다.

이렇게 해주는 것만으로도 아래와 같이 비활성화가 풀리면서 클릭이 가능해진다.

 

 

이를 통해 영화 예매가 정상적으로 가능해지는데,

이는 체크로직이 서버에 있는 것이 아니라 클라이언트의 자바스크립트에 있기 때문이다.

 

LG입장에서는 이것이 중요하지 않은 체크로직이라 생각해서 클라이언트에 맡겨놓은 것이겠지만,

이렇게 간단한 우회를 통해 개발자가 의도하지 않은 행동을 할 수 있다,.

 

이와 같이 클라이언트에서의 체크로직은 쉽게 우회가 가능하기 때문에,

암호화 (단방향암호화),  패스워드 체크로직 등이 클라이언트에서 이루어지는지 웹점검시에 확인해보아야 한다.


'Security > Web' 카테고리의 다른 글

[Web 진단] XSS 공격 시나리오 & 진단방법  (2) 2016.11.28

+ Recent posts