Shellcode Injection


Yellow Belt (ASU CSE 466)

Dates

Assigned: August 30, 2022 at 1:00pm (Arizona time)
(solves before this date will not appear on the default scoreboard)

Due: September 13, 2022 at 11:00am UTC-07:00 (Arizona time)
(after this date, the live session of the dojo will move on to the next module, though solves will still count for scoreboard ranking)

For ASU extra credit due dates, please log in with an @asu.edu email address.


Lectures and Reading


These were last year's lectures.




Lots of external resources are referred to in the module videos. Additionally, the following reading material is useful:


These are the slides for this year's lectures, covered ad hoc in live lectures.


The following live sessions belong to this module.


Challenges

Write and execute shellcode to read the flag!

Write and execute shellcode to read the flag, but a portion of your input is randomly skipped.

Write and execute shellcode to read the flag, but your inputted data is filtered before execution.

Write and execute shellcode to read the flag, but your inputted data is filtered before execution.

Write and execute shellcode to read the flag, but the inputted data cannot contain any form of system call bytes (syscall, sysenter, int), can you defeat this?

Write and execute shellcode to read the flag, but the inputted data cannot contain any form of system call bytes (syscall, sysenter, int), this challenge adds an extra layer of difficulty!

Write and execute shellcode to read the flag, but all file descriptors (including stdin, stderr and stdout!) are closed.

Write and execute shellcode to read the flag, but you only get 18 bytes.

Write and execute shellcode to read the flag, but your input has data inserted into it before being executed.

Write and execute shellcode to read the flag, but your input is sorted before being executed!

Write and execute shellcode to read the flag, but your input is sorted before being executed and stdin is closed.

Write and execute shellcode to read the flag, but every byte in your input must be unique.

Write and execute shellcode to read the flag, but this time you only get 12 bytes!

Write and execute shellcode to read the flag, but this time you only get 6 bytes :)


Module Ranking

This scoreboard reflects solves for challenges in this module after the module launched in this dojo.

Rank Hacker Score