CSRF-1 풀이

먼저 문제 페이지에 접속하면 4개의 페이지가 보인다.

코드를 보며 분석해보자.

/vuln 에서는 쿼리 값 param을 소문자로 변환 후에 XSS에 이용되는 태그들을 *로 필터링 하고 있다. 따라서 frame, script, on 단어를 쓸 수 없다.

우리가 이용해야 할 페이지는 /flag이다.

/vuln이 아닌 다른 주소에서 직접 flag를 가져오는 방법을 고민해봤지만 param을 리턴하는건 /vuln 밖에 없기 때문에 다른 방법은 없다.

def read_url (url , cookie ={"name": "name", "value": "value"}):

#쿠키 값을127.0.0.1(localhost) 에서 요청했을때만 반환되게 설정

cookie .update({"domain": "127.0.0.1"})

try :

service = Service(executable_path ="/chromedriver")

options = webdriver.ChromeOptions()

for _in [

"headless",

"window-size=1920x1080",

"disable-gpu",