Welcome to the Profile Management System! This simple Flask application is designed to demonstrate several common web vulnerabilities related to user session and authentication management. As you interact with the application, you will encounter scenarios that mimic real-world vulnerabilities in a safe and controlled environment. This will help you understand the risks associated with improper handling of user credentials and session data.
An example file has been created for you, xsrf_POST.html. This file demonstrates an attempt at a Cross-Site Request Forgery (XSRF) attack. To see the attack in action, drag the file icon into the browser icon. Ensure you are logged in to the Profile Management System before attempting the attack, and that you are not 'serving' the file from a web server, you want to open the file directly in the browser using the file:// protocol.
You will see the attack does NOT work. This leads us to your first task:
- Identify the settings/configurations in the Profile Management System that prevents the CSRF attack from working in xsrf_POST.html. Explain how these settings/configurations prevent the attack.
-
Identify the settings/configurations in the Profile Management System that allow the Cross-Site Scripting (XSS) attack to work. Explain how these settings/configurations allow the attack. Supply two examples of XSS attacks that work against the Profile Management System.
-
Although the XSRF attack vecotr provided did not work, the Profile Management System is still vulnerable to XSRF attacks. Identify the settings/configurations in the Profile Management System that make it vulnerable to XSRF attacks. Explain how these settings/configurations allow the attack. Supply an example of an XSRF attack that works against the Profile Management System.
-
There is an additional attack vector for the cross-site request forgery attack that is not covered in the previous task. Identify this attack vector and explain how it works. Hint: how can we trick the site into thinking our request is from the same origin?
-
Explain how to fix #2
-
Explain how to fix #3
-
Explain how to fix #4, you do not need to provide code, just a brief high-level explanation of the solution.
Submit your answers in a PDF. You should include the names of all the members of your group and the date on the submission. Your submission should be clear, concise, and well-organized. Your answers should be detailed and demonstrate a strong understanding of the concepts discussed in the Profile Management System.