전체 글

Web Hacking Advanced

[dreamhack] CSS Injection

개념정리○ CSS Injection공격자가 웹 페이지의 스타일시트에 악의적인 CSS 코드를 삽입하여 웹 페이지의 모양이나 동작을 변조하는 공격이다. XSS는 script를 삽입해서 공격하는 방식이다. 이와 비슷한 방식으로 style sheet의 CSS를 삽입해서 공격하는 방식이 CSS Injection이다. 예를 들어서 생각해보자. 웹 페이지 사용자가 웹 사이트의 background 색깔을 지정할 수 있는 서비스가 있다고 하자. 해당 서비스의 style 태그는 위와 같이 구성될 것이다. color라는 사용자의 입력값을 받고 동적으로 CSS 코드를 생성한다. 만약, 이 과정에서 color에 대한 검증이 없다면 어떤 일이 발생할까? black; } input[type=text] { width: ; heigh..

Web Hacking Advanced

[dreamhack] CSRF Advanced

문제풀이@app.route("/")def index(): session_id = request.cookies.get('sessionid', None) try: username = session_storage[session_id] except KeyError: return render_template('index.html', text='please login') return render_template('index.html', text=f'Hello {username}, {"flag is " + FLAG if username == "admin" else "you are not an admin"}')admin으로 로그인하면 flag가 출력된다. @app.rout..

Web Hacking Advanced

[dreamhack] CSP Bypass Advanced

문제풀이@app.after_requestdef add_header(response): global nonce response.headers['Content-Security-Policy'] = f"default-src 'self'; img-src https://dreamhack.io; style-src 'self' 'unsafe-inline'; script-src 'self' 'nonce-{nonce}'; object-src 'none'" nonce = os.urandom(16).hex() return responsebase-src이 설정되지않았다. base-src는 설정되지않으면 default로 base 태그를 사용할 수 있도록 허용한다.  태그는 HTML 문서 내에서 상대적인 UR..

keyme
keyme - Security Study