Homework #5 & 6

Due April 15, at 23:59.

For this exercise, you will be attempting to apply your knowledge of security holes in web applications. I'm counting this exercise for double-points because it might take longer, and because I think it's important.

  1. Have a look at the extremely simple personal information manager (PIM) application that I have created. Accounts have been created with usernames “user1” through “user4”. In each case, the password is the same as the username.

    The system's functionality is essentially:

    • A user can create “contacts”. Each contact has a first name, last name, email address, phone number, and notes about them.
    • A user can select other users as “friends” and share his/her contact list with that person.
    • When that other person logs in, they can see all of that user's contacts.

    It's not exactly advanced, but it will do.

  2. I originally created a system that I thought was reasonably secure, but then went back and introduced several security holes. Your task for this homework is to find any security holes in the system. [See the notes and hints below.]

  3. In and email, document each security hole you find. That is, indicate what the problem is (where it can be found, how to trigger it, etc), the type of security hole, and the impact of the flaw. It shouldn't take more than a sentence or two to describe each one: don't write an essay.

  4. Send your results in an email to zju.webdev@gmail.com with the subject “Homework #5 & 6”. Be sure to include your student number in the body of the email.

Hints

Here is the general list of security holes I know about:

You certainly don't have to find all of these to get full marks for the homework: do your best to explore the system, and revisit after I post the solutions.

Notes