Top Banner
Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers
50

Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Jan 11, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense

Second Edition

Chapter 10Hacking Web Servers

Page 2: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Objectives

• After reading this chapter and completing the exercises, you will be able to:– Describe Web applications– Explain Web application vulnerabilities– Describe the tools used to attack Web servers

Hands-On Ethical Hacking and Network Defense, Second Edition 2

Page 3: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Understanding Web Applications

• Writing a program without bugs– Nearly impossible– Some bugs create security vulnerabilities

• Web applications also have bugs– Larger user base than standalone applications– Bugs are a bigger problem

Hands-On Ethical Hacking and Network Defense, Second Edition 3

Page 4: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Web Application Components

• Static Web pages– Created using HTML

• Same information regardless of time or user

• Dynamic Web pages– Information varies– Need special components

• <form> element

• Common Gateway Interface (CGI)

• Active Server Pages (ASP) and PHP

• ColdFusion and JavaScript

• Database connectorsHands-On Ethical Hacking and Network Defense, Second Edition 4

Page 5: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Web Forms

• Use <form> element or tag in HTML document– Allows customer to submit information to Web server

• Web servers – Process information from a form using a Web

application• Easy way for attackers to intercept data users submit

– Security testers should recognize when forms are used

Hands-On Ethical Hacking and Network Defense, Second Edition 5

Page 6: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Web Forms (cont’d.)

• Web form example:<html>

<body>

<form>

Enter your username:

<input type="text" name="username">

<br>

Enter your password:

<input type="text" name="password">

</form></body></html>

Hands-On Ethical Hacking and Network Defense, Second Edition 6

Page 7: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 7

Figure 10-1 An HTML Web page with a form

Page 8: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Common Gateway Interface

• Handles moving data – From Web server to Web browser

• Dynamic Web pages – Many created with CGI and scripting languages

• CGI – Determines how Web server passes data to Web

browser• Relies on Perl or another scripting language to create

dynamic Web pages

• Programs are written in different languages

Hands-On Ethical Hacking and Network Defense, Second Edition 8

Page 9: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Common Gateway Interface (cont’d.)

• CGI example written in Perl:#!/usr/bin/perl

print "Content-type: text/html\n\n";

print "Hello Security Testers!";

Hands-On Ethical Hacking and Network Defense, Second Edition 9

Page 10: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Active Server Pages

• Main difference from HTML pages– HTML documents can be displayed on the fly

• User requests a Web page, one is created

• Uses scripting languages – JScript – VBScript

• Has evolved – Largely replaced by ASP.NET

• Not all Web servers support ASP

Hands-On Ethical Hacking and Network Defense, Second Edition 10

Page 11: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Active Server Pages (cont’d.)

• ASP example:<HTML>

<HEAD><TITLE> My First ASP Web Page </TITLE></HEAD>

<BODY>

<H1>Hello, security professionals</H1>

The time is <% = Time %>.

</BODY>

</HTML>

• Microsoft does not want users to be able to view an ASP Web page’s source code– Makes ASP more secure

Hands-On Ethical Hacking and Network Defense, Second Edition 11

Page 12: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Apache Web Server

• Apache – Another Web Server program– Said to run on more than twice as many Web

servers as IIS

• Advantages– Works on just about any *nix and Windows platform– Free

Hands-On Ethical Hacking and Network Defense, Second Edition 12

Page 13: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Using Scripting Languages

• Dynamic Web pages – Developed using several scripting languages

• VBScript

• JavaScript

• Macro viruses and worms may take advantage of cross-site scripting vulnerabilities – Most are based on scripting language

Hands-On Ethical Hacking and Network Defense, Second Edition 13

Page 14: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

PHP Hypertext Processor

• Enables creation of dynamic Web pages– Similar to ASP

• Open-source server-side scripting language– Embedded in an HTML Web page

• Using PHP tags <?php and ?> browsers

– Users cannot see PHP code on their Web browser

• Originally used mainly on UNIX systems– More widely used now

• Macintosh and Windows

Hands-On Ethical Hacking and Network Defense, Second Edition 14

Page 15: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

PHP Hypertext Processor (cont’d.)

• PHP example:<html>

<head>

<title>My First PHP Program </title>

</head>

<body>

<?php echo '<h1>Hello, Security Testers!</h1>'; ?>

</body>

</html>

Hands-On Ethical Hacking and Network Defense, Second Edition 15

Page 16: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

ColdFusion

• Server-side scripting language – Used to develop dynamic Web pages– Created by the Allaire Corporation

• Uses proprietary tags – Written in ColdFusion Markup Language (CFML)

• CFML Web applications – Can contain other technologies (e.g., HTML or

JavaScript)

Hands-On Ethical Hacking and Network Defense, Second Edition 16

