문제 Free Rider A new marketplace of Damn Valuable NFTs has been released! There’s been an initial mint of 6 NFTs, which are available for sale in the marketplace. Each one at 15 ETH. The developers behind it have been notified the marketplace is vulnerable. All tokens www.damnvulnerabledefi.xyz 취약점 msg.value의 잘못된 사용 FreeRiderNFTMarketplace 컨트랙트의 취약점은 buyMany 함수에서 호출된 _buyOne 함수에서 msg.value를 그대로 사..
문제 Puppet There’s a lending pool where users can borrow Damn Valuable Tokens (DVTs). To do so, they first need to deposit twice the borrow amount in ETH as collateral. The pool currently has 100000 DVTs in liquidity. There’s a DVT market opened in an old Uniswap www.damnvulnerabledefi.xyz 취약점 PuppetPool 컨트랙트의 취약점은 UniswapV1Exchange의 가격을 사용하는 오라클을 구현한 것에 있습니다. UniswapV1에서의 가격은 모든 거래의 영향을 직접적으로 받습..
문제 Compromised While poking around a web service of one of the most popular DeFi projects in the space, you get a somewhat strange response from their server. Here’s a snippet: HTTP/2 200 OK content-type: text/html content-language: en vary: Accept-Encoding server: clo www.damnvulnerabledefi.xyz 취약점 이번 문제에서 유효할 것으로 보이는 공격은 가격을 조작하여 토큰을 0.1 이더에 산 뒤, 999.1 이더에 되파는 것입니다. 그러나 컨트랙트 자체에는 이렇다 할 취약점이 발견..
문제 Selfie A new cool lending pool has launched! It’s now offering flash loans of DVT tokens. It even includes a fancy governance mechanism to control it. What could go wrong, right ? You start with no DVT tokens in balance, and the pool has 1.5 million. Your goal www.damnvulnerabledefi.xyz 취약점 렌딩 풀이 가지고 있는 거버넌스 토큰을 탈취해야 합니다. 우선 렌딩 풀부터 살펴봅시다. 이번 렌딩 풀의 특이사항은 거버넌스 컨트랙트와 상호작용한다는 것입니다. 거버넌스 컨트랙트에서 dr..
문제 The Rewarder There’s a pool offering rewards in tokens every 5 days for those who deposit their DVT tokens into it. Alice, Bob, Charlie and David have already deposited some DVT tokens, and have won their rewards! You don’t have any DVT tokens. But in the upcoming www.damnvulnerabledefi.xyz 취약점 TheRewardPool의 deposit 함수가 호출되면 amountToDeposit 만큼의 지분 토큰을 msg.sender에게 민팅하고 distributeRewards 함수를 ..
1. 문제 The Ethernaut The Ethernaut is a Web3/Solidity based wargame played in the Ethereum Virtual Machine. Each level is a smart contract that needs to be 'hacked'. The game is 100% open source and all levels are contributions made by other players. ethernaut.openzeppelin.com Nowadays, paying for DeFi operations is impossible, fact. A group of friends discovered how to slightly decrease the cost..
프라이빗 키를 .env 파일에 저장하는 것은 안전하지 않다 제목 어그로를 좀 끌어봤는데 사실 .env 파일 사용하지 마라는 것은 아닙니다. 다만 프라이빗 키를 .env 파일에 저장해서 사용하는 것은 지양해야 합니다. 왜냐? 프라이빗 키가 플레인 텍스트로 저장되기 때문입니다. 자금이 들어있는 프라이빗 키를 사용했는데 .env 파일이 노출되기라도 하면 그야말로 대환장 파티. 게다가 코파일럿이나 이와 관련된 여러 AI 도구들이 코드를 읽어들이면서 .env 파일에도 접근해 프라이빗 키를 기억하고 저장했다가 언제 어디서 어떻게 노출시켜버릴 지도 미지수입니다.RPC_URL=https://ethereum-sepolia.publicnode.comPRIVATE_KEY= 또한 --private-key 플래그를 사용해 프..
Truster 문제 Truster More and more lending pools are offering flash loans. In this case, a new pool has launched that is offering flash loans of DVT tokens for free. The pool holds 1 million DVT tokens. You have nothing. To pass this challenge, take all tokens out of the pool. www.damnvulnerabledefi.xyz 취약점 파라미터로 받은 target 주소로 data와 함께 call 함수를 호출합니다. 어떤 주소의 어떤 함수든 호출할 수 있으므로 함수 실행의 결과가 예측이 어렵습니다...
⛓️ 시리즈 2024.01.30 - [Solidity/DeFi] - [Uniswap] V2 Core - UniswapV2ERC20 2024.01.31 - [Solidity/DeFi] - [Uniswap] V2 Core - UniswapV2Factory 2024.01.31 - [Solidity/DeFi] - [Uniswap] V2 Core - UniswapV2Pair 2024.02.05 - [Solidity/DeFi] - [Uniswap] V2 Core 보충 자료 - 백서 읽기 2024.02.20 - [Solidity/DeFi] - [Uniswap] V2 Router 2024.02.21 - [Solidity/DeFi] - [Uniswap] V2 Oracle 예제 🦄 FlashSwap 플래시 스왑은 자산을 ..
⛓️ 시리즈 2024.01.30 - [Solidity/DeFi] - [Uniswap] V2 Core - UniswapV2ERC20 2024.01.31 - [Solidity/DeFi] - [Uniswap] V2 Core - UniswapV2Factory 2024.01.31 - [Solidity/DeFi] - [Uniswap] V2 Core - UniswapV2Pair 2024.02.05 - [Solidity/DeFi] - [Uniswap] V2 Core 보충 자료 - 백서 읽기 2024.02.20 - [Solidity/DeFi] - [Uniswap] V2 Router 🦄 TWAP Uniswap V2는 새로운 블록에서 최초로 컨트랙트가 호출되어 트랜잭션이 실행될 때 이전 블록에서의 마지막 가격 price0 ..