Study(18)
-
cryptography
Cryptography 제삼자로부터 정보를 보호하는 방법에 대한 연구 키 생성Key generation 암호화 및 복호화에 사용할 키를 만드는 과정 암호화키를 이용해 평문Plaintext 을 암호문Ciphertext 으로 변환하는 과정 복호화송신자가 전송한 암호문을 수신자가 키를 이용해 Ciphertext를 Plaintext로 변환하는 과정 인코딩Encoding데이터를 다른 형태로 변환하는 것데이터의 기밀성을 고려하지 않으며, 누구나 디코딩하여 원문을 구할 수 있음크기를 줄이거나 컴퓨터가 이해하기 쉬운 형식으로 변형하기 위해 사용ex) 압축, base64, ...PyCryptodome 패키지PyPI에 등록되어 있는 암호학 전용 패키지AES, DES, RSA와 같은 암호 + 소수 판별과 같은 기능을 가진 ..
2024.05.09 -
SSRF
HTTP 라이브러리PHP : php-curlNodeJS : httppython : urllib, requests => HTTP 요청을 보낼 client 뿐만 아니라 server와 server간 통신을 위해 사용되기도 한다. SSRF (Server-Side Request Forgery)웹 서비스의 요청을 변조하는 취약점브라우저가 변조된 요청을 보내는 CSRF와는 다르게 웹 서비스의 권한으로 변조된 요청을 보낼 수 있다. 웹 서비스가 보내는 요청을 변조하기 위해서는 요청 내에 이용자의 입력값이 포함돼야 한다. ex1) 웹 서비스가 이용자가 입력한 URL에 요청을 보내는 경우image_downloader이용자가 입력한 image_url을 requests.get 함수를 사용해 GET 메소드로 HTTP 요청을 보..
2024.05.06 -
File Vulnerability
File Vulnerability 파일 취약점 File Upload Vulnerability웹 서비스를 통해 파일을 서버의 파일 시스템에 업로드하는 과정에서 발생하는 보안 취약점업로드될 파일의 이름을 임의로 정할 수 있을 때 발생- 파일 이름에 이용자가 입력한 문자열을 그대로 사용- 이용자의 이메일, 닉네임 등을 포함시키는 등의 소스 코드 패턴 Path Traversal 취약점특정 디렉터리에만 업로드를 허용하는 제약을 우회하여, 임의 디렉터리에 파일을 업로드 할 수 있는 취약점@app.route('/fileUpload', methods = ['GET', 'POST'])def upload_file(): if request.method == 'POST': //POST 요청을 받으면 f = request..
2024.05.06 -
command injection
injection 악의적인 데이터를 프로그램에 입력하여 이를 시스템 명령어, 코드, 데이터베이스 쿼리 등으로 실행되게 하는 기법 command injection 이용자의 입력을 시스템 명령어로 실행하게 하는 취약점 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생함 파이썬 웹 애플리케이션에서 입력한 임의 IP에 ping 전송하고 싶을 때 os.system("ping [user-input]") 임의 파일을 읽고 싶을 때 os.system("cat [user-input]") 메타문자 ' ' 명령어 치환 $() 명령어 치환 && 명령어 연속 실행 || 명령어 연속 실행 ; 명령어 구분자 | 파이프 : 앞 명령어의 결과가 뒷 명령어의 입력으로 들어감
2024.03.06 -
Docker
도커 : 컨테이너를 만들고, 실행하고, 배포할 수 있는 가상화 플랫폼 도커의 컨테이너 : 가상의 환경이 구축되어 있는 하나의 박스 새로운 운영체제 환경을 구축할 필요 없이 하나의 분리된 프로세스처럼 작동하여 가벼움 특정한 환경을 구성하기 위해 만들어진 가상의 공간 docker image : 도커 컨테이너의 전 단계 - 컨테이너를 생성하고 실행하기 위한 모든 것을 포함한다 ex) 컨테이너 생성에 필요한 파일, 환경변수, 명령어, 파일 시스템 등등 - 자신만의 이미지를 만들거나 다른 사람이 만든 이미지를 사용할 수도 있음 - 이미지 생성 => dockerfile 작성&빌드 ... dockerfile:이미지를 생성하는데 단계적으로 필요한 명령을 작성하는 파일- tag : 태그를 붙이는 것은 하나의 이미지에 여..
2023.10.31 -
SSH
원격 linux 서버에 연결하는 가장 일반적인 방식의 명령어 SSH (Secure Shell, Secure Socket Shell) : 원격 서버에 연결할 수 있도록 해주는 암호화된 네트워크 프로토콜 암호화를 통해 호스트와 클라이언트가 안전하게 통신할 수 있음 클라이언트가 원격 서버의 터미널에 접속하여 명령어를 입력하면, 호스트가 명령 실행 결과를 클라이언트에게 전달 ssh user@HOST -p PORT -i [개인 키 파일 경로] #HOST : 접속하려는 원격 서버의 ip 또는 도메인 # -p : 특정 포트로 접속하고 싶은 경우 접속하는 클라이언트가 믿을만한 사용자인지 인증하는 방법 1. 패스워드 인증 ssh user@HOST 명령을 실행하면 패스워드를 입력한 뒤 원격 서버에 접속할 수 있음 패스워드..
2023.10.31