[CryptoHack] CRYPTO ON THE WEB(JSON in JSON)
2023. 5. 3. 22:35
워게임/CryptoHack
JSON in JSON 문제 설명 우리는 어떻게 결함있는 검증이 JWT들의 보안을 부술 수 있는지 조사해왔지만, 때때로 코드를 악용하여 예상하지 못한 데이터에 서명할 수 있다. https://web.cryptohack.org/json-in-json/ 풀이 더보기 import json import jwt # note this is the PyJWT module, not python-jwt FLAG = ? SECRET_KEY = ? @chal.route('/json-in-json/authorise//') def authorise(token): try: decoded = jwt.decode(token, SECRET_KEY, algorithms=['HS256']) except Exception as e: ret..
[CryptoHack] CRYPTO ON THE WEB(JWT Secrets)
2023. 5. 3. 20:23
워게임/CryptoHack
JWT Secrets 문제 및 개념 JWT에 사용되는 가장 공통적인 서명 알고리즘은 HS256 및 RS256입니다. 첫 번째 HS256은 SHA256 해시 함수가 있는 HMAC를 사용하는 대칭 서명 체계입니다. 두 번째 RS256은 RSA를 기반으로 하는 비대칭 서명 체계입니다. 인터넷에 있는 많은 안내글에서는 HS256을 사용하는 것이 더 간단하기 때문에 추천합니다. 토큰 서명에 사용된 비밀 키는 토큰을 확인하는 데 사용된 키와 동일합니다. 그러나 비밀 서명 키가 손상되면 공격자는 임의 토큰에 서명하고, 다른 사용자의 세션을 위조하여 웹앱을 완전히 손상시킬 수 있습니다. HS256은 HS256 토큰을 확인하는 모든 서버에서 키를 사용할 수 있어야 하기 때문에 비대칭 키 쌍보다 보안을 유지하기가 어렵습니..
[CryptoHack] CRYPTO ON THE WEB(JSON WEB TOKENS, JWT Sessions, No Ways JOSE)
2023. 5. 1. 20:52
워게임/CryptoHack
JSON WEB TOKENS 문제 및 개념 JOSE(JavaScript Object Signing and Encryption)는 인터넷에서 정보를 안전하게 전송하는 방법을 지정하는 프레임워크입니다. 웹 사이트나 응용 프로그램에서 사용자 권한을 부여하는 데 사용되는 JSON 웹 토큰(JWT)으로 가장 잘 알려져 있습니다. JWT는 일반적으로 사용자 이름과 암호를 입력하여 사용자 자신을 인증한 후 "로그인 세션"을 브라우저에 저장하여 이 작업을 수행합니다. 즉, 웹사이트는 사용자 ID가 포함된 JWT를 제공하며, 사이트에 제시되어 다시 로그인하지 않아도 사용자가 누구인지 증명할 수 있습니다. JWT는 이렇게 생겼습니다. eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmbGFnIjoi..
AWS 클라우드 SSH 연결 후 도커로 워드프레스 연결 해보기!!
2023. 5. 1. 16:31
기술보안/Cloud
지난번에는 AWS 페이지에서 콘솔 접근을 해봤다면, 이번엔 윈도우에서 PowerShell과 Kali 리눅스를 통한 SSH 연결을 해볼 것이다. 어렵지 않으니 잘 따라오길 바란다!! 1. 이전에 생성한 키페어 파일을 VMware KaliLinux에 옮겨 줍니다. 이후 해당 파일에 읽기 권한을 부여해 줍니다! 해당 파일은 /EC2 라는 디렉터리 생성 후 안에 넣어주었으며, 윈도우에서 VMware로 Ctrl+C ,V 로 쉽게 옮길 수 있기에 생략 했습니다. chmod 400을 통해 키페어 파일에 읽기 권한 부여! 2. 이후 AWS 페이지의 SSH 클라이언트 에서 ssh 연결 명령어를 입력해 준다. 해당 명령어 Kali에 붙혀넣기 후 명령어 실행 하면 SSH 연결이 완료 된다. 이번에는 윈도우에서 PowerSh..
[Lambda] AWS 콘솔로그인 모바일 접속 제한 함수 만들기
2023. 4. 30. 22:20
기술보안/Cloud
개요 AWS 클라우드에서는 콘솔 로그인 시 디바이스 핑거프린트 정보를 활용한 지정 단말 로그인 기능을 제공하지 않기 때문에 지정된 단말(PC)에서만 클라우드 콘솔 접근이 허용되도록 Lambda를 이용해 모바일 접속을 제한하는 기능을 만들어보자, * User-Agent 헤더를 이용하여 접속을 제한하는 것이 완벽한 방법은 아니지만 손쉽게 구현 가능한 최선의 방법이다. Lambda 구성 방안 1. 사용자 계정에 로그인 단말 정보를 입력하는 태그 생성 2. 콘솔 로그인 시 해당 사용자의 단말 정보를 확인하는 서버리스 함수 생성 3. 실시간 API 호출내역에서 콘솔 로그인 성공 이벤트가 발생할 경우 트리거 4. 발생한 이벤트의 User-Agent 값을 확인하여 사전 정의된 문구가 포함될 경우 모바일 단말로 판단 ..
[Lambda] AWS 콘솔로그인 실패 횟수 제한 함수 만들기
2023. 4. 30. 21:27
기술보안/Cloud
개요 금융권에서는 내부사용자 비밀번호 관리에 관한 항목을 전자금융감독규정 제32조로 규정하고 있다. 시스템에 로그인할 때 비밀번호 입력 시 5회 이내 범위에서 입력 오류가 연속 발생한 경우 로그인을 차단하도록 되어있다. 하지만 AWS 클라우드에서는 콘솔 로그인 실패에 대한 제한 기능이 따로 제공하지 않기 때문에 Brute Force를 이용한 계정 탈취 공격에 노출될 수 있다. 따라서 Lambda 함수를 이용해 해당 기능을 만들어보자. Lambda 구성 방안 1. 사용자 계정에 콘솔 로그인 실패 횟수를 입력하는 태그 생성 2. 콘솔 로그인 실패 횟수를 카운트하는 서버리스 함수 생성 3. 실시간 API 호출내역에서 콘솔 로그인 실패 이벤트가 발생할 경우 트리거 4. 동일 계정으로 5분 이내 로그인 실패 횟수..
AWS 클라우드 기본 기능 사용해보기!!
2023. 4. 30. 19:40
기술보안/Cloud
AWS ID 생성, EC2 생성, SSH 연결 등을 수행해 볼예정이다. 첫번째로 계정 생성해볼 것이다. AWS 홈페이지 로그인 후 계정 생성 버튼 눌러준다~ 계정 생성에는 큰 어려움 없기에 PASS 하도록 하겠따. IAM(Identity and Access management) 핵심에 관해 보겠다 - 사용자 : 사용자가 IAM에서 생성 및 엑세스 AWS 리소스에 필요한 권한을 부여 할 수 있다. - 그룹 : 사용자를 그룹에 추가할 수 있으며, 개별 사용자 대신 그룹에 권한을 부여할 수 있따. - 정책 : 사용자 또는 그룹에 대한 권한을 정의하는 JSON 문서이다. - 역할 : 사용자에게 AWS서비스에 액세스 할 수 있는 임시 권한을 부여하는데 사용한다. 4가지가 연계되어 사용자에 그룹을 설정하여 특정 정..