본문 바로가기

web hacking4

Exercise: XSS 드림핵 워게임 XSS-1를 통해 XSS를 연습하도록 할 것이다. 파이썬 Flask 프레임워크로 구현되어 있다. 이번 문제는 다른 사용자의 쿠키를 탈취해야 하기 때문에, 다른 사용자가 방문하는 시나리오가 필요하다. 문제 목표 및 기능 이번 문제의 목표는 XSS를 통해 임의 사용자의 쿠키를 탈취하는 것이다. 문제에서의 네 가지 페이지 페이지 설명 / 인덱스 페이지 /vuln 이용자가 입력한 값을 출력한다. /memo 이용자가 메모를 남길 수 있으며, 작성한 메모를 출력한다. /flag 전달된 URL에 임의 이용자가 접속하게끔 한다. 해당 이용자의 쿠키에는 FLAG가 존재한다. 웹 서비스 분석 엔드포인트: /vuln @app.route("/vuln") def vuln(): param = request.args.. 2021. 12. 7.
ClientSide: XSS XSS XSS는 클라이언트 사이드 취약점 중 하나로, 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행할 수 있다. 공격자는 해당 취약점을 통해 특정 계정의 세션 정보를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있다. 위 그림과 같이 드림핵 웹 페이지에서 XSS 취약점이 존재하면 "https://dreamhack.io" 내에서 오리진 권한으로 악성 스크립트를 삽입한다. 이후에 이용자가 악성 스크립트가 포함된 페이지를 방문하면 공격자가 임의로 삽입한 스크립트가 실행되어 쿠키 및 세션이 탈취될 수 있다. xss 발생 예시와 종류 XSS 공격은 이용자가 삽입한 내용을 출력하는 기능에서 발생한다. 기능의 예로 로그인 시 출력되는 문구 또는 게시물과 댓글이 있다. .. 2021. 12. 7.
Mitigation: Same Origin Policy Same Origin Policy (SOP) 쿠키에는 민감한 정보가 보관되고, 브라우저 내부에 저장이된다. 그리고 브라우저가 웹 서비스에 접속할 때 브라우저는 자동으로 쿠키를 헤더에 포함시켜 요청을 보낸다. 이 덕분에 같은 웹 서비스에 한번 로그인한 후 일정 기간은 로그인하지 않고도 바로 서비스를 이용할 수 있다. 공격자가 이를 이용해 사용자가 악의적인 페이지를 접속하게 유도하고 페이지가 자바스크립트를 사용해 사용자의 SNS 웹 서비스로 요청을 보내면 자바스크립트로 요청을 보낸 페이지는 로그인된 사용자의 SNS 응답을 받는다. 더 나아가 공격자가 글을 올리거나 삭제하고, 메신저를 읽는 것도 가능할 것이다. 이를 방지하기 위해 동일 출처 정책, Same Origin Policy(SOP) 보안 메커니즘이 탄.. 2021. 12. 7.
Exercise: Cookie 쿠키에 대한 이해를 위해 드림핵 워게임 cookie 문제로 연습을 해볼 것이다. 이번 문제는 파이썬 Flask 프레임워크로 구현되어 있다. 문제 목표 및 기능 / : 이용자의 username을 출력하고 관리자 계정인지 확인한다. /login : username, password를 입력받고 로그인한다. 서비스 분석 엔드포인트: / index 페이지 코드 @app.route('/') # / 페이지 라우팅 def index(): username = request.cookies.get('username', None) # 이용자가 전송한 쿠키의 username 입력값을 가져옴 if username: # username 입력값이 존재하는 경우 return render_template('index.html', tex.. 2021. 12. 7.