Web Security(27)
-
CSS injection
CSS Injection은 공격자가 삽입한 값을 통해서 웹 페이지 내 로드된 CSS(스타일시트) 또는 Style 태그와 속성 등 페이지의 CSS를 통제하는 취약점입니다. html injection과 비슷한데요. css를 컨트롤 하는 것에서 차이점이 있습니다. html injection이 가능한 경우 input 요소 페이로드red;} input[id="InputApitoken"][value^= a ]{ background: url(' ');}input[id="InputApitoken"][value^= a ]{ background: url(' ');}input[id="InputApitoken"][value^= b ]{ background: url(' ');}input[id="InputApitoken"][v..
2024.09.23 -
Relative Path Overwrite
relate path overwrite란?relate path overwrite(RPO)는 경로를 브라우저가 잘못 인식하거나, 잘못된 경로 설정으로 발생되어 원래의 의도한 경로를 해커가 의도한 경로로 덮어쓰위는 취약점입니다. 브라우저가 경로를 잘못인식하는 경우는 이유는 아래와 같다.https://naver.com/name?tag=min이라는 경로를 https://naver.com/name.html/min 처럼 표현이 가능하다. 이렇게 쿼리 방식이 아니라 경로를 기반으로 데이터를 받아오는 것이 가능하기 때문이다.from flask import Flask, requestapp = Flask(__name__)@app.route('/name.html/', methods=['GET'])def vuln(additi..
2024.09.22 -
CSP : Content-Security-Policy
이제 xss의 경우 sop와 cors를 통해서 방어됩니다. csrf의 경우 samesite, csrf token 등으로 보호됩니다. 그렇지만 html을 입력 받는 창을 통해서 xss와 csrf 취약점을 발생시킬 수 있습니다. 물론 필터링을 통해서 방어해야 되지만 브라우저에서 제공하는 정책이 존재하는데 이것이 바로 CSP입니다. CSP는 웹 페이지에 사용될 수 있는 자원의 위치, 출처 등에 제약을 걸 수 있습니다. 따라서 공격자가 웹 사이트에 본래 있지 않던 스크립트를 삽입하거나 공격자에게 권한이 있는 서버 등에 요청을 보내지 못하도록 막을 수 있습니다. CSP는 Content-Security-Policy를 헤더에 넣어서 사용하는데요. 서버가 response하게 전에 Content-Security-Poli..
2024.09.19 -
CSRF - CSRF token, SameSite Cookie
우리는 SOP 가 cross-origin writes 허용한다는 사실을 알게 되었습니다. 이를 통해서 CSRF 공격에 유용하다는 사실을 배울 수 있습니다. CSRF란? Cross Site Request Forgery (CSRF)는 임의 이용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점입니다. 이것이 가능한 이유는 다음과 같습니다. http 요청을 보낼 때, 브라우저에 저장된 쿠키를 함께 보냅니다. 브라우저의 SOP는 cross-origin wirtes(요청 보내기)를 허용합니다. 웹 사이트는 쿠키 혹은 세션의 값을 보고 계정 주인 보낸 요청이라고 착각합니다. 이에 비밀번호 변경 및 다양한 업무를 세션 혹은 쿠키의 값으로 진행합니다. 이러한 CSRF 공격은 XSS와 달리 해커의 사이트..
2024.09.19 -
SOP와 CORS
웹 개발 및 해킹을 하다 보면 자꾸 보안 정책을 만나게 된다. 이에 보안을 위한 정책을 설명 드리고자 한다. 다음 설명 드릴 정책들은 모두 브라우저 단에서 적용된다. 일단 이러한 정책이 나오게 된 이유는 xss 공격에 대한 고찰로 시작됩니다. xss 공격을 하다 보면 굳이 힘들게 필터링을 우회시켜서 쿠키를 탈취할 필요가 있을까? 라는 생각이 든다. 그리고 아래와 같은 공격 방법을 생각해 낸다.내가 웹 사이트를 개발 한 뒤 거기에 js 코드를 넣고, 피해자에게 내가 만든 사이트의 링크를 크릭하도록 유도한다. 피해자가 웹 사이트에 접속하면, 브라우저 단에서 나의 js 코드가 실행될 되고, js코드를 통해서 쿠키값을 읽어온다.ifame 을 통해서 다른 사이트(구글 메일)를 child로 가져온다. 이후 pare..
2024.09.18 -
XSS에 대해서 기초적인 내용
xss는 자바스크립트의 코드를 사용해 웹 사이트의 정보를 탈취하는 취약점입니다. 물론, 자바스크립트 이외의 VB 스크립트, ActiveX 등 클라이언트에서 실행되는 동적 데이터를 생성하는 모든 언어에서 발생이 가능합니다. xss의 종류는 아래와 같습니다. 만약 근본적으로 HTML 키워드를 받지 않는다면 취약점은 발생되지 않는다. Stored XSS XSS에 사용되는 악성 스크립트가 서버에 저장되고 서버의 응답에 담겨오는 XSSReflected XSSXSS에 사용되는 악성 스크립트가 URL에 삽입되고 서버의 응답에 담겨오는 XSSDOM-based XSSXSS에 사용되는 악성 스크립트가 URL Fragment에 삽입되는 XSS• Fragment는 서버 요청/응답 에 포함되지 않습니다. Universal XS..
2024.09.16