ELEC5616 -无代写
时间:2025-05-28
1
ELEC5616 Computer & Network Security – 2025-S1

Project 2: Common Vulnerabilities

Due Date: Friday 30th May 2025 11:59pm (Week 13)


Marking
• You are to work on this assignment in groups of 2.
• Answer the questions below in no more than four pages - concise
answers are good answers. Diagrams are INCLUDED in the page
limit.
• A typed PDF assignment must be submitted to Canvas.
• Late submissions will receive a penalty of 5% per calendar day (of the
maximum mark).
• You must be able to demonstrate the practical component of
Savegames (1.1 part 1,4) and SQL Exploits (2 part 1) during
your tutorial class in Week 13 to demonstrate your understanding.
• Ensure any code and/or solutions employed are included in a legible
and well documented fashion.
• Report worths 15% and demonstration worths 5% of your final grade.
2



Disable: echo 0 | sudo tee /proc/sys/kernel/randomize va space
Enable: echo | sudo tee /proc/sys/kernel/randomize va space

Task 1: Low Level Exploits [11 Marks]
1.1 Savegames [6 Marks]
Jimmy is becoming increasingly frustrated at the computer game he’s
playing. He has a save right before the level’s boss, but he needs either more
health or more gold in order to win. The game is loaded from a normal file
on disk but the health and gold are encrypted in some complicated fashion.
The character’s name is not, however.
1. Set the character’s gold or health to a number equal to the last four
digits of your unikey (or the unikey of one of your group members) by
utilising a buffer overflow. How did you achieve this? Explain using
reference to bytes and ASCII as to what the exact value was that you
achieved.
If you could not perform this task please explain why and you will be
tasked to set gold to 8999. [2.5 marks]
2. How could this exploit be prevented? [0.5 mark]
3. Could this exploit be useful for more than just the game? Could it be
used to gain access to a system? If not, why not? If so, where might it
be used? [0.5 mark]
Jimmy is interested in speed running, and feels that there might be a faster
way to beat the game by using the name field of his character. Jump to the
secret function and beat the game!
4. Show how Jimmy can jump to the secret function and beat the game.
[2 marks]
5. What is ASLR, and why is it useful? [0.5 mark]
3
1.2 iCubeKinect [3 Marks]
The source code for the (fictional) iCubeKinect system is provided to you.
The operation of the system is intentionally vague and it is up to you to
interpret how the system works. If you can see multiple ways in which the
system could work, you should state these assumptions in your report and
discuss the ramifications for each.
1. Why does the iCubeKinect system use an asymmetric cipher to verify
their DVD games? Would it be possible to use a symmetric cipher
instead? [0.5 mark]
2. What problem exists in the iCubeKinect verification code? How could
you make the machine execute any arbitrary DVD 1? [2 marks]
3. How would you fix it? Would the security vulnerability be made less
serious by using either a stronger hashing scheme (such as SHA-512)
or a different asymmetric cipher? [0.5 mark]

1.3 General Questions [2 Marks]
1. Why is it necessary for us to provide the flag -fno-stack-protector to GCC
(for task 1.1)? What is a canary in terms of a buffer overflow and how can
a canary prevent a buffer overflow exploit? [1 mark]
2. Imagine you were exploiting a program that was running with escalated
privileges (i.e. could read sensitive files, modify other user’s settings and
so on) – is it possible to obtain a BASH shell using buffer overflows? Be
sure to explain what shellcode is and how the shellcode is executed 2.
[1 mark]











1You may assume there are thousands of legitimate game / cert pairs to use to assist
you.
2The traditional introduction to this topic is “Smashing the Stack for Fun and Profit”
4
Task 2: SQL Exploits [4 Marks]
Please setup a SQLite database locally to execute the queries.
1. Show how it is possible to log in as any user by performing an SQL
injection attack on the username/password login page. [1 mark]
2. The website has been clued in on their major security problem and
prevented the previous attack. Is it possible to use the status query to
work out the password of one of the administrators Bobby3? [1 mark]
3. How can these attacks be prevented? Is it a difficult security problem to
fix? Why is it so common? [1 mark]
4. Is an SQL injection vulnerability more or less severe than a buffer
overflow exploit? Justify your reasoning. [1 mark]
































3SQLite (the database in use here) doesn’t allow multiple SQL statements to be exe-
cuted in a single execute query – consider using substr and subqueries

学霸联盟
essay、essay代写