ServerSide: SSRF
·
Web
Server-side Request Forgery웹 서비스의 요청 변조브라우저가 변조된 요청을 보내는 CSRF와는 달리 웹 서비스의 권한으로 변조된 요청을 보낼 수 있음 💡 웹 개발 언어는 HTTP 요청을 전송하는 라이브러리 제공 (PHP: php-curl, NodeJS: http, Python: urllib, requests)이런 라이브러리는 서버와 서버간 통신을 위해 사용되기도 함일반적으로 다른 웹 어플리케이션에 존재하는 리소스를 사용하기 위한 목적으로 통신 (마이크로서비스 간 통신, 외부 API 호출, 외부 웹 리소스 다운로드 등..)최근에는 관리 및 코드 복잡도를 낮추기 위해 마이크로서비스들로 웹 서비스 구현하는 추세임각 마이크로서비스는 주로 HTTP. GRPC등을 사용해 API통신*마이크로서비..
ClientSide: CSRF
·
Web
Cross Site Request Forgery교차 사이트 요청 위조 임의 사용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점공격자는 임의 사용자의 권한으로 서비스 기능을 사용하여 이득을 취할 수 있다. CSRF공격이 성공하기 위해선 공격자가 작성한 악성 스크립트를 사용자가 실행해야한다. 여기서 악성 스크립트는 HTTP 요청을 보내는 코드이다. 공격 스크립트는 HTML이나 JS로 작성할 수 있다. img 태그를 사용하거나 form 태그를 보통 사용한다.img→ 이미지 크기를 줄여서 사용자에게 들키지 않고 임의 페이지에 요청 보낼 수 있다.form: 입력된 양식을 웹페이지에 전송 vs XSS모두 클라이언트를 대상으로 하는 공격이고, 사용자가 악성 스크립트가 포함된 페이지에 접속하도록 유..
XSS-2
·
Web
웹 서비스 분석취약점 분석vuln.html에 있는 코드 한 줄이다.현재 페이지의 URL 쿼리 문자열에서 param값 추출, 해당 값을 페이지 내의 vuln이란 ID를 가진 요소의 내부 HTML로 설정한다. 즉, 파라미터의 값을 통해 쓰기를 수행한다.익스플로잇
XSS-1
·
Web
웹 서비스 분석취약점 분석/memo와 /vuln 페이지가 사용자의 입력값을 페이지에 출력한다. /memo는 render_template()을 이용하여 memo.html을 출력한다. render_template()은 전달된 템플릿 변수를 기록할 때 HTML 엔티티 코드로 변환하여 저장하기에 XSS가 발생하지 않는다. /vuln은 사용자의 입력값을 페이지에 그대로 출력하기에 XSS가 발생할 수 있다.익스플로잇way1. /memo 페이지 사용 way2. 외부 웹서버 사용(드림핵 웹 서버 서비스)
ClientSide: XSS
·
Web
Cross-site scripting클라이언트 사이드 취약점. 웹 페이지의 이용자를 대상으로 공격할 수 있는 취약점 이용자가 삽입한 내용을 출력하는 기능에서 발생한다. 공격자가 웹 리소스에 악성 스크립트를 삽입하여 이용자의 웹 브라우저에서 해당 스크립트 실행 가능 해당 취약점을 통해 특정 계정의 세션 정보 탈취, 해당 계정으로 임의의 기능 수행 가능 → 해당 취약점은 SOP 보안 정책의 등장으로 서로 다른 오리진에서 정보를 읽는 행위가 이전에 비하여 힘들어짐 XSS 종류종류설명Stored XSSXSS에 사용되는 악성 스크립트가 서버에 저장되고 서버의 응답에 담겨오는 XSS서버의 DB 또는 파일 등의 형태로 저장된 악성 스크립트 조회 시 발생 게시물과 댓글에 악성 스크립트를 포함하여 업로드하는 방식이..