# pwn w3bridges Workshop for "web3" bridge hacking at Hacktivity 2022 You can find the presentation in the docs folder. ## Agenda #### Introduction - Web3 vs web2 hacking, concepts / workshop topology - Who interacted with dApps/SCs before? - Who codes Solidity? - Who codes Rust? - Who used a bridge before? - Who is the cryptographer? #### Environment setup, system requirements - Any browser for Ethereum, Remix - Python3 - Substrate, Rust nightly #### Scenario 1: Token on two chains, mint using receipt - Solidity basics, using remix for compile - Exploit visibility, take admin - ECDSA Ethereum basics - Mint with receipt -> Find the vuln! #### Scenario 2: Signature forgery (any chain) - Deploy SC on Ethereum chain - Compile Substrate with EVM - Deploy SC on Substrate chain (so it is different from core) - Test ECDSA signature forgery exploit from one to other - Test same issue with WASM/ink! ## Resources #### Scenario 1 https://remix.ethereum.org/ https://www.tutorialspoint.com/solidity/solidity_operators.htm https://polkadot.js.org/apps/ https://ethereum.org/en/developers/docs/standards/tokens/erc-20/ https://git.hsbp.org/six/eth_keygen #### Scenario 2 https://cryptoctf.org/2022/09/11/writeup-of-flag-submission-forgery-by-si/ https://github.com/paritytech/substrate-contracts-node https://docs.substrate.io/quick-start/ https://github.com/substrate-developer-hub/substrate-front-end-template https://github.com/paritytech/ink https://github.com/paritytech/substrate/blob/master/primitives/core/src/ecdsa.rs https://use.ink/getting-started/setup https://medium.com/block-journal/introducing-substrate-smart-contracts-with-ink-d486289e2b59 https://github.com/paritytech/contracts-ui https://contracts-ui.substrate.io/?rpc=wss://rpc.shibuya.astar.network https://substrate.io/developers/playground/ https://security.stackexchange.com/questions/200682/is-it-possible-to-fake-ecdsa-signatures ## Solidity Hacking Homework 1. Crypto Wojak - Who is the admin? 2. Sminem - Set the password 3. Crypto Wojak - Make your tries count 2 or more 4. Crypto Wojak - Make your tries count 2 and get the answer 5. HODLer - Deposit ether twice with the same address 6. Crypto Wojak - Execute selfdestruct() +1 Sminem - Create a signature to prove you are Satoshi (see js folder)