-
Notifications
You must be signed in to change notification settings - Fork 383
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Try Echidna in every challenge from The Ethernaut CTF #433
Comments
I've been trying to complete this CTF with Echidna for the last week or two, here's a recap of my findings so far:
Echidna reference:
I have marked some levels as 'N/A' - these are levels that I felt were out of scope for a tool like Echidna. If you want to see the contracts I used to solve them, you can check out my repo at https://github.com/elopez/echidna-ethernaut |
@elopez can you re-run this with the latest |
Tried some solutions with the following configuration:
? = Not tested
* It needs to edit "player" name variable in test.sol otherwise with solidity 0.6.12 fails to compile "identifier already declared" EDIT: Updated with more solutions tested. |
Continuing where @smonicas left off
Documentation observation/note:
|
I was going through this and got stuck on on 01-Fallback. It appears that the code has changed since the last time this has been attempted. The Fallback.sol contract is now using the receive fallback function which echidna 2.0.1 does not catch therefore the test never fails. However, if I change the receive function to be |
Good catch. There is fix coming in #722 but it depends on a slither printer (which I think it was already released). Btw, if you are interesting in working in this issue, please let us know, we definitely want to complete as much examples as possible and move everything into building secure contract. |
Yeah, I'm working through these but I'm pretty new to the whole space. I'm sure what the original table was indicating between what the 💪 and the 🔍 though. I'm creating my own version based off the original and will be more than happy to help out as time allows. |
@elopez worked on the original table, he can clarify this next week |
Hi! Here's a expanded reference of the original table:
Solutions of the ":muscle:" style are more interesting, but sometimes these exercises are not that easily solvable with a fuzzer. The "🔍" style solutions were good practice for me and lead to discovering some bugs in echidna so I think they're valuable as well 😄 |
Thank you. This helps clear up the classifications. |
Hi @man715, just wondering was the state of the testing of Echidna in The Ethernaut? Are you blocked by some issue? |
Hey @ggrieco-tob I have not had much time. I hope to get back to it this weekend. |
Here is what I have so far. I'm going at this with the assumption that an individual may not know how to solve the challenge before running Echidna.
Reference:
You can see my short writeups here |
This is great. The only suggestion I have so far is to include some comment on why Echidna cannot run in each example with 🚫 |
I've updated the table. If anything is incorrect with my assumptions, please let me know and I can go back and try testing again. |
For completeness:
|
Thanks to everyone that contributed here. I believe we can close this issue. There are not enough challenge to solve with a fuzzer in the current ethernaut (perhaps in some old version). Perhaps Dex Two can be added to building secure smart contracts. |
Review every challenge from The Ethernaut CTF, to see which ones can be solve automatically using Echidna.
A plan to proceed:
Bonus: identify usability issues.
The text was updated successfully, but these errors were encountered: