본문 바로가기

분류 전체보기

(295)
CSP 알아보기 CSP의 탄생 웹 브라우저는 웹 서버로부터 받는 페이지의 컨텐츠가 모두 의도된 컨텐츠인지 확인할 수 없다. XSS 공격의 경우, 페이지 내에 교묘하게 자바스크립트 구문을 삽입하여 마치 원래 페이지의 컨텐츠인 것처럼 브라우저를 속이고 동일 출처 정책을 우회한다. 이에 따라 페이지의 컨텐츠에서 사용하는 자원들이 모두 웹 서버에서 의도한 자원이 맞는지 확인하기 위해 Content Security Pollicy가 탄생했다. CSP란 CSP는 XSS와 데이터 주입 공격을 비롯한 특정 유형의 공격을 탐지하고 완화하는데 도움이 되는 추가 보안 계층이다. 하지만 CSP가 XSS등의 공격 피해를 완전히 무력화하기 위한 수단은 아니기에, XSS에 대한 자체적인 방어가 병행되어야 한다. CSP 적용 CSP 구문은 일반적으로..
DOM이란 DOM 이란 문서 객체 모델( DocumentObjectModel )은 HTML, XML 문서의 프로그래밍 interface이다. DOM은 문서의 구조화된 표현을 제공하며 프로그래밍 언어가 DOM 구조에 접근할 수 있는 방법을 제공하여 그들이 문서 구조, 스타일, 내용 등을 변경할 수 있게 돕는다. 이들은 웹 페이지를 스크립트 또는 프로그래밍 언어들에서 사용될 수 있게 연결시켜주는 역할을 담당한다. 즉, DOM은 웹 페이지에 대한 인터페이스이다. 웹 페이지 생성 과정 웹 브라우저가 원본 HTML 문서를 읽어들인 후, 스타일을 입히고 대화형 페이지로 만들어 뷰 포트에 표시하기까지의 과정을 "Critical Rendering Path"라고 한다. 해당 과정은 대략 2단계로 나눌 수 있다. 첫 번째 단계에서 ..
해커가 새로운 Windows Defender 제로데이를 통해 DarkMe 멀웨어 배포 출처 https://www.bleepingcomputer.com/news/security/hackers-used-new-windows-defender-zero-day-to-drop-darkme-malware/ Hackers used new Windows Defender zero-day to drop DarkMe malware Microsoft has patched today a Windows Defender SmartScreen zero-day exploited in the wild by a financially motivated threat group to deploy the DarkMe remote access trojan (RAT). www.bleepingcomputer.com 본문 내용 Micro..
심각한 Jenkins RCE 결함에 대한 익스플로잇 공개, 지금 패치 출처 https://www.bleepingcomputer.com/news/security/exploits-released-for-critical-jenkins-rce-flaw-patch-now/ Exploits released for critical Jenkins RCE flaw, patch now Multiple proof-of-concept (PoC) exploits for a critical Jenkins vulnerability allowing unauthenticated attackers to read arbitrary files have been made publicly available, with some researchers reporting attackers actively exploit..
Level 2 : web-ssrf @app.route("/img_viewer", methods=["GET", "POST"]) def img_viewer(): if request.method == "GET": return render_template("img_viewer.html") elif request.method == "POST": url = request.form.get("url", "") urlp = urlparse(url) if url[0] == "/": url = "http://localhost:8000" + url elif ("localhost" in urlp.netloc) or ("127.0.0.1" in urlp.netloc): data = open("error.png", "rb").read() img = base64.b..
Mastodon 취약점으로 인해 공격자가 계정 탈취 출처 https://www.bleepingcomputer.com/news/security/mastodon-vulnerability-allows-attackers-to-take-over-accounts/ Mastodon vulnerability allows attackers to take over accounts Mastodon, the free and open-source decentralized social networking platform, has fixed a critical vulnerability that allows attackers to impersonate and take over any remote account. www.bleepingcomputer.com 본문 내용 무료 오픈 소스 ..
Level 1 : File Vulnerability Advanced for linux @app.route('/file', methods=['GET']) def file(): path = request.args.get('path', None) if path: data = open('./files/' + path).read() return data return 'Error !' /file 경로에서는 path 파라미터에 따라, 파일을 읽어온다. 먼저, /etc/passwd 파일을 읽어올 수 있는지 확인해 보았다. API_KEY = os.environ.get('API_KEY', None) def key_required(view): @wraps(view) def wrapped_view(**kwargs): apikey = request.args.get('API_KEY', None) if API_KE..
소켓 통신 알아보기 웹 소켓이란 먼저, 웹 브라우저와 웹 사이트 간의 대부분의 통신은 HTTP를 사용한다. HTTP를 사용하면 클라이언트가 요청을 보내고 서버는 응답을 반환한다. 일반적으로 응답은 즉시 발생하고 트랜잭션이 완료된다. 네트워크 연결이 계속 열려 있어도 요청과 응답의 별도 트랜잭션에 사용된다. 일부 최신 웹 사이트는 WebSocket을 사용한다. WebSocket 연결은 HTTP를 통해 시작되며 일반적으로 오래 지속된다. 메시지는 언제든지 어느 방향으로나 전송될 수 있으며 본질적으로 트랜잭션이 아니다. 연결은 일반적으로 클라이언트나 서버가 메시지를 보낼 준비가 될 때까지 열려 있고 유휴 상태로 유지된다. WebSocket은 금융 데이터의 실시간 피드와 같이 대기 시간이 짧거나 서버에서 시작되는 메시지가 필요한 ..