XSS(Cross Site Scripting) XSS는 공격자가 삽입 또는 제공한 악의적인 스크립트가 사용자의 브라우저에서 실행되는 취약점이다. 악의적인 스크립트 코드가 삽입된 입력 값을 서버가 적절한 검증 절차 없이 반환하기 때문에 발생한다. 공격 방법과 우회 방법, 공격 목적이 다양해 자주 사용되는 공격이기 때문에 서비스에 따라 정확한 보안 대책을 세워야 한다. XSS로 인해 발생되는 피해는 다음과 같다. 사용자의 개인정보 탈취 Keylogger 형태의 스크립트를 사용하여 키보드 입력 값 탈취 사용자의 쿠키정보 탈취 Document.cookie를 사용하여 해당 사용자의 쿠키 값 탈취 피싱 사이트로 강제 이동 Location.href등을 사용하여 페이지 강제 이동 악성코드 다운로드 및 실행 악성코드 다..
Blind SQL Injection 공격 원리 1. SQL Injection 공격 가능 여부 확인 2. 데이터 개수 확인(Table, Column, Data) 3. 데이터 문자열 1개씩 추출 4. 데이터 1개 추출 5. 모든 데이터 추출 6. 원하는 데이터 추출 논리 연산자를 이용해 True인 쿼리문과 False인 쿼리문의 결과를 비교하여 정보를 추출하는 공격입니다. AND 연산자를 사용해 논리가 맞지 않을 때 출력되는 데이터와 참일 때 출력되는 데이터를 비교하여 공격할 수 있습니다. 공격 과정은 다음과 같습니다. 취약 코드 구현 SQL Injection에 사용했던 관리자 로그인 페이지에서 실습한다. 관리자 로그인 php 코드는 gomguk.tistory.com/58 에서 확인할 수 있다. 공격 실습 N..
RDS(Relational Database Service) AWS 환경에서 관계형 데이터베이스를 제공하는 서비스이다. PostgreSQL, MySQL, MariaDB, ORACLE 등 다양한 벤더의 데이터베이스를 마이그레이션하거나 복제하는 것을 지원한다. 본 포스트에서는 AWS RDS(AuroraDB)와 Flask의 웹 애플리케이션을 연동하는 것을 목표로 한다. 개발 스택은 다음과 같다. [개발 환경] Python 3.7.3 Flask [AWS 서비스] AWS Codecommit(CI/CD) Elastic Beanstalk(앱 배포) AuroraDB 1. RDS 시작하기 베어메탈에 OS를 구성하고 DB 엔진을 설치하고 운영에 걸리는 시간에 비하면 빠른 시간 내에 DB의 설정이 완료된다. 다만, DB in..
1. 들어가기 클라우드에 관심이 높아지면서 클라우드 보안에도 중요성이 강조되고 있다. AWS 프리티어를 이용하여 본인이 직접 환경을 구축해서 실습할 수 있는 워게임이 있어 풀이를 해보았다. 2. 실습 준비 ServerlessGoat는 OWASP에서 제안하는 10가지 클라우드 보안 요소를 집약시켜놓은 Playground이다. 공식 Github는 아래와 같다. github.com/OWASP/Serverless-Goat OWASP/Serverless-Goat OWASP ServerlessGoat: a serverless application demonstrating common serverless security flaws - OWASP/Serverless-Goat github.com AWS사이트에서 제공하는..
더보기 https://docs.min.io/docs/ MinIO | The MinIO Quickstart Guide MinIO Quickstart Guide MinIO is a High Performance Object Storage released under GNU Affero General Public License v3.0. It is API compatible with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, ana docs.min.io MinIO의 소프트웨어 정의 제품군은 초기부터 클라우드 기반으로서 퍼블릭 클라우드, 프라이빗 클라우드 및 에지에서 ..
UNION SQL Injection 취약 게시판 구현 및 공격 실습 1. 공격 원리 1. SQL Injection 공격 가능 여부 확인 2. 컬럼 수 추출 3 . 각 컬럼 데이터형 추출 4. 데이블 목록 추출 5. 원하는 테이블의 컬럼명 추출 6. 원하는 데이터 추출 SQL에서 Union은 두 개의 쿼리문에 대한 결과를 통합하여 하나의 테이블로 보여주게 하는 키워드이다. 정상적인 쿼리문에 Union 키워드를 사용하여 인젝션에 성공하면, 원하는 쿼리문을 실행할 수 있게 된다. Union SQL Injection은 이전 Select 문과 Union Select 문의 칼럼 수가 동일해야 한다는 특징과 칼럼은 각 순서별로 동일한 데이터 형이어야 한다는 특징을 이용한다. 공격 과정은 다음과 같다. 2. 공격 실습..