728x90
반응형

크로스사이트스크립트 2

DreamHack [xss-2]

드림핵 워게임 xss-1 에 이은 xss-2 문제이다. 앞선 xss-1 문제와 비슷하지만 약간 다르다. vuln 페이지는 xss 취약점이 있는 페이지 memo 페이지는 전달받은 인자를 웹페이지에 출력하는 페이지 flag 페이지는 vuln 페이지의 취약한 파라미터에 입력값을 전달해주는 페이지이다. 이전 문제와 같이, 구문을 입력했지만 flag값이 출력되지 않았다. 이유는 태그 사용이 막혀있기 때문이다. html5의 innerhtml 을 이용할 시, 태그는 실행되지 않는다. 따라서 태그가 아닌 다른 다른 방법을 이용한다. 태그 대신 svg/onload 태그를 사용했다. svg/onload 태그 뿐만 아니라, 와 같은 태그도 사용할 수 있다. 이미지 주소에 오류가 있을 시 해당 구문을 실행하라는 의미이다. 이..

DreamHack [xss-1]

해당 문제에서는 총 4개의 페이지가 제공된다. 1 2 3 4 @app.route("/vuln") def vuln(): param = request.args.get("param", "") # 이용자가 입력한 vuln 인자를 가져옴 return param # 이용자의 입력값을 화면 상에 표시 cs /vuln 페이지이다. XSS 취약점이 있는 페이지이다. param 이라는 변수에 값을 입력받게 되며, 문자열 필터링을 하지 않는다. 따라서 해당 페이지에 스크립트문을 입력하면 필터링이 없으므로 동작하게 된다. 1 2 3 4 5 6 @app.route('/memo') # memo 페이지 라우팅 def memo(): # memo 함수 선언 global memo_text # 메모를 전역변수로 참조 text = requ..

728x90
반응형