Fuzzing is now ubiquitous in the bug discovery and exploitation research field. It is usually the first step to cover code, uncovering weird behaviors and possibly finding vulnerabilities. Another approach is Dynamic Symbolic Execution (DSE) aka concolic execution that offers fine-grain reasoning capabilities but at some costs. Especially, it is notoriously slower than fuzzing. Leveraging these two approaches to work together is an open research problem.
The internship lays at the crossroad of these two approaches. The goal is to work on these two techniques to improve them separately in order to address harder targets and weird systems but also to make them work together for the best. Quarkslab already have multiple internal tools for instrumentation, fuzzing and DSE. Finding bugs/vulns and improving these tools will be an essential part of the internship.
Given the samples, the goal is to trigger the bug using both the fuzzer and the DSE of your choice. The fuzzer and DSE can be used to solve the challenge independently but any collaborative (yet naive way) would be very much appreciated. Write a small report and provide any relevant code used for solving the challenge.
Note: We are more interested by the thought process and the methodology used rather than a complete exhaustive dump of what you did: in short be readable and relevant instead of exhaustive and unreadable.
More info here: https://blog.quarkslab.com/internship-offers-for-the-2021-2022-season.html#fuzzing-and-symbolic-execution-for-the-win
Your application was submitted successfully.