Hack131 [VUE JS] source map 파일을 통한 Frontend 소스 코드 획득 일반적으로 vue.js 애플리케이션을 빌드하면, 코드가 압축되어 사용자에게 제공됩니다. 이때 원래 코드의 흐름과 파일 구조가 왜곡될 수 있어, 브라우저에서 발생한 오류를 추적하기가 어려울 수 있습니다. 이러한 상황에서 디버깅을 쉽게 하기 위해 source map 파일을 제공하고 있는데, 해당 파일을 이용하여 압축된 코드를 원래의 코드로 디코딩할 수 있습니다. 그런데 만약, 실제 운영 환경에서 source map 파일이 존재할 경우 Frontend의 소스 코드를 획득할 수 있는 등의 취약점이 발생할 수 있습니다. Source Map 파일 찾기 개발자 도구 > "SourceMappingURL" 검색 > app.*.js 파일 찾기 app.*.js 경로에 .map을 붙여서 접속 시도 (app.*.js.map) .. 2023. 2. 21. [Kotlin] Use-Site Target이 존재하지 않을 경우 검증 우회 가능 Data Class의 경우 NotBlank와 같은 검증 Annotation을 Use-Site Target과 같이 사용하지 않을 경우, 생성자 구문에 검증 코드가 작성되는 문제가 있음 // 생성자에 NotEmpty와 NotBlank가 적용되는 잘못된 코드 data class UserInfoDto ( @NotEmpty(message="값이 비어있으면 안됩니다.") @NotBlank @Email(message="이메일 주소를 입력해주세요.") var email : String?, var password : String?, ) 반드시 Use-Site Target을 명시하여 필드 변수에 대한 검증을 수행하도록 해야 함 // 변수에 NotEmpty와 NotBlank가 적용되는 올바른 코드 data class Use.. 2023. 2. 21. Avalanche(AVAX) RPC 사용 방법 ※ 1초에 5회 이상 Request 전송 시 Rate Limit 있음 기본 구문 import requests import json class AvalancheAPI: def __init__(self, rpc_url): self.rpc_url = rpc_url def get_response(self, method, params): response = requests.post( self.rpc_url, data=json.dumps({ "jsonrpc": "2.0", "id": 1, "method": method, "params": params, }), headers={'content-type': 'application/json'} ).json() return response if __name__ == '__.. 2023. 2. 19. Click Jacking이란? Click Jacking이란 무엇인가? Click Jacking은 사용자가 의도하지 않은 클릭 행위를 유도하는 공격 기법입니다. Click Jacking 공격은 웹사이트 상의 버튼, 링크 등을 통해 사용자를 다른 웹 페이지로 유도하여, 사용자가 악성 페이지에서 의도하지 않은 동작을 수행하게 만듭니다. Click Jacking은 "UI Redress Attack" 또는 "User Interface Redress Attack"으로도 알려져 있습니다. Click Jacking 공격 원리 Click Jacking 공격은 웹 페이지 내에 들어 있는 iframe 요소를 이용하여 수행됩니다. iframe 요소는 다른 웹 페이지를 포함하고 있는 HTML 태그로, 다른 웹 페이지를 포함하면서도 현재 웹 페이지의 내용을 .. 2023. 2. 12. Type Confusion이란? Type Confusion Type Confusion은 프로그래밍 언어에서 발생할 수 있는 취약점 중 하나로, 데이터 타입이 불일치하는 상황에서 발생할 수 있습니다. 예를 들어, 어떤 프로그램에서 문자열을 입력받아 처리하는 기능이 있다고 가정해보겠습니다. 이때, 사용자가 문자열 대신 정수형 데이터를 입력할 경우, 프로그램은 예상치 못한 방식으로 작동할 수 있습니다. ※ 주로 변수나 객체를 선언 또는 초기하였을 때와는 다른 타입으로 사용할 때 발생 이처럼 프로그램에서는 예상치 못한 데이터 타입 변환이 일어나는 상황에서 Type Confusion 취약점이 발생할 수 있습니다. 참고로 Type Confusion은 메모리 손상 등의 심각한 보안 문제를 야기할 수 있으며, 악의적인 공격자가 해당 취약점을 이용해 .. 2023. 2. 12. [Android] java.net.URL Parsing 취약점 java.net.URL 클래스를 사용하는 경우 Parsing된 Host와 브라우저를 통하여 접속되는 Host가 달라 Bypass가 가능한 취약점이 존재합니다. Sample Code import java.net.URL; public String url_bypass(HttpServletRequest request) throws Exception{ String url = request.getParameter("url"); System.out.println("url: " + url); URL u = new URL(url); if (!u.getProtocol().startsWith("http") && !u.getProtocol().startsWith("https")) { return "Url is not http.. 2022. 12. 16. npm 취약점 점검 도구 - npm audit 먼저 npm이란 javascript 또는 typescript 언어를 위한 Package 관리 도구입니다. npm에는 개발자 편의를 위한 여러가지 Command가 존재하는데, 그 중 취약점 점검 기능인 audit에 대하여 설명하도록 하겠습니다. 사용 방법은 매우 간단합니다. # Default Usage $ npm audit # output json format $ npm audit --json 발견된 취약점에 대한 조치도 단순한 명령어를 통하여 손쉽게 진행할 수 있습니다. $ npm audit fix 다만, deprecated 되었거나 변경된 기능으로 인하여 프로그램이 정상적으로 작동하지 않을 수 있어 사전 백업 후 반드시 작업을 진행해야 할 것 같습니다. Reference About audit repor.. 2022. 11. 16. Ghidra ARM64 설치 가이드 for MAC M1 or M2 Chip ARM64 기반의 MAC에서 Ghidra를 실행시킬 경우, ARM64용으로 컴파일되지 않아 Decompile이 불가능하다는 에러 문구를 확인할 수 있습니다. 이때 아래와 같은 방법으로 ARM64용 Binary로 재빌딩해준다면, 정상적으로 Decompiler 기능을 이용 가능합니다. 1. 아래의 JDK 중 본인이 원하는 JDK를 설치해줍니다. Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com Latest Releases | Adoptium adoptium.net 2.. 2022. 11. 8. [CVE-2022-3786] OpenSSL punycode Decoding Vulnerability (Stack Buffer over Flow) 영향 받는 대상 OpenSSL 3.0.x Version (3.0.0 ~ 3.0.6) 취약점 전제 조건 해당 취약점의 경우 CA가 취약한 인증서로 서명되었거나 유효한 인증서가 아님에도 불구하고 통신을 진행할 경우에만 발생 가능한 취약점 입니다. 즉, 일반적인 환경에서 발생할 수 있는 취약점은 아닙니다. 위와 같은 이유로 OpenSSL에서도 최초 취약점 등급이었던 Critical을 High로 다운그레이드 하였습니다. 취약점 분석 해당 취약점은 Punycode Domain의 인증서 확인 및 이름 제약 조건 검사 함수인 ossl_a2ulabel에서 발생하는 취약점으로 Stack Buffer over Flow가 가능합니다. 다만, 덮어씌울 수 있는 값은 0x2e(.)으로 한정되어 있습니다. ossl_a2ulabe.. 2022. 11. 3. 이전 1 ··· 3 4 5 6 7 8 9 ··· 15 다음