2010-12-02 6 views
2

수업에 대한 최종 시험을 준비 중이며 숙제 문제를 해결하려고합니다. 이것은 제가 처음으로 영 (0) 학점을 받았다는 것 중 하나입니다.크로스 사이트 스크립팅 공격, 문제

이 연습의 목표는 아래 HTML이있는 페이지를 가리키는 URL을 작성하고 협업 정책을 의도 한대로 표시하는 대신 자체 작성한 사용자 협업 정책을 표시하는 것입니다.

이 웹 사이트 http://www.xs4all.nl/~jlpoutre/BoT/Javascript/Utils/endecode.html

를 사용하여이

<script>document.getElementById('collab').firstChild = 'test';</script> 

를 이스케이프 ... 성공없이 다음 시도하고 이런 식으로 추가 ... www.cs.edu /vulnerable.html/?[ 여기에 이스케이프 처리 된 스크립트 삽입]이 작동하지 않았습니다. 내가 여기서 잘못 가고있는 어떤 생각?

다음은 악용하려는 페이지의 HTML 코드입니다 (vulnerable.html).

<html><head> 
<script> 
function loaded() { 
    var parsed = document.location.href.match(/\?(.*)/); 
    if (parsed && parsed[1]) 
    eval(unescape(parsed[1])); 
} 
</script> 
<title>Example Page Title</title></head> 
<body onload="loaded()" bgcolor="#ffffff"> 
<font face="Arial,Arial,Helvetica"> 

<table border=0 cellspacing=4 cellpadding=4> 
<tr> 
<td valign=top width="20%" bgcolor="#ffff66"> 
&nbsp;<p> 
&nbsp;<p> 
&nbsp;<p> 
<a href="home.html"> 
Home</a> <p> 

Course description <p> 
<a href="notes.html"> 
Lecture notes</a> <p> 
<a href="assign.html"> 
Assignments</a> <p> 
<a href="ref.html"> 
Reference</a> <p> 
&nbsp;<p> 
&nbsp;<p> 
&nbsp;<p> 

</td> 

<td valign=top width=800> 

<h2 align=center> 
Example course title 
</h2> 
<p> 
<h3 align=center>Fall 2010</h3> 
<p> 


<h2>Syllabus</h2> 

Syllabus here... 

<h2>Collaboration policy</h2> 

<P id="collab"> 
All assignments are strictly individual. No collaboration 
is permitted. 



</td> 
</tr> 
</table> 

</font> 
</body> 
</html> 
+0

일반적인 팁으로, 어디까지 망칠 볼 수있는 방화범이 끌려. JS의 페이지를 콘솔의 페이지에서 실행하여 테스트 할 수 있습니다. –

+2

나는 그런 숙제를 받았으면 좋겠다. – naugtur

답변

2

벡터에서 스크립트 태그를 제거하십시오. 그것은 eval html이 아닌 javascript를 실행하는 함수에 배치됩니다.

또한 당신은 당신의 벡터가되고 싶어 : 는 document.getElementById('collab').innerHTML = 'test';

+0

대단히 고마워요! – user527627

+0

@ user527627 : 유용한 답변을 upvote/accept해야합니다. – darioo

0

이봐, 당신은 해당 페이지 (조차 평가)에 아무것도 수정하지 안된다. 이 페이지는 URL에 추가 된 everithing을 가져 와서 평가 기능을 전달하기 때문에 취약합니다. (내가 모든 지정이 엄격하게 개인 있습니다

www.cs.edu/vulnerable.html/?document.getElementById('collab').innerHTML="Very very wrong.Xss succeded" 대신`협력 정책에게 전화를 의미하여 테스트 링크 www.cs.edu/vulnerable.html/? 후이 document.getElementById('collab').innerHTML="Very very wrong.Xss succeded"하여 스크립트를 호출하려고합니다. 어떤 협력이 허용되지 않는다. you will see 협력 정책

아주 아주 잘못 .Xss succeded
` 이제 위의 링크를 다른 사람에게 보내고 그 페이지에 명함 텍스트를 삽입하는 대신 자신의 쿠키를 강철하게 만드는 스크립트를 정교하게 작성하는 대신 야후 메일 계정 (있는 경우)을 말하십시오. .

편집 : 방법으로 좋은 숙제 : D

관련 문제