
YZMCMS v3.7 최신 버전 XSS 취약점 CVE-2018-8078
YZMCMS v3.7 최신 버전 xss 취약점
YZMCMS V3.7 저장형 XSS
이 xss는 v3.7에 새로 추가된 광고 관리 모듈에 존재하며, 그림과 같습니다:
이 xss는 v3.7의 새로운 광고 관리 모듈에 존재하며, 그림과 같습니다:

YzmCMS-V3.7\application\advertisement\controller\adver.class.php의 55-70행에서 광고 관리 편집 기능의 구체적인 코드를 찾을 수 있으며, 그림과 같습니다:
YzmCMS-V3.7\application\advertisement\controller\adver.class.php, 55-70행에서 광고 관리 편집 기능의 구체적인 코드를 찾을 수 있으며, 그림과 같습니다:

그중 59행에서 getcode라는 메서드를 호출하고 POST 방식으로 매개변수 세트를 전달합니다. 이 메서드를 계속 추적해 보면, 이 메서드는 $data[‘title’]을 아무런 필터링도 수행하지 않은 채 반환하고, 이를 매개변수로 $POST_[‘code’]에 직접 반환합니다. 그림과 같습니다:
그중 59행에서 getcode라는 메서드를 호출하고 POST 방식으로 매개변수 세트를 전달합니다. 이 메서드를 계속 추적해 보면, 이 메서드는 $data['title']을 아무런 필터링 없이 직접 반환하고 매개변수를 $POST_[‘code’]로 반환합니다. 그림과 같습니다:

edit으로 돌아가 계속 추적해 보면, edit 메서드에는 adver_edit라는 이름의 파일을 포함하는 include가 있습니다. 그림과 같습니다:
edit으로 돌아가 계속 추적해 보겠습니다. edit 메서드의 include는 adver_edit라는 파일을 포함합니다. 그림과 같습니다:

YzmCMS-V3.7\application\advertisement\view 경로에서 이 파일을 찾을 수 있습니다. 지금까지 yzmcms가 데이터에 대해 어떠한 필터링도 수행하지 않고 페이지에 직접 출력하는 것을 확인할 수 있습니다. 그림과 같습니다:
YzmCMS-V3.7\application\advertisement\view 경로에서 해당 파일을 찾을 수 있습니다. 지금까지 yzmcms가 데이터를 전혀 필터링하지 않고 페이지에 직접 출력하는 것을 확인할 수 있습니다. 다음 그림과 같습니다:

백엔드 관리 인터페이스에서 이 기능을 찾을 수 있습니다. 그림과 같습니다:
백그라운드 관리 인터페이스에서 이 기능을 찾을 수 있습니다. 그림과 같습니다:

제출을 클릭한 후 burp로 해당 데이터 패킷을 가로채고 title을 ">로 변경한 다음 전송을 클릭합니다. 그림과 같습니다:
제출 후 burp로 데이터 패킷을 가로채고 title을 ">로 변경할 수 있습니다. 전송을 클릭합니다. 그림과 같습니다:

광고 관리 인터페이스로 돌아가 새로고침하면 이때 xss 팝업이 표시됩니다. 그림과 같습니다:
광고 관리 인터페이스로 돌아가 새로고침하면 이때 xss 팝업이 표시됩니다. 그림과 같습니다:
