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

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

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