Page 17: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

ColdFusion (cont’d.)

• CFML example:<html>

<head>

<title>Using CFML</title>

</head>

<body>

<CFLOCATION URL="www.isecom.org/cf/index.htm" ADDTOKEN="NO">

</body>

</html>

Hands-On Ethical Hacking and Network Defense, Second Edition 17

Page 18: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

VBScript

• Visual Basic Script – Scripting language – Developed by Microsoft– Converts static Web pages into dynamic Web pages

• Advantage:– Powerful programming language features

• Microsoft Security Bulletin– Starting point for investigating VBScript

vulnerabilities

Hands-On Ethical Hacking and Network Defense, Second Edition 18

Page 19: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

VBScript (cont’d.)

• VBScript example:<html>

<body>

<script type="text/vbscript">

document.write("<h1>Hello Security Testers!</h1>")

document.write("Date Activated: " & date())

</script>

</body>

</html>

Hands-On Ethical Hacking and Network Defense, Second Edition 19

Page 20: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 20

Figure 10-6 A Web page created with VBScript

Page 21: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

JavaScript

• Popular scripting language

• Has power of programming language– Branching– Looping– Testing

• Widely used

• Variety of vulnerabilities – Exploited in older Web browsers

Hands-On Ethical Hacking and Network Defense, Second Edition 21

Page 22: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

JavaScript (cont’d.)

• JavaScript example:<html>

<head>

<script type="text/javascript">

function chastise_user()

{

alert("So, you like breaking rules?")

document.getElementByld("cmdButton").focus()

}

</script>

</head>

<body>

Hands-On Ethical Hacking and Network Defense, Second Edition 22

Page 23: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 23

JavaScript (cont’d.)

• JavaScript example (cont’d.):<h3>"If you are a Security Tester, please do not click

the command

button below!"</h3>

<form>

<input type="button" value="Don't Click!" name="cmdButton"

onClick="chastise_user()" />

</form>

</body>

</html>

Page 24: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 24

Figure 10-7 A command button created with JavaScript

Figure 10-8 An alert message created with JavaScript

Page 25: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 25

Connecting to Databases

• Most Web pages can display information stored on databases

• Several technologies– Used connect databases with Web applications

• Depends on OS

• Theory is the same

Page 26: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Open Database Connectivity

• Standard database access method

• ODBC interface – Allows application to access data stored in a

database management system• Any system that can understand and issue ODBC

commands

• Interoperability is accomplished by defining:– Standardized representation for data types– Library of ODBC function calls– Standard method of connecting to and logging on

Hands-On Ethical Hacking and Network Defense, Second Edition 26

Page 27: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Object Linking and Embedding Database

• Set of interfaces– Enable applications to access data stored in DBMS

• Designed by Microsoft– Faster, more efficient, and more stable than ODBC

• Relies on connection strings– Allows application to access data stored on external

device

• Different providers can be used– Depends on data source

Hands-On Ethical Hacking and Network Defense, Second Edition 27

Page 28: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 28

Table 10-1 OLE DB providers

Page 29: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

ActiveX Data Objects

• Programming interface for connecting Web applications to a database– Defines a set of technologies that allow desktop

applications to interact with Web

• Steps for accessing a database:– Create ADO connection– Open database connection created– Create ADO recordset– Open recordset and select data you need– Close recordset and database connection

Hands-On Ethical Hacking and Network Defense, Second Edition 29

Page 30: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 30

Understanding Web Application Vulnerabilities

• Many platforms and programming languages can be used to design a Web site– Application security

• As important as network security

• Attackers controlling a Web server can:– Deface the Web site– Destroy company’s database or sell contents– Gain control of user accounts– Perform secondary attacks – Gain root access to other application servers

Page 31: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 31

Application Vulnerabilities Countermeasures

• Open Web Application Security Project (OWASP)– Not-for-profit organization – Finds and fights Web application vulnerabilities – Publishes Ten Most Critical Web Application

Security Vulnerabilities• Built into Payment Card Industry (PCI) Data Security

Standard (DSS)

Page 32: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 32

Application Vulnerabilities Countermeasures (cont’d.)

• Top ten Web application vulnerabilities:– Cross-site scripting (XSS) flaws– Injection flaws and malicious file execution– Unsecured direct object reference– Cross-site request forgery (CSRF)– Information leakage and incorrect error handling– Broken authentication and session management– Unsecured cryptographic storage– Unsecured communication– Failure to restrict URL access

Page 33: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 33

Application Vulnerabilities Countermeasures (cont’d.)

• OWASP WebGoat project– Helps security testers learn how to conduct

vulnerability testing on Web applications

Figure 10-9 Starting WebGoat

Page 34: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 34

Figure 10-10 The WebGoat welcome page

Page 35: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 35

