자동화공격 자동화 공격이란 웹 애플리케이션의 정해진 프로세스에 자동화된 공격을 수행함으로써 자동으로 수많은 프로세스가 진행되는 취약점입니다. 이는 DoS(Denial of Service), 무차별 대입 기법(Brute-Forcing), 데이터베이스 과부하와 같은 피해를 일으킬 수 있습니다. 1. 공격 원리 자동화 공격은 다량의 요청이 시도될 때 검증과 적절한 대안 방안을 구축하지 않았기 때문에 발생하는 취약점입니다. 자동화 공격을 방지하기 위해서는 데이터 등록 시 일회성이 될 수 있는 별도의 토큰 사용, captcha 사용, IDS/IPS에서의 탐지 규칙 추가 등이 있습니다. 2. php 코드 Login Login Register 계정정보를 입력해주세요 3. 공격 실습 No. 실습 위치 비고 1 http..
CSRF CSRF 취약점은 정상적인 요청과 조작된 요청을 서버가 구분하지 못할 경우 발생하는 취약점으로, 애플리케이션을 이용하는 사용자에게 조작된 요청을 웹 애플리케이션에 전송하도록 유도하여 피해를 발생시키는 취약점입니다. 공격당한 사용자의 권한을 그대로 사용하므로 사용자의 권한 수준에 따라 그 피해 범위가 달라질 수 있으며, XSS 취약점과 무관하게 공격이 가능하나 XSS 취약점과 연계 시 공격 범위가 증가합니다. 1. 공격 원리 CSRF는 사용자의 요청을 서버가 적절한 검증 절차 없이 처리하여 해당 사용자의 권한으로 임의의 동작을 그대로 실행시켜 발생합니다. 공격자는 조작된 요청을 하게 하는 스크립트를 삽입한 게시물을 업로드합니다. 이 게시물에 접근한 사용자는 공격자의 패킷을 응답 받게 되며 실행하게..
파일다운로드 취약점은 공격자가 파일 다운로드 기능을 이용하여 웹 사이트에 포함된 주요 파일을 다운로드 할 수 있는 취약점입니다. 이는 파일을 다운받는 기능이 포함된 페이지에서 입력되는 경로를 검증하지 않는 경우 임의의 문자나 주요 파일 명을 입력하여 웹 서버의 홈 디렉터리를 벗어나 임의의 위치에 있는 파일을 열람하거나 다운받을 수 있습니다. 1. 공격 원리 파일 다운로드 취약점은 다음의 경우에 발생합니다. No. 원인 상세 1 파일 경로와 파일명 노출 파일 다운로드 시 해당 파일의 상대경로 또는 절대경로를 사용하는 경우 다운로드 모듈이 파일의 경로나 이름을 파라미터로 사용하는 경우 2 파일 경로와 파일명 필터링 부족 ../(상위 디렉터리)를 이용한 Web Root 상위 디렉터리 접근이 가능한 경우 파라미..
[Lambda Runtime] Python 3.7 [API Gateway] REST API Method : POST Stage : Prod Lambda와 API Gateway를 연결 POST의 Request body에 전송되는 데이터를 Lambda 함수의 입력 값으로 받도록 한다. 공식 문서에 선언된 데이터 매핑 표현식을 참고할 수 있다. https://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/request-response-data-mappings.html Amazon API Gateway API 요청 및 응답 데이터 매핑 참조 - Amazon API Gateway Amazon API Gateway API 요청 및 응답 데이터 매핑 참조 이..
파일 업로드 파일 업로드 취약점은 웹 사이트의 파일 업로드 기능을 이용하여 인가 받지 않은 파일을 서버에 임의로 업로드 하는 공격입니다. 웹 쉘 형태의 파일을 업로드 후 실행하면 서버의 자원을 장악할 수 있으며 웹 서비스를 실행하는 서버의 권한을 획득할 수 있습니다. 다른 페이지의 코드를 변조하여 클라이언트에게 악성 코드를 배포할 수 있습니다. 1. 공격 원리 파일 업로드 취약점은 아래표의 조건이 모두 만족할 때 발생하는 취약점입니다. No. 행위 발생 원인 1 악의적인 파일 업로드 파일 업로드 시 확장자 체크의 미흡, PUT 메소드 이용 2 업로드 경로 확인 업로드 디렉토리의 경로 노출 3 스크립트 실행 실행 권한 존재 파일 업로드 취약점은 다음의 과정으로 진행됩니다. 1. 파일 업로드 기능을 이용하여..
Stored XSS 공격 원리 공격자가 악성 스크립트를 취약한 서버에 게시글 형태로 등록시킨 후 사용자가 해당 게시물에 접근 시 스크립트가 실행되어 피해를 발생시키는 공격 기법이다. Stored XSS는 다음의 과정으로 이루어진다. 1. 공격자는 게시판에 Stored XSS 취약점이 있는 것을 확인합니다.2. 공격자는 사용자 쿠키 정보를 탈취하는 스크립트를 포함한 게시물을 작성합니다.3. 희생자는 해당 글 열람 시 쿠키 정보가 공격자에게 전송됩니다.4. 공격자는 희생자의 쿠키 정보를 이용해 계정을 탈취합니다. 공격 실습 No.실습 위치비고1localhost/freeboard/write게시판 게시글 추가 기능 취약 페이지 구현 제목 제목은 필수 입력 항목입니다! 본문 Browse… 파일 용량 제한은 50M..
문제 동작 중인 서비스가 정상적으로 동작하지 않았고, 서비스 로그가 정상적으로 전송되지 않음을 확인하였다. 파일 접근, 편집을 위해 쉘에서 작업을 시도했으나 Read-only file sytsem 에러가 나오면서 아무 작업도 되지 않는다. 시스템 용량 확인 결과 사용 용량이 100% 인 것을 확인할 수 있었고 OS가 시스템보호를 위해 RO 시스템으로 전환한 것 같았다. 해결 1. 파일 시스템을 RW(Read-Write) 권한으로 다시 마운트 한다. sudo mount -o remount,rw /dev 2. 재부팅 sudo reboot 3. 용량 확보 불필요한 로그파일 정리 및 파일을 삭제하여 용량을 확보한다. [용량 순 디렉터리 정렬] du -h (경로) |sort -h 해당 경로에 있는 모든 파일과 폴..
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..