Pierre E.blog.pedrojok.com·Apr 12, 2024The Ethernaut CTF Solutions | 31 - StakeGoals The Contract // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Stake { uint256 public totalStaked; mapping(address => uint256) public UserStake; mapping(address => bool) public Stakers; address public WETH; ...DiscussThe Ethernautethereum smart contracts
Pierre E.blog.pedrojok.com·Apr 11, 2024The Ethernaut CTF Solutions | 30 - Higher OrderGoals The Contract pragma solidity 0.6.12; contract HigherOrder { address public commander; uint256 public treasury; function registerTreasury(uint8) public { assembly { sstore(treasury_slot, calldataload(4)) ...DiscussThe Ethernautethereum smart contracts
Pierre E.blog.pedrojok.com·Apr 10, 2024The Ethernaut CTF Solutions | 29 - SwitchGoals The Contract This one is a really fun one to finish this series with a super simple goal: Turn the switch on. Unlike the previous Gate Keeper Three, the Switch challenge is far from easy, especially if you are not familiar with calldata and me...DiscussThe Ethernautethereum smart contracts
Pierre E.blog.pedrojok.com·Apr 9, 2024The Ethernaut CTF Solutions | 28 - Gate Keeper ThreeGoals The Contract // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract SimpleTrick { GatekeeperThree public target; address public trick; uint private password = block.timestamp; constructor(address payable _target) { ...DiscussThe Ethernautethereum smart contracts
Pierre E.blog.pedrojok.com·Apr 8, 2024The Ethernaut CTF Solutions | 27 - Good SamaritanGoals The Contract A really fun challenge, with a simple goal and a pretty recent vulnerability introduced that we will need to be aware of from now on! // SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; import {Address} from "../helpe...DiscussThe Ethernautethereum smart contracts
Pierre E.blog.pedrojok.com·Apr 7, 2024The Ethernaut CTF Solutions | 26 - Double Entry PointGoals The Contract A pretty long code base this time, which is a good exercise to divide the task into smaller parts so we don't get overwhelmed. This is closer to a proper security review with multiple contracts and interactions between them. It al...DiscussThe Ethernautethereum smart contracts
Pierre E.blog.pedrojok.com·Apr 6, 2024The Ethernaut CTF Solutions | 25 - MotorbikeGoals The Contract // SPDX-License-Identifier: MIT pragma solidity <0.7.0; // import "openzeppelin-contracts-06/utils/Address.sol"; // import "openzeppelin-contracts-06/proxy/Initializable.sol"; import {Address} from "../helpers/Address.sol"; impo...DiscussThe Ethernautethereum smart contracts
Pierre E.blog.pedrojok.com·Apr 5, 2024The Ethernaut CTF Solutions | 24 - Puzzle WalletGoals The Contract We are back to the delegatecall caveats with the Puzzle Wallet, which introduces proxy and upgradeable contracts along with their associated vulnerabilities. // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; pragma experimen...DiscussThe Ethernautethereum smart contracts
Pierre E.blog.pedrojok.com·Apr 4, 2024The Ethernaut CTF Solutions | 23 - Dex TwoGoals The Contract We stay in DeFi with another Dex challenge. // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // import "openzeppelin-contracts-08/token/ERC20/IERC20.sol"; // import "openzeppelin-contracts-08/token/ERC20/ERC20.sol"; // imp...DiscussThe Ethernautethereum smart contracts
Pierre E.blog.pedrojok.com·Apr 3, 2024The Ethernaut CTF Solutions | 22 - DexGoals The Contract // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // import "openzeppelin-contracts-08/token/ERC20/IERC20.sol"; // import "openzeppelin-contracts-08/token/ERC20/ERC20.sol"; // import 'openzeppelin-contracts-08/access/Ownabl...DiscussThe Ethernautethereum smart contracts