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
는 취약하지 않을 것입니다. 요청은 일부 다른 범용 가상 호스트에 의해 처리 될 수 있지만 취약한 스크립트는 해당 사이트에 존재하지 않으므로 사용자에게는 유용하지 않습니다.
원본 질문에 대한 답변을 참조하십시오. 이는 공격자가 악용 할 수있는 실제 방법을 다룹니다. 반영된 부분은 실제로 적용되지 않지만 xss, 캐시 중독 또는 브라우저 플러그인은 저장됩니다. –
[HTTP 헤더 XSS 취약점을 악용하는 방법] 가능한 복제본 (영문) (http://stackoverflow.com/questions/39521743/how-to-exploit-http-header-xss-vulnerability) – Cheesebaron