전체 글125 csrf-2 [문제] [풀이] @app.route("/vuln") def vuln(): param = request.args.get("param", "").lower() xss_filter = ["frame", "script", "on"] for _ in xss_filter: param = param.replace(_, "*") return param /vuln 페이지를 구성하는 코드이다. 코드를 살펴보면 이용자가 전달한 param 파라미터의 값을 출력한다. 이때, 이용자의 파라미터에 "frame", "script", "on" 3가지의 악성 키워드가 포함되어 있으면 이를 '*' 문자로 치환한다. 해당 키워드 필터링은 XSS 공격을 방지하기 위한 목적으로 존재한다. /vuln 페이지에 접속하면 ' return '' /.. 2022. 9. 3. csrf-1 [문제] [풀이] @app.route("/vuln") def vuln(): param = request.args.get("param", "").lower() xss_filter = ["frame", "script", "on"] for _ in xss_filter: param = param.replace(_, "*") return param /vuln 페이지를 구성하는 코드이다. 코드를 살펴보면 이용자가 전달한 param 파라미터의 값을 출력한다. 이때, 이용자의 파라미터에 "frame", "script", "on" 3가지의 악성 키워드가 포함되어 있으면 이를 '*' 문자로 치환한다. 해당 키워드 필터링은 XSS 공격을 방지하기 위한 목적으로 존재한다. /vuln 페이지에 접속하면 ' return '' /.. 2022. 9. 3. xss-2 [문제] [풀이] @app.route("/vuln") def vuln(): return render_template("vuln.html") /vuln 페이지를 구성하는 코드이다. 코드를 살펴보면 render_template 함수를 통해 vuln.html을 출력한다. /vuln 페이지에 접속하면 vuln.html의 내용을 확인할 수 있다. URL의 script 태그로 인해 alert 창이 출력되어야 하지만 출력되지 않는 것을 알 수 있다. @app.route("/memo") def memo(): global memo_text text = request.args.get("memo", "") memo_text += text + "\n" return render_template("memo.html", memo=.. 2022. 9. 1. Hacker's Playground 2022 1. SQLi 101 (Web) SQL Injection으로 flag를 얻는 문제로 예상된다. USERNAME에 항상 True를 나타내는 쿼리인 admin' or '1'='1를 입력하고, PASSWORD에 pw를 입력해주었다. 쿼리 전송 시, OR 연산자를 사용할 수 없다는 경고문이 나타난다. OR 연산자를 필터링하고 있는 것으로 추측된다. OR 연산자 필터링을 우회하기 위하여 OR 대신 ||를 사용하여 쿼리를 전송했다. 쿼리 전송 시, flag를 확인할 수 있다. 2. SQLi 102 (Web) SQLi 101과 동일하게 SQL Injection으로 flag를 얻는 문제로 예상된다. 오른쪽 상단의 HINT 버튼을 누르면 PHP 코드를 확인할 수 있다. 2022. 8. 25. xss-1 [문제] [풀이] @app.route("/vuln") def vuln(): param = request.args.get("param", "") return param /vuln 페이지를 구성하는 코드이다. 코드를 살펴보면 이용자가 전달한 param 파라미터의 값을 출력한다. /vuln 페이지에 접속하면 script 태그로 인해 alert 창이 뜨는 것을 확인할 수 있다. @app.route("/memo") def memo(): global memo_text text = request.args.get("memo", "") memo_text += text + "\n" return render_template("memo.html", memo=memo_text) /memo 페이지를 구성하는 코드이다. 코드를 살.. 2022. 8. 21. Session-basic [문제] [풀이] users = { 'guest': 'guest', 'user': 'user1234', 'admin': FLAG } # this is our session storage session_storage = { } @app.route('/') def index(): session_id = request.cookies.get('sessionid', None) try: # get username from session_storage username = session_storage[session_id] except KeyError: return render_template('index.html') return render_template('index.html', text=f'Hello {userna.. 2022. 8. 20. 이전 1 ··· 9 10 11 12 13 14 15 ··· 21 다음