Skip to content

ricardojoserf/rop-emporium-exploits

Repository files navigation

Rop Emporium challenges

Link: https://ropemporium.com/

Logo

Challenge 0: ret2win (64 bits and 32 bits)

ret2win means 'return here to win' and it's recommended you start with this challenge. Visit the challenge page by clicking the link above to learn more.

Challenge 1: split (64 bits and 32 bits)

Combine elements from the ret2win challenge that have been split apart to beat this challenge. Learn how to use another tool whilst crafting a short ROP chain.

Challenge 2: callme (64 bits and 32 bits)

Chain calls to multiple imported methods with specific arguments and see how the differences between 64 & 64 bit calling conventions affect your ROP chain.

Challenge 3: write4 (64 bits and 32 bits)

Find and manipulate gadgets to construct an arbitrary write primitive and use it to learn where and how to get your data into process memory.

Challenge 4: badchars (64 bits and 32 bits)

Learn to deal with badchars, characters that will not make it into process memory intact or cause other issues such as premature chain termination.

Challenge 5: fluff (64 bits and 32 bits)

Sort the useful gadgets from the fluff to construct another write primitive in this challenge. You'll have to get creative though, the gadgets aren't straight forward.

Challenge 6: pivot (64 bits and 32 bits)

Stack space is at a premium in this challenge and you'll have to pivot the stack onto a second ROP chain elsewhere in memory to ensure your success.

Challenge 7: ret2csu (64 bits)

Learn a ROP technique that lets you populate useful 64 bit calling convention registers like rdi, rsi and rdx even in an environment where gadgets are sparse.

Sponsor this project

Languages