/OA

Sharpen your smart contract auditing skills with this Training Ground - a platform to practice identifying vulnerabilities discovered in audit contests and crafting high-quality proof of concepts.

Primary LanguageSolidity

OA | Learn to find vulnerabilites and write POC's

Sharpen your smart contract auditing skills with this Training Ground - a platform to practice identifying vulnerabilities discovered in audit contests and crafting high-quality proof of concepts.

Twitter Follow Twitter Follow

Visit 0xLanterns

Shout-Out

Acknowledgement

  • All of the levels are snippets from real protocols. Their team's are the ones that built the codebases and went the extra (nessasary) mile of getting a Audit by one of the premiere auditing platforms.

What is OA?

  • OA is a place for auiditors practice finding contest level vulnerabilites and writing quality POC's that illustrate the impact the vulnerabilities can have. All levels here are directly from past contest on both Code4ena and Sherlock. The idea here is that by simplifying the codebase and the testing framwork, and providing a vulnerability with different tiers of hints. We can somewhat flatten the learning curve for developing a auditors intuotion and how to write good reports. Which center around a good POC.

How To Play

  1. Install Foundry

First run the command below to get foundryup, the Foundry toolchain installer:

curl -L https://foundry.paradigm.xyz | bash

Then, in a new terminal session or after reloading your PATH, run it to get the latest forge and cast binaries:

foundryup
  1. Clone This Repo and install dependencies
git clone https://github.com/0xLanterns/OA.git
cd OA
forge install
  1. Code your solutions in the provided [NAME_OF_THE_LEVEL].t.sol files (inside each level's folder in the test folder)
  2. ** Only edit the test file where you see the following:
        /**
                poc can go here
         */
  1. **Run your POC for the level, In each test file you will see something like:
// Run:  forge test --match-test testPOC0

If the test is executed successfully, then you have just created a working POC!!!

Resources

  • The Foundry Book will become your best friend. Tons of great documentation on how to navigate testing in Foundry. Foundry Book.

Disclaimer

  • All Solidity code, practices, and patterns in this repository are from unaudited codebases. All vulnerabilities have since been resolved. The protocol's codebases look drastically different and improved now. The code here should not be a reflection of their protocol as it was intentionally not production-ready.

  • This platform is strictly to be used for educational purposes. DO NOT USE IN PRODUCTION.