본문 바로가기

스마트컨트랙트취약성21

[블록체인 보안] 스마트컨트랙트 취약성, private data 취약성 테스트 소스 https://github.com/SunWeb3Sec/DeFiVulnLabs/blob/main/src/test/Privatedata.sol 코드 취약성 - 솔리디티는 컨트랙트에 정의된 변수를 슬롯에 저장함. - 각 슬롯은 최대 32바이트 또는 256비트까지 데이터를 수용할 수 있음 - 온체인 데이터는 공개, 비공개든 읽을 수 있음. - 비공개 데이터가 있는 보안 컨트랙트로부터 메모리 슬롯을 예측하여 읽어 낼 수 있음. 테스트 참고문서 https://web3sec.notion.site/Private-data-6c0a2a7122e443988cdf514cc54a0a79 2023. 8. 24.
[블록체인 보안] 스마트컨트랙트 취약성 Unchecked external call - call injection 안전하지 않은 호출 취약점 TokenWhale 계약의 ApproveAndCallcode 함수에서 발생하는 취약점. 이 취약점은 임의의 데이터와 함께 임의의 호출이 실행될 수 있게 해서 잠재적인 보안 위험과 의도치 않은 결과를 초래할 수 있음 이 함수는 _spender 주소로부터 받은 _extraData에 대한 유효성 검사나 호가인을 수행하지 않고 저수준 호출(_spender.call(_extraData)를 사용하여 코드를 실행함. 이로 인해 예상치 못한 동작, 재진입공격 또는 무단작업이 발생할 수 있음 이 연습은 입력 및 반환값이 확인되지 않는 계약으로의 저수준 호출에 관한 것임, 호출 데이터가 조작 가능한 경우 임의의 함수 실행을 일으키는것이 쉬움. 테스트 소스 https://github.com/Sun.. 2023. 8. 24.
[블록체인 보안] 스마트컨트랙트 취약성 unsafe delegatecall 안전하지 않은 Delegate Call 취약성 Proxy 계약 소유자 조작 취약점은 스마트계약 설계에서 발행하는 결함으로, 공격자가 Proxy 계약의 소유자를 조작할 수 있는 문제임. 이 취약점은 Proxy 계약의 fallback 함수에서 delegatecall을 사용함으로써 발생 함. delegatecall은 공격자가 proxy 계약의 컨텐스트 내에서 delegate 계약의 pwn()함수를 호출할 수 있게 해주므로, Proxy 계약의 소유자 상태 변수값을 변강할 수 있음. 이로써 스마트계약은 런타임시 다른 주소에서 코드를 동적으로 로드할 수 있게 됨. 시나리오 Proxy 계약은 사용자가 로직 계약을 호출하는데 도움을 주기 위해 설계 됨. Proxy 계약의 소유자는 0xdeadbeef로 하드코딩되어 있음.. 2023. 8. 24.