Security (80) 썸네일형 리스트형 [Webhacking] [client-side advanced] Exploit Techniques - Relative Path Overwrite (RPO) Relative Path Overwrite Browser를 속여 의도되지 않은 파일을 불러오는 기법 절대 경로와 상대 경로 이해. / (루트 도메인) 로 부터 시작되는 경로 파일명만 존재할 시 현재까지의 경로에서 파일명만 교체됨. Browser가 하는 일 웹 서버와 통신 하면서 응답을 브라우저를 통해서 보여준다. 응답코드에 Image나 Script, Stylesheet 파일들을 불러오는 코드가 존재하면 browser 판단 하에 파일을 불러옴. 웹서버는 경로에 대해 찾아서 파일을 응답함. index.php 응답 코드에 css , js 로드 코드가 존재함. 상대경로로 지정되어 있으므로 현재 경로에서 찾음. URL 조작하여 request 브라우저는 URL encode된 부분도 그냥 파일명에 포함시킴. Apac.. [systemhacking] 시스템 해킹 기초 보호되어 있는 글입니다. [Webhacking] [client-side advanced] CORS CORS 기술 사용 시 문제점 현재 사이트에서 다른 사이트로 정보 유출 (기밀성) 다른 사이트에서 현재 사이트 변조 (무결성) - 다른 사이트로부터 스크립트 등이 심어져 XSS 가능 메시지 전송할 때 대상 윈도의 postMessage 메소드를 호출, 수신하는 윈도는 message 전역 이벤트를 청취 targetWindow.postMessage(message, targetOrigin[, transfer]) targetWindow 메시지를 보낼 대상 Window message 메시지 객체 (함수, DOM 객체 등은 보낼 수 없음) targetOrigin 메시지 송신 시점에 targetWindow의 Origin이 targetOrigin과 일치하여야 함. targetOrigin에 "*"을 지정하면 Origin .. [Webhacking] [client-side advanced] CSRF 잘못된 CSRF Token 생성 CSRF 방어 중 CSRF Token은 같은 Origin에서만 접근 가능한 형태로 특정 토큰을 저장해 제 3자가 아닌 사용자로부터 요청이 왔다는 것을 인증할 수 있는 방법. CSFR Token 값은 보통 HTML Form의 hidden 필드로 입력되나, 동적 요청에서도 사용 가능. [Webhacking] [client-side advanced] CSP CSP (content security policy) 는 XSS 공격이 발생했을 때 그 피해를 줄이고 웹 관리자가 공격 시도를 보고받을 수 있도록 하는 기술. 웹 페이지에서 사용될 수 있는 자원이나 위치 등에 제약을 걸어 공격자가 웹 사이트에 본래 있지 않던 스크립트를 삽입하거나 공격자에게 권한이 있는 서버 등에 요청을 보내지 못하도록 막을 수 있음. XSS의 공격 피해를 완전히 무력화 시키는 방법은 아님 CSP 헤더는 1개 이상의 정책 디렉티브(지령)가 세미콜론 ; 으로 분리된 형태로 이루어져있음. 정책 디렉티브는 지시어 종류 (default-src , script-src) 1개 이상의 출처 ('self', https: , *~~.~~) 가 스페이스 형태로 구분 페이지 내부의 자원들이 같은 Origin.. [Webhacking] [client-side advanced] XSS XSS 방어 방법 가장 확실한 방법 : HTML 태그나 엔티티 자체를 입력하지 못하도록 하고, 대신 입력을 서식 없는 평문으로 취급. 서버 측에서는 , & 와 같은 특수 문자들을 Escape 클라이언트 측에서는 DOM의 textContent, createTextNode 등을 사용해 HTML 태그 등이 해석되는 것을 방지. 배경 팀 버너스리 (Tim Berners-Lee)가 창시한 HTML은 SGML(Standard Generalized Markup Language) 을 바탕으로 함. XML (다목적 마크업 언어) 또한 SGML 기반. XML은 규칙을 엄격화하되 문법을 단순화하였으나, HTML은 문서 작성 편의를 초점으로 둔 기능을 상당 수 유지함으로써 문법이 복잡해짐. 이에 따라 HTML 해석.. [wargame] pathtraversal https://dreamhack.io/wargame/challenges/12/ pathtraversal 사용자의 정보를 조회하는 API 서버입니다. Path Traversal 취약점을 이용해 /api/flag에 있는 플래그를 획득하세요! Reference Server-side Basic dreamhack.io source #!/usr/bin/python3 from flask import Flask, request, render_template, abort from functools import wraps import requests import os, json users = { '0': { 'userid': 'guest', 'level': 1, 'password': 'guest' }, '1': { 'us.. [wargame] devtools-sources https://dreamhack.io/wargame/challenges/267/ devtools-sources 개발자 도구의 Sources 탭 기능을 활용해 플래그를 찾아보세요. Reference Tools: Browser DevTools dreamhack.io 소스 필요없음. 개발자 도구를 통해 flag 획득하는 노가다 문제였다. 모든 파일을 직접 하나하나 여는게 불편하니 개발자 도구의 source 탭 활용하여 load 후에 파일시스템을 통해 확인. 이전 1 2 3 4 5 6 7 ··· 10 다음