
@app.route("/vuln")
def vuln():
return render_template("vuln.html")
소스코드는 이전 xss-1과 비교했을 때 /vuln 경로에서 param을 리턴하는 대신 html 파일 자체를 리턴하는 걸로 바뀐 것을 제외하면 전부 동일하다.
우선 /vuln 페이지에서 동일하게 스크립트를 작성해본다.

스크립트가 동작하지 않는다.

소스코드를 보니 <script> 태그가 정상적으로 들어가있지만 태그 안쪽의 내용은 단순 문자열 처리를 한 것으로 보인다.
이번엔 <img> 태그를 입력해본다.

<img> 태그는 정상적으로 작동한다.
해당 태그에 js를 실행시킬 수 있는 onerror 속성을 추가하고 이전에 사용했던 리다이렉션 코드를 값으로 입력한다. 이때 에러 발생 유도를 위해 src 속성을 추가해 아무 값이나 입력한다.
<img src="x"></img>
