Cacti: CVE-2017-11691: Cross-site scripting
Cacti는 네트워크 그래프 솔루션으로 쉬운 인터페이스와 PIA(Plugin Architecture) 패치를 통해 적용 가능한 다양한 플러그인들로 인해 많은 사용자들이 이용하고 있다.
Referer 값에 스크립트 구문 삽입 시 해당 스크립트가 동작되는 XSS(Cross Site Scripting) 취약점이 1.1.13 버전에서 발생하였다. 취약점이 발생한 파일은 auth_profile.php
로 현재는 조치가 완료된 상태이다.
POC
요청 시 Referer 값에 스크립트 구문 삽입
http://192.168.1.206/cacti/auth_profile.php?action=edit
Referer: test4fun’;alert(1)//페이지 내
'Return'
버튼 선택스크립트 동작 확인
Fix
Referer 값을 htmlspecialchars()함수를 이용하여 치환하는 방식으로 조치되었다.
htmlspecialchars()
특수문자를 HTML 인코딩 형식으로 치환'&' : '&' '"'(겹따옴표) : '"' '''(홑따옴표) : ''' '<' : '<' '>' : '>'
$('input[value="<?php print __esc('Return');?>"]').unbind().click(function(event) {
- document.location = '<?php print $_SESSION['profile_referer'];?>';
+ document.location = '<?php print htmlspecialchars($_SESSION['profile_referer']);?>';
});
});