본문 바로가기

전체 글322

[DAO Hacking] Reentrancy Attack 실제 사례 분석 이전 포스팅에서 Reentrancy Attack에 대한 설명을 드렸는데요. 이번에는 실제 해킹 사례를 분석해보도록 하겠습니다. Reentrancy Attack in Smart Contract Smart Contract는 블록체인 기술에서 중요한 개념 중 하나로, 계약 체결과 실행을 자동으로 수행할 수 있는 프로그램이며, 블록체인 기술을 활용하여 제 3자의 인증 기관 없이 개인 간 계약이 이루어 hacksms.tistory.com The DAO Project The DAO(Decentralized Autonomous Organization, 이하 DAO)는 2016년 3월 Ethereum Platform을 기반으로 한 세계 최대 디지털 자산 크라우드 펀딩 프로젝트 였습니다. DAO는 참여자들이 ETH를 투.. 2023. 4. 30.
Reentrancy Attack in Smart Contract Smart Contract는 블록체인 기술에서 중요한 개념 중 하나로, 계약 체결과 실행을 자동으로 수행할 수 있는 프로그램이며, 블록체인 기술을 활용하여 제 3자의 인증 기관 없이 개인 간 계약이 이루어질 수 있도록 하는 기술입니다. 조금 더 자세히 설명드리자면, Smart Contract는 계약자가 계약 시 조건을 미리 프로그래밍하여 블록체인 네트워크 상에 올려놓고, 이 조건이 충족되거나 비충족되었을 때 사전에 정의한 행위를 컴퓨터가 자동으로 수행함으로써 정상적인 계약 이행이 이루어집니다. 이를 통해 제 3자 없이 계약이 이루어질 수 있습니다. 이러한 Smart Contract는 Ethereum이 등장하면서 최초로 구현되기 시작했으며, 현재는 다양한 형태의 Smart Contract가 개발되고 있습니.. 2023. 4. 29.
BitB (Browser in the Browser) 공격 배경 최근 아래와 같은 기사를 접하게 되었는데, 내용을 요약하자면 북한 해커조직이 Phishing 공격에 BitB(Browser in the Browser) 기술을 사용하고 있다는 내용이었습니다. 북한 해커조직, 실제 주소와 똑같은 피싱 사이트 사용한다? BitB 기술 악용 최근 북한 해커조직이 피싱 공격에 BitB(Browser in the Browser) 기술을 사용하는 등 피싱 관련 기술이 고도화되고 있어 주의가 요구된다. 과거의 피싱 공격은 피싱 사이트의 주소가 실제 사이트와 달 www.boannews.com 그럼 이제 여기서 말하는 BitB (Browser in the Browser) 공격이 무엇인지 한 번 알아보도록 하겠습니다. BitB (Browser in the Browser) 공격 Bit.. 2023. 4. 23.
[CVE-2023-20860] Spring Framework Improper Access Control Spring Framework WebMVC는 Web Application을 개발하는데 사용되는 MVC(Model-View-Controller) 제공하는 Package 입니다. 해당 Package에서 경로 기반 인증 로직을 우회할 수 있는 취약점이 발견되었으며,해당 취약점은 CVE-2023-20860이라는 번호를 부여받았습니다. 취약점 상세 내용 Spring Security 설정에서 mvcRequestMatcher를 사용하여 경로 기반의 접근 제어를 수행할 수 있습니다. 아래의 예제 코드를 보면, mvcMatchers 메서드를 이용하여 admin/** 경로에 대한 접근 제어를 추가하고 있습니다.그런데 Spring Security와 Spring MVC에서 **를 해석하는 과정이 달라 경로를 기반으로한 접근 .. 2023. 3. 26.
[CVE-2023-23997] MS Outlook EoP(Elevation of Privilege) 취약점 23년 3월 14일 Microsoft에서 약 80개의 보안 취약점에 대한 패치를 발표하였습니다. 그 중 CVE-2023-23997 취약점은 Mircosoft Outlook에서 발생하며, 권한 상승이 가능한 취약점 입니다. 해당 취약점은 공격자가 UNC(Universal Naming Convention) 경로를 포함한 확장된 MAPI(Message Application Program Interface) 속성을 사용하여 피해자에게 메시지를 보낼 때 발생합니다. UNC(Universal Naming Convention) 컴퓨터 내의 공유 파일이 접근 시 저장 장치를 명시하지 않고 파일을 확인할 수 있는 방법 예시 : \\servername\sharename\path\filename MAPI(Message Ap.. 2023. 3. 17.
FileCoin(FIL) JSON-RPC로 통신하기 기본 구문 import requests import json import cbor # Filecoin 노드 RPC endpoint URL node_url = 'https://api.node.glif.io' def json_request(method,cid): # JSON RPC 요청 메시지 구성 rpc_request = { "jsonrpc": "2.0", "id": 0, "method": f"Filecoin.{method}", "params": [{"/":cid},] } return rpc_request def get_response(method,cid): # JSON RPC 요청 보내기 response = requests.post(node_url, json=json_request(method,cid)).. 2023. 3. 13.
Python Web3를 통한 FNCY RPC 통신하기 FNCY RPC 통신 방법 Block 돌면서 특정 행위 수행하기 from web3 import Web3, HTTPProvider from web3.middleware import geth_poa_middleware # POA 체인의 RPC 엔드포인트 URL poa_rpc_url = "https://fncy-seed1.fncy.world" # web3.py를 사용하여 RPC 엔드포인트에 연결 w3 = Web3(HTTPProvider(poa_rpc_url)) # POA 체인에 대한 미들웨어를 추가 w3.middleware_onion.inject(geth_poa_middleware, layer=0) start_block_number = 1 # 최신 블록 번호를 가져옴 latest_block_number = w.. 2023. 3. 13.
[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.