Sheet 6

General Information

All solutions must be created with Python but could also be combined with some Bash scripting. If you are new to Python have a look online… there are many good resources to get started such as this course, this blog post and this slide deck. Feel free to post other resources to the mailing list to help other PABE students.

Please keep in mind that you should:

  • read the task description carefully

  • push all your changes to the GitLab repository (master branch) before the deadline. Make also sure that the file permissions are set correctly! If you are new to Git check out this site!

  • make sure that your solution (also) runs on the virtual machine (and not just your local machine); this also means that you must install all additional packages yourself from within the solution script (e.g., os.system("pip install --user -r requirements.txt"))

  • make sure that the solution is an executable script named solution (chmod +x ./solution) with a working shebang line at the top (e.g., #!/usr/bin/env python2) so that it can be executed like this: ./solution (do not name your script solution.py, Solution, solution.sh, … just solution)

  • the final solution string, and only that, must be written to stdout and could be a number, a string, a string with the format FLAG{some letters and digits here}, depending on the specific task

  • describe what you are doing using detailed comments for all your solution scripts no matter if it is a Python or Bash script! For Python, for example, use Docstrings (link) or inline comments:

    1
    2
    3
    4
    5
    6
    7
    8
    
    def check_input_length(input_string):
        """
        The input string must have a length greater than 42 and must also be even.
        """
        length = len(input_string)
    
        # the final check happens here
        return (length > 42) and (length % 2 == 0)
    

    This helps us to find out if you really understood the task and you are not just brute-forcing some solutions. Please do not leave any commented code (i.e., code that is not needed to solve the task) in your solution files!

  • make sure that your solution executes within 10 seconds (this is a hard timeout on our server)


The deadline for this sheet is Tuesday, 2020-01-28 23:59:59

Task 26 – A little printer developed during Xmas

Our developer team just build this little printer during Xmas. We hope you enjoy our printer while the baubles are still dangling under your Xmas tree. In the meantime, try to exploit our little printer and print the flag.

Your solution should look like:

1
2
./solution
FLAG{some letters here}

Task 27 – Bank Robbery 2.0

You are now a member of the digital bank robber group Fang-Den-Shui which is famous for stealing money from the rich and giving it to the poor. Are you ready to proof your value?

Your solution should look like:

1
2
./solution
FLAG{some letters here}

Task 28 – Improved PABE Service

Our developer team published this new PABE echo service. This time the binary is even more secured and offers some new functions. Are you ready to exploit it? Just do it then!

Your solution should look like:

1
2
./solution
FLAG{some letters here}

Task 29 – The gift

This binary contains two bugs. Can you exploit both to get the flag printed?

Your solution should look like:

1
2
./solution
FLAG{some letters here}

Task 30 – Top Chunk Norris

Chunk Norris is a top actor (for example the movie Forest Warrior from 1996 where he lives in the wilderness) and also a martial artist. He is also known for his ability to count to infinity…. twice or dividing numbers by zero (even in rings with no zero divisors). That’s why we named this task after him. Exploit this binary so that it prints the flag.

Your solution should look like:

1
2
./solution
FLAG{some letters here}

Hint: There is a special heap chunk that is quite large… but could it be even larger… humongous? Maybe a roundhouse kick can help to solve this task.