Image for post
Image for post

You will understand how to trick a block explorer into displaying different byte code of your choosing, other than the one deployed on the chain.

This is important because a user can be tricked by a hacker to think they interact with a good contract, when actually the user interacts with malicious contract. It is indeed the same contract address, but the byte code is not the one reported by the block explorer.

The problem

The core technical issue is how block explorers handle transactions that create contracts and are then reverted. I found two explorers, BlockChair and BlockScout, that incorrectly store…

This is going to be a series about some of the techniques I implemented when designing Karl, a free tool that finds exploitable code in live smart contracts.

When I monitor the Ethereum blockchain for vulnerable contracts, I need a way to determine if the vulnerabilities I find are the real thing, or merely a scattering of false positives and honeypots. I’ve been able to mitigate this possibility by testing for vulnerabilities in a virtual copy of the blockchain.

Image for post
Image for post

Virtual environment

A blockchain clone is useful because we could break the contract arbitrarily sending transactions to it. Remember “I accidentally killed it”?

This is one of the challenges in the series provided by Security Innovation

Image for post
Image for post
Pin number hidden in plain sight

The second challenge makes you think a little bit. It’s not that hard, but it assumes you already know how to run a transaction.

The challenge is quite simple to understand


Unlock the Safe

Just enter the correct pin

This is the first challenge in the series provided by Security Innovation

Image for post
Image for post

It’s quite simple because there’s no real hacking we need to do. This is an intro challenge that makes sure you can run transactions and understand what the ABI is.

My basic tool set for solving challenges consists of

  • Remix-ide I have a fork of this with some bugfixes and style changes (monospace fonts).
  • Ganache It’s easier and faster to test transactions in a local environment than to send to Ropsten everytime.
  • Web3-console Super easy way to create custom transactions or query the chain.

You can find the challenge here.


Donate to Bob Smith!

Bob Smith is a name you…

Daniel Luca

Button pusher

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store