P5

glueblacksmithInternet and Web Development

Nov 13, 2013 (3 years and 10 months ago)

121 views

INFS3202/INFS7202  Practical  5  -­  Web  Applications
The  goal  of  this  prac0cal  is  to  explore  server  side  website  development.  This  prac0cal  counts  5%  towards  
your  assessment.  You  must  present  this  prac0cal  to  your  lab  tutor  during  your  scheduled  lab  sessions  in  
week  
7
 
(week  star0ng  26/04/2010)
.
This  prac0cal  is  divided  into  2  Tasks:
·∙
Build  a  File  Manager  (
3
 marks)  
·∙
Challenge  Task:  
Prevent  users  uploading  “malicious”  files  
(
2
 marks)
h"p://www.acune-x.com/websitesecurity/upload-­‐forms-­‐threat.htm
Student  should  use  Java  Servlets/JSP  to  complete  this  prac0cal.

Preparation  
Before  aUemp0ng  this  prac0cal  you  should  have  a  good  working  knowledge  of  HTML/XHTML  (Client  
Side)  and
 Java  Servlets  &  JSP
 (Server  Side)  you  should  understand  how  
client  server  communica0on  
works  and  the  Java  Servlet  architecture  for  building  web  applica0ons
.
Before  aUemp0ng  this  prac0cal  please  ensure:  
·∙
You  have  covered  the  material  in  Lectures  1  -­‐
 
6.  
·∙
Students  should  have  installed  (if  not  using  lab  machines)  
Apache  Tomcat
·∙
Understand  how  to  build  Java  Web  Applica0ons  using  Java  Servlets  and  JSP
·∙
Inves0gate  file  and  folder  uploading  &  manipula0on  using  Java/JSP
Using  Tomcat  in  the  Lab

Follow  the  lecture  notes
 to
 download,  install  and  start  Tomcat  in  your  H:  drive.  

If  you  can  successfully  install  and  start  Tomcat,  then  a  page  similar  to  this  one  should  be  
displayed  when  you  type  hUp://localhost:8080/  :
INFS3202/INFS7202  Prac  5                    pg.  
1
Task  1  –  File  Manager  (
3
 Marks)
Guidelines
For  this  prac0cal  you  will  create  a  website  which  allows  users  to  upload  and  manage  files  located  on  the  
server.  
The  web  applica0on  should  allow  users  to;

View  a  list  of  files  in  the  uploads/  directory.

Show  file  details,  such  as  file  size  and  type.

Upload  a  new  file  to  the  directory  from  their  computer.

Rename  and  Delete  files  from  the  directory.
You  are  free  to  use  any  mixture  of  Java  Servlets  &  JSP  in  your  implementa0on  you  deem  appropriate.    
However,  your  tutor  will  asses  how  "elegant"  your  solu0on  is,  for  instance,  have  you  created  func0ons  to  
remove  duplica0on  of  code?  Have  you  designed  the  solu0on  to  be  accessible  to  addi0onal  func0onality  
or  future  applica0ons  you  develop?  
Once  you  have  completed  a  basic  file  manager  you  will  then  need  to  develop  func0onality  to  allow  users  
to  create  subfolders  (within  uploads/).  They  should  be  able  to  create  a  new  folder,  upload  files  to  it,  and  
modify  them  with  the  same  func0onality  above.
For  this  part  of  the  task  you  will  also  have  to  devise  a  user  interface  which  is  intui0ve  for  users  to  
navigate  and  view/upload  files  in  folders  and  subfolders.    Again,  your  tutor  will  assess  how  intui0ve  and  
effec0ve    your  user  interface  is.
Requirements

List  files  in  the  uploads/  directory  
(0.5  marks)

Upload  files  into  the  uploads/  directory  
(0.5  marks)

Rename  and  delete  files  from  the  directory  
(0.5  marks)

Subfolders  within  the  uploads/  folder  and  upload  files  to  subfolders  easily  from  the  user  interface.  
Users    should  be  able  to  perform  the  same  opera0ons  (list/rename/delete)  from  subfolders  
(1  
mark)

Tutors  discre0on  of  "Elegance"  of  your  solu0on  and  user  interface.
 (0.5  marks)
INFS3202/INFS7202  Prac  5                    pg.  
2
Task  2  –  
Preventing  Malicious  File  Uploads
 (
2
 Marks)
Allowing  users  to  upload  files  into  a  web  applica0on  can  be  risky  and  opens  your  server  up  to  malicious  
users.  These  users  can  upload  executable  files  which  when  run  on  the  server  can  steal  your  data  (and  
your  users  data!)  as  well  as  give  the  user  control  of  the  website  and  server,  where  they  can  turn  it  into  a  
phishing  site,  or  join  it’s  server  to  a  bot  network  to  control  or  receive  logs  for  bots  or  Trojan  infected  
machines.
They  could  also  launch  an  aUack  on  another  machines  or  network  from  your  machine,  in  the  well-­‐
publicised  Google  Hack  aUempt  websites  which  were  compromised  in  this  fashion  played  a  part  in  
siphoning  off  data  from  compromised  systems:  hUp://www.wired.com/threatlevel/2010/01/opera0on-­‐
aurora/
Guidelines
A  friend  completed  Task  1  in  2009  in  PHP,  however  aqer  pos0ng  the  solu0on  on  his  public  website  tells  
you  he  has  found  a  number  of  users  have  uploaded  executable  code  and  run  it  from  his  system,  sending  
of  SPAM  email  and  such.    They  have  asked  you  to  help  them  secure  the  applica0on  so  that  users  cannot  
upload  files  which  could  be  used  to  execute  code  on  the  web  server.
1.
Download  and  drop  the  filemanager  folder  into  your  H:\webpages  folder
   
h U p://i t e e.u q.e d u.a u/~ i n f s 3 2 0 2/p r a c 0 c a l/0 5/fi l e m a n a g e r.z i p
 
2.
Implement  security  measures  to  prevent  users  from  uploading  (or  execu0ng)  malicious  code
3.
Test  your  solu0on  by  trying  to  upload  and  execute  the  aUached  files:
a.
phpinfo.php
b.
phpinfo.php.gif
c.
phpinfo.png
4.
Make  sure  your  applica0on  s0ll  works  by  uploading  the  following  safe  files:
a.
safe.jpg
b.
safe.php.gif
c.
safe.png
Requirements

Demonstrate  to  your  tutor  your  solu0on  (by  uploading  the  “malicious”  and  safe  files  a-­‐b)  and  
explain  the  measures  you  implemented  
(1  mark)

Demonstrate  and  explain  how  a  malicious  user  craqed  (c)  and  show  what  measures  you  
implemented  to  prevent  such  files  from  compromising  the  system.  
(1  mark)
INFS3202/INFS7202  Prac  5                    pg.  
3