Problem
How-to-solve
우선 app.py부터 분석.
xss문제와 별반 다르진 않음.
하지만 frame, script, on 태그가 필터링이 되어 있었음.
notice_flag에 로컬(127.0.0.1)에서 admin으로 접근하면 flag를 얻을 수 있음.
flag에서 global 변수(memo_text)를 이용해 접근하기로 함.
script가 필터링되는 것을 확인.
hello가 한줄로 삽입되는 것을 확인.(개인적으로 두줄넘어가는게 싫음)
notice_flag는 로컬(127.0.0.1)이 아니어서 접근이 안됨.
결국 flag에서 날리는게 맞았음.
frame, script, on 말고 다른 것 중 애용하는 img를 쓰기로 결정.
태크에 스크립트를 넣어 접근하기로 함.
<img src=/admin/notice_flag?userid=admin>
이렇게 작성한 이유는 우선 접근하는 페이지가 /admin/notice_flag이고 app.py에서 userid가 admin이 아니면 거부된다고 있어서임.
제출 후에 memo에 접근하기로 함.
flag가 생성됨.
memo로 하는 이유는 값을 남길 수 있는 게 memo밖에 없음.
끝!