Workshop for web3 bridge hacking at Hacktivity 2022
 
 
 
Go to file
six bca95b66e0 Workshop big update based on feedback from day 1 2022-10-06 22:59:37 +02:00
docs Workshop big update based on feedback from day 1 2022-10-06 22:59:37 +02:00
ink Receipt reuse and forgery tools 2022-10-06 17:17:05 +02:00
js Workshop big update based on feedback from day 1 2022-10-06 22:59:37 +02:00
python Workshop big update based on feedback from day 1 2022-10-06 22:59:37 +02:00
solidity Workshop big update based on feedback from day 1 2022-10-06 22:59:37 +02:00
LICENSE Initial commit 2022-10-04 17:13:47 +00:00
README.md Workshop big update based on feedback from day 1 2022-10-06 22:59:37 +02:00

README.md

pwn w3bridges

Workshop for "web3" bridge hacking at Hacktivity 2022

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)