HOME
home
CV News
home

Cross-Site-Script #5

속성
WEB
날짜
이번에는 < , >와 같은 특수문자를 사용할 수 없는 상태이다. 잘 생각해보면 < , >를 사용할 수 없는 상태이면 에디터의 기본 기능인 글자색 변경, 이미지, 링크 등의 기능 또한 사용이 불가능 할텐데 그럼 서비스에 문제가 생기는 것이 아닌가? 라고 생각해볼 수 있다.
그래서 글자 색상을 변경해 보면 span style태그는 정상적으로 사용되었고, 글자 색상도 정상적으로 변경된 것을 확인할 수 있다.
에디터의 기본기능은 HTML 태그 사용이 가능하다면 기본 기능을 사용할때 중간 내용만 변경해 주면 된다. <span style="color: rgb(255, 0, 0);">TEST<span> → <span onclick="alert(1)">TEST<span>
게시글에 접근하여 TEST 글자 클릭 시 팝업창이 노출되는 것을 확인할 수 있다. 사실 이 취약점은 CKeditor에서 20년도에 공개된 취약점인데 생각보다 다른 에디터에서도 많이 발생한다.
다음으로 파일을 업로드할 때 XSS 공격을 하는 방법이다. 파일을 업로드 하면 사용자 다운로드 편의를 위해 업로드 된 파일 명을 노출 시켜주는 점을 악용하는 것이다.
파일 업로드 시 프록시 툴을 이용하여 인터셉터 후
파일 명에 XSS 테스트 스크립트를 삽입한다. 말 그대로 정말 간단한 방법이지만 한번 짚고 넘어가야할 문제가 있다.
파일 이름에 XSS를 시도할 때에는 서버가 윈도우인지, 리눅스 기반의 서버인지 확인해야 한다. 이유는 윈도우에서 파일 명에 특수문자를 삽입해 보면 알 수 있다. 윈도우는 자체적으로 특수문자를 파일 명으로 사용하지 못하게 필터하고 있기 때문이다.
간단하게 서버의 OS를 확인할 수 있는 방법을 두가지만 소개하자면 먼저 URL 주소를 대, 소문자로 변경해 보는 것이다. 윈도우의 경우엔 대, 소문자를 구분하지 않지만 리눅스의 경우 대, 소문자를 구분하기 때문에 대문자로 변경 시 404에러 페이지가 노출되는 점을 이용하여 구분할 수 있다.
두번 째 방법은 TTL값을 이용한 방법이다. TTL이 어떤것을 의미하는지 궁금하다면 검색을 통해 확인해 보는 것을 추천한다. 간단한 ping test를 통해 TTL 값이 64에 가깝다면 리눅스, 128에 가깝다면 윈도우 라고 구분하는 방법도 있다.
중간에 설명이 조금 들어갔지만 이렇게 파일 명에 스크립트를 삽입하고 페이지에 접근하게 되면 스크립트가 동작하여 팝업이 노출되는 것을 확인할 수 있다.