# XSS Filtering Bypass


  • 바로 문제 파일을 받아 소스코드를 분석해보겠습니다.

app.py

  • app.py 파일에는 xss_filter 함수가 존재하는데요.
  • _filter 리스트 내부의 문자열을 공백으로 치환하는 블랙리스트 필터링이 적용되어 있습니다.
  • 재귀적으로 치환하는 것도 아니고, 최초에 1번만 리스트 내 문자열을 공백으로 치환하고 있습니다.
    • 따라서, scrscriptipt 와 같은 문자열을 넣으면 우회가 가능해 보입니다.

PoC

  • /vuln 경로에서 XSS 필터링 우회를 시도해 보겠습니다.
    • 우회 구문은 다음과 같습니다. (`alert(1))

  • /vuln 경로의 Reflected XSS 취약점을 이용해서 플래그를 출력해 보겠습니다.
  • 이 문제도 xss-1, xss-2, csrf-1, csrf-2 문제들과 원리는 동일합니다.
    • <scriscriptpt>window.open('/memo?memo=' + document.cookie);</scriscriptpt>

  • /memo 경로로 접근하면, 플래그가 저장되어 있는 걸 확인할 수 있습니다. !야호!

🐛.. 🐛.. 🐛..