2016-09-16 2 views
0

후속 질문 How to exploit HTTP header XSS vulnerability?HTTP "호스트"헤더 XSS 취약점을 악용하는 방법?

페이지가 HTTP 'Host'헤더의 값을 이스케이프없이 인쇄하고 있다고 가정 해 보겠습니다. 그래서이 페이지는 XSS 공격에 취약합니다. 즉, 공격자가 alert ('xss')와 같은 것을 포함하는 'Host'헤더로 GET 요청을 작성할 수 있습니다.

하지만 실제로 어떻게 공격 대상으로 사용할 수 있습니까? 공격자는 어떻게 특정 헤더로 특정 요청을 발행 할 수 있습니까?

+0

원본 질문에 대한 답변을 참조하십시오. 이는 공격자가 악용 할 수있는 실제 방법을 다룹니다. 반영된 부분은 실제로 적용되지 않지만 xss, 캐시 중독 또는 브라우저 플러그인은 저장됩니다. –

+2

[HTTP 헤더 XSS 취약점을 악용하는 방법] 가능한 복제본 (영문) (http://stackoverflow.com/questions/39521743/how-to-exploit-http-header-xss-vulnerability) – Cheesebaron

답변

0

http 호스트 헤더는 기본적으로 서버 구성의 (잠재적으로 많은) 명명 된 기반 호스트 중 어떤 것이 요청을 처리하는 데 사용되어야하는지 파악하기위한 문자열로 사용됩니다. 이 웹 마스터 서버를 구성하면 공격 할 PHP 스크립트를 통해 얻을 수

Host: <script>alert('foo');</script>.example.com 

방법 :

의 당신이 HTTP 요청을 위조하고이 헤더가 보냈 가지고 있다고 가정 해 봅시다 명시 적 호스트 이름을 허용하는 사이트 정의 또는 와일드 카드 이름 지정 와일드 카드가 .example.com 전에 아무 것도 할 수 있기 때문에

<VirtualHost ... 
    ServerName www.example.com 
    ServerAlias *.example.com 
</VirtualHost> 

, 당신의 JS-호스트 이름을 통해 얻을 것입니다.

그러나이 같은 구성된 가상 호스트 : 사용자가 제공 한 호스트 이름이 구성된 호스트 이름의 모든 일치하지 않기 때문에

<Virtualhost ...> 
    Servername www.example.com 
    ServerAlias web.example.com 
</Virtualhost 

는 취약하지 않을 것입니다. 요청은 일부 다른 범용 가상 호스트에 의해 처리 될 수 있지만 취약한 스크립트는 해당 사이트에 존재하지 않으므로 사용자에게는 유용하지 않습니다.

관련 문제