Solution for Session Fixation added
git-svn-id: http://webgoat.googlecode.com/svn/trunk@314 4033779f-a91e-0410-96ef-6bf7bf53c507
| After Width: | Height: | Size: 4.9 KiB | 
| @ -0,0 +1,120 @@ | |||||||
|  | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | ||||||
|  | <html> | ||||||
|  | <head> | ||||||
|  | <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> | ||||||
|  | <title>Session Fixation</title> | ||||||
|  | <link rel="stylesheet" type="text/css" href="/WebGoat/lesson_solutions/formate.css"> | ||||||
|  | </head> | ||||||
|  | <body> | ||||||
|  | <p><b>Lesson Plan Title:</b> Session Fixation</p> | ||||||
|  |  | ||||||
|  | <p><b>Concept / Topic To Teach:</b><br/> | ||||||
|  | How to steal a session with a 'Session Fixation'  | ||||||
|  | </p>  | ||||||
|  |  | ||||||
|  | <p><b>How the attacks works:</b><br/> | ||||||
|  | A user is recognized by the server by an unique  | ||||||
|  | Session ID. If a user has logged in and is authorized  | ||||||
|  | he does not have to reauhorize when he revisits the  | ||||||
|  | application as the user is recognized by the Session ID. | ||||||
|  |  In some applications it is possible to deliver the Session  | ||||||
|  |  ID in the Get-Request. Here is where the attack starts.  | ||||||
|  | </p> | ||||||
|  | <p>An attacker can send a hyperlink to a | ||||||
|  |  victim with a choosen Session ID. This can be  | ||||||
|  |  done for example by a phishing mail. If the victim  | ||||||
|  |  clicks on the link and loggs in he is authorized by the  | ||||||
|  |  Session ID the attacker has choosen. The attacker can visit | ||||||
|  |   the page with the same ID and is recognized as the victim | ||||||
|  |    and gets logged in without authorization.</p> | ||||||
|  |  | ||||||
|  | <p><b>General Goal(s):</b><br/> | ||||||
|  | This lesson has several stages. You play the attacker but  | ||||||
|  | also the victim. After having done this lesson it should be | ||||||
|  |  understood how a Session Fixation in general works. It should  | ||||||
|  |  be also understood that it is a bad idea to use the Get-Request  | ||||||
|  |  for Session IDs. | ||||||
|  |  | ||||||
|  | </p> | ||||||
|  |  | ||||||
|  | <p> | ||||||
|  | <b>Solution:</b><br/> | ||||||
|  | This lesson has 4 stages. In stage 1 and 4 you are Hacker Joe | ||||||
|  | in lesson 2 and 3 you are the victim Jane.  | ||||||
|  |  | ||||||
|  | <p> | ||||||
|  | <b>Stage 1:</b><br> | ||||||
|  | You have to send a phishing mail to Jane with a link containing a Session ID. | ||||||
|  | The mail is already prepared. You only have to alter the link so it includes | ||||||
|  | a Session ID (SID). You can archive this by adding &SID=WHATEVER to | ||||||
|  | the link. Of course can WHATEVER be replaced by any other string. | ||||||
|  | The link should look similar to following:<br> | ||||||
|  | <a href=http://localhost/WebGoat/attack?Screen=46&menu=320&SID=WHATEVER> | ||||||
|  | </p> | ||||||
|  | <div align="center"><font size="2"> | ||||||
|  | <img src='lesson_solutions/SessionFixation_files/sf_stage1.png'><br> | ||||||
|  | <b>Image 1: Phishing Mail</b> | ||||||
|  | </font> | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  | <p> | ||||||
|  | <b>Stage 2:</b><br> | ||||||
|  | Now you are Jane which receives the mail you wrote in stage 1. | ||||||
|  | Point with the mouse on the link and you will notice the | ||||||
|  | SID in the status bar of your browser. This is the easiest | ||||||
|  | stage as you have only to click on the link	'Goat Hills Financial'. | ||||||
|  | </p> | ||||||
|  | <div align="center"><font size="2"> | ||||||
|  | <img src='lesson_solutions/SessionFixation_files/sf_stage2.png'><br> | ||||||
|  | <b>Image 2: Received Phishing Mail</b> | ||||||
|  | </font> | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <p> | ||||||
|  | <b>Stage 3:</b><br> | ||||||
|  | You are on the login screen of Goat Financial Hills now. In | ||||||
|  | the URL is the SID visible. All | ||||||
|  | you have to do is to log in with your user name Jane | ||||||
|  | and your password tarzan. | ||||||
|  | </p> | ||||||
|  | <div align="center"><font size="2"> | ||||||
|  | <img src='lesson_solutions/SessionFixation_files/sf_stage3.png'><br> | ||||||
|  | <b>Image 3: Goat Hills Financial Login Screen</b> | ||||||
|  | </font> | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  | <p> | ||||||
|  | <b>Stage 4:</b><br> | ||||||
|  | The application switches again to the hacker Joe. | ||||||
|  | There is already a prepared link you have to click on | ||||||
|  | to reach the Goat Hill Financial. In real life this | ||||||
|  | would be different of course. You could directly put the URL | ||||||
|  | in the address bar of your browser.<br><br> | ||||||
|  |  | ||||||
|  |  | ||||||
|  | After having clicked on the provied link you reach  | ||||||
|  | Goat Hill Financial. Take a look at the URL and  | ||||||
|  | you will see that your SID is NOVALIDSESSION. | ||||||
|  | Change this string to the SID you have chosen | ||||||
|  | at the beginning of this lesson and hit enter.</p> | ||||||
|  | <div align="center"><font size="2"> | ||||||
|  | <img src='lesson_solutions/SessionFixation_files/sf_stage4_1.png'><br> | ||||||
|  | <b>Image 4: Browser Address Bar Before Changes</b> | ||||||
|  | <br><br> | ||||||
|  | <img src='lesson_solutions/SessionFixation_files/sf_stage4_2.png'><br> | ||||||
|  | <b>Image 5: Browser Address Bar After Changes</b> | ||||||
|  | </font> | ||||||
|  | </div> | ||||||
|  | <br><br> | ||||||
|  | Congratulation! You are logged in as Jane | ||||||
|  | and the lesson was successful. | ||||||
|  | <div align="center"><font size="2"> | ||||||
|  | <img src='lesson_solutions/SessionFixation_files/sf_success.png'><br> | ||||||
|  | <b>Image 6: Successful Completion Of The Lesson</b> | ||||||
|  | </font> | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  | </body> | ||||||
|  | </html> | ||||||
| After Width: | Height: | Size: 66 KiB | 
| After Width: | Height: | Size: 32 KiB | 
| After Width: | Height: | Size: 24 KiB | 
| After Width: | Height: | Size: 9.2 KiB | 
| After Width: | Height: | Size: 7.4 KiB | 
| After Width: | Height: | Size: 42 KiB |