Figure 10-11 The WebGoat Hints menu

Page 36: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 36

Figure 10-13 WebGoat’s Challenge exercise

Page 37: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 37

Assessing Web Applications

• Security testers should look for answers to some important questions:– Does the Web application use dynamic Web pages?– Does the Web application connect to a back-end

database server?– Does the Web application require authentication of

the user?– On what platform was the Web application

developed?

Page 38: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 38

Does the Web Application Use Dynamic Web Pages?

• Static Web pages – Do not create a secure environment

• IIS attack example– Submitting a specially formatted URL to attacked

Web server– IIS does not correctly parse the URL information– Attacker could launch a Unicode exploit

http://www.nopatchiss.com/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+c

– Attacker can install a Trojan program

Page 39: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 39

Does the Web Application Connect to a Back-end Database Server?

• Security testers should check for possibility of SQL injection used to attack the system– SQL injection: attacker inserts SQL commands in Web

application field

• SQL injection example:SELECT * FROM customer

WHERE tblusername = ' OR "=" AND tblpassword = ' OR "="

Page 40: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Does the Web Application Connect to a Back-end Database Server? (cont’d.)

• Basic testing should look for:– Whether you can enter text with punctuation marks– Whether you can enter a single quotation mark

followed by any SQL keywords– Whether you can get any sort of database error

when attempting to inject SQL statements

Hands-On Ethical Hacking and Network Defense, Second Edition 40

Page 41: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 41

Does the Web Application Require Authentication of the User?

• Many Web applications require another server (other than the Web server) to authenticate users– Examine how information is passed between the two

servers• Encrypted channels

– Verify logon and password information are stored securely

• Separate authentication servers introduce a second target

Page 42: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 42

On What Platform Was the Web Application Developed?

• Several different platforms and technologies can be used to develop Web applications– Attacks differ depending on platform and technology

• Footprinting is used to discover the OS and DBMS

– The more you know about a system, the easier it is to gather information about vulnerabilities

Page 43: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 43

Tools of Web Attackers and Security Testers

• After vulnerabilities of a Web application or an OS platform are discovered– Security testers or attackers look for tools to test or

attack the system• All platforms and Web application components have

vulnerabilities

– No matter which platform is used, there is a security hole and a tool capable of breaking into it

Page 44: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 44

Web Tools

• Cgiscan.c: CGI scanning tool– Written in C in 1999 by

Bronc Buster– Tool for searching Web

sites for CGI scripts that can be exploited

Figure 10-14 Compiling and running Cgiscan

Page 45: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Web Tools (cont’d.)

• Wapiti: Web application vulnerability scanner – Uses a black box approach

• Doesn’t inspect code

– Inspects by searching from outside • Ways to take advantage of XSS, SQL, PHP, JSP, and

file-handling vulnerabilities

– Uses “fuzzing”• Trying to inject data into whatever will accept it

Hands-On Ethical Hacking and Network Defense, Second Edition 45

Page 46: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Web Tools (cont’d.)

• Wfetch: GUI tool that queries status of Web server– Attempts authentication using:

• Multiple HTTP methods

• Configuration of hostname and TCP port

• HTTP 1.0 and HTTP 1.1 support

• Anonymous, Basic, NTLM, Kerberos, Digest, and Negotiate authentication types

• Multiple connection types

• Proxy support and client-certificate support

• Capability to enter requests manually or read from file

• Onscreen and file-based logging

Hands-On Ethical Hacking and Network Defense, Second Edition 46

Page 47: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Hands-On Ethical Hacking and Network Defense, Second Edition 47

Figure 10-15 Using the Wfetch program

Page 48: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Summary

• Web applications – Can be developed on many platforms

• HTML pages can contain forms, ASP, CGI, and scripting languages

• Static pages – Many replaced by dynamic pages

• Dynamic Web pages are created using CGI, ASP, etc.

• Web forms – Allow developers to create Web pages with which

visitors can interact

Hands-On Ethical Hacking and Network Defense, Second Edition 48

Page 49: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Summary (cont’d.)

• Web applications – Use a variety of technologies to connect to

databases (e.g., ODBC, OLE DB, and ADO)

• You can install IIS – Test Web pages in Windows

• Web application vulnerabilities – Can have damaging consequences

• Conducting security tests on Web applications– Various considerations

Hands-On Ethical Hacking and Network Defense, Second Edition 49

Page 50: Hands-On Ethical Hacking and Network Defense Second Edition Chapter 10 Hacking Web Servers.

Summary (cont’d.)

• Web applications that connect to databases – Might be vulnerable to SQL injection exploits

• Many tools for testing Web application vulnerabilities are available – Wfetch – Wapiti– OWASP open-source software

Hands-On Ethical Hacking and Network Defense, Second Edition 50