0% found this document useful (0 votes)
122 views75 pages

CH 10 - Hacking Web Servers

The document discusses various technologies used to create dynamic web pages, including scripting languages like PHP, ASP, JavaScript, and connecting to databases. It describes common vulnerabilities in web applications like cross-site scripting and SQL injection. It provides examples of code in different languages and discusses how attackers can exploit vulnerabilities in web servers and web applications.

Uploaded by

coder
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
122 views75 pages

CH 10 - Hacking Web Servers

The document discusses various technologies used to create dynamic web pages, including scripting languages like PHP, ASP, JavaScript, and connecting to databases. It describes common vulnerabilities in web applications like cross-site scripting and SQL injection. It provides examples of code in different languages and discusses how attackers can exploit vulnerabilities in web servers and web applications.

Uploaded by

coder
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 75

Hands-On Ethical

Hacking and
Network Defense

3rd Edition

Chapter 10
Hacking Web Servers

Revised 11-8-17
Objectives
• Describe Web applications
• Explain Web application vulnerabilities
• Describe the tools used to attack Web
servers
Web Server
IIS or Apache

HTTPS
HTTP

Client’s Browser
Internet Explorer
or Firefox
Web Servers
• The three main Web servers are nginx and Apache
(Open source) & IIS (Microsoft)
■ Link Ch 10c (image from 11-8-17)
Understanding Web Applications
• It is nearly impossible to write a program
without bugs
• Some bugs create security vulnerabilities
• Web applications also have bugs
• Web applications have a larger user base than
standalone applications
• Bugs are a bigger problem for Web
applications
Web Application Components
• Static Web pages
• Created using HTML
• Dynamic Web pages
• Need special components
• <form> tags
• Common Gateway Interface (CGI) scripts
• Active Server Pages (ASP)
• PHP
• ColdFusion
• Scripting languages like JavaScript
• ODBC (Open Database connector)
Web Forms
• Use the <form> element or tag in an HTML
document
• Allows customer to submit information to the
Web server
• Web servers process information from a
Web form by using a Web application
• Easy way for attackers to intercept data
that users submit to a Web server
8
HTML Form

9
Web Server
CGI Scripts

HTTPS
HTTP

Client’s Browser
HTML Forms
JavaScript
Common Gateway Interface
(CGI)
• Handles moving data from a Web server
to a Web browser
• The majority of dynamic Web pages are
created with CGI and scripting languages
• Describes how a Web server passes data
to a Web browser
• Relies on Perl or another scripting language
to create dynamic Web pages
CGI Languages
• CGI programs can be written in different
programming and scripting languages
• C or C++
• Perl
• Unix shell scripting
• Visual Basic
• FORTRAN
Common Gateway Interface
(CGI) (continued)
• CGI example
■ Written in Perl
■ Hello.pl
■ Should be placed in the cgi-bin directory on the
Web server
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello Security Testers!";
14
15
Active Server Pages (ASP)
• Microsoft’s server-side script engine
• HTML pages are static—always the same
• ASP creates HTML pages as needed. They are
not static
• ASP uses scripting languages such as
JScript or VBScript
• Not all Web servers support ASP
• IIS supports ASP
• Apache doesn’t support ASP as well
Active Server Pages (ASP)
• You can’t see
the source of
an ASP page
from a browser
• This makes it
harder to hack
into, although not
impossible
• ASP examples at
links 

Ch 10d, e, f
Apache Web Server
• Apache is the most popular Web Server
program
• Advantages
• Stable and reliable
• Works on just about any *NIX and Windows
platform
• It is free and open source
• See links Ch 10g, 10h
Using Scripting Languages
• Dynamic Web pages can be developed
using scripting languages
• VBScript
• JavaScript
• PHP
PHP: Hypertext Processor (PHP)
• Enables Web developers to create dynamic Web
pages
• Similar to ASP
• Open-source server-side scripting language
• Can be embedded in an HTML Web page using PHP
tags <?php and ?>
• Users cannot see PHP code in their Web browser
• Used primarily on UNIX systems
• Also supported on Macintosh and Microsoft platforms
PHP Example
<html><head><title>Example</title></head>
<body>
<?php
echo 'Hello, World!';
?>
</body></html>
■ See links Ch 10k, 10l
• PHP has known vulnerabilities
• See links Ch 10m, 10n
• PHP is often used with MySQL Databases
ColdFusion
• Server-side scripting language used to
develop dynamic Web pages
• Created by the Allaire Corporation
• Purchased by Macromedia, now owned by
Adobe -- Expensive
• Uses its own proprietary tags written in
ColdFusion Markup Language (CFML)
• CFML Web applications can contain other
technologies, such as HTML or JavaScript
ColdFusion Example
<html><head><title>Ex</title></head>
<body>
<CFLOCATION URL="www.isecom.org/cf/
index.htm" ADDTOKEN="NO">
</body>
</html>
■ See links Ch 10o
ColdFusion Vulnerabilities

• See links Ch 10p, 10q


VBScript
• Visual Basic Script is a scripting language
developed by Microsoft
• You can insert VBScript commands into a
static HTML page to make it dynamic
• Provides the power of a full programming
language
• Executed by the client’s browser
VBScript Example
<html><body>
<script type="text/vbscript">
document.write("<h1>Hello!</h1>")
document.write("Date Activated: " &
date())
</script>
</body></html>

• See link Ch 10r – works in IE, but not in Firefox


• Firefox does not support VBScript (link Ch 10s)
VBScript vulnerabilities
■ See links Ch 10t, 10u
JavaScript
• Popular scripting language
• JavaScript also has the power of a
programming language
• Branching
• Looping
• Testing
JavaScript Example
<html><head>
<script type="text/javascript">
function chastise_user(){
alert("So, you like breaking rules?")
document.getElementByld("cmdButton").focus(
)}
</script></head>
<body><h3>Don't click the button!</h3>
<form>
<input type="button" value="Don't Click!"
name="cmdButton"
onClick="chastise_user()" />
</form></body></html>
■ See link Ch 10v – works in IE and Firefox
JavaScript Vulnerabilities

See link Ch 10w


Popularity of
Programming
Languages

See link Ch 10zs

31
1

32
ODBC or
Web Server OLE DB
Database
Apache or IIS Or ADO
SQL Server or
HTML Forms
Oracle or
CGI Scripts
MySQL
HTTP or HTTPS

Client’s Browser
Connecting to Databases
• Web pages can display information stored
on databases
• There are several technologies used to
connect databases with Web applications
• Technology depends on the OS used
• ODBC
• OLE DB
• ADO
• Theory is the same
Open Database Connectivity (ODBC)
• Standard database access method developed
by the SQL Access Group
• ODBC interface allows an application to
access
• Data stored in a database management system
(DBMS)
• Can use Oracle, SQL, or any DBMS that
understands and can issue ODBC commands
• Interoperability among back-end DBMS is a
key feature of the ODBC interface
Open Database Connectivity (ODBC)
(continued)
• ODBC defines
• Standardized representation of data types
• A library of ODBC functions
• Standard methods of connecting to and logging
on to a DBMS
OLE DB and ADO
• Object Linking and Embedding Database
(OLE DB) and
• ActiveX Data Objects (ADO)
• These two more modern, complex technologies
replace ODBC and make up"Microsoft’s
Universal Data Access“
• See link Ch 10x
Understanding Web Application
Vulnerabilities
• Many platforms and programming
languages can be used to design a Web
site
• Application security is as important as
network security
Attackers controlling a Web server can
■ Deface the Web site
■ Destroy or steal company’s data
■ Gain control of user accounts
■ Perform secondary attacks from the Web site
■ Gain root access to other applications or
servers
Open Web Application Security Project
(OWASP)
■ Open, not-for-profit organization dedicated to
finding and fighting vulnerabilities in Web
applications
■ Publishes the Ten Most Critical Web
Application Security Vulnerabilities
41
42
Java Serialization

■ Link Ch 10zt
43
Cross-Site Scripting (XSS)
● One client posts active content, with <script> tags or
other programming content
● When another client reads the messages, the scripts
are executed in his or her browser
● One user attacks another user, using the vulnerable
Web application as a weapon

49
● <script>alert("XSS vulnerability!")</script>
● <script>alert(document.cookie)</script>
● <script>window.location="http://www.ccsf.edu"</script>
50
XSS Scripting Effects
● Steal another user's authentication cookie
● Hijack session

● Harvest stored passwords from the target's browser


● Take over machine through browser vulnerability
● Redirect Webpage
● Many, many other evil things…

51
Assessing Web Applications
• Issues to consider
• Dynamic Web pages
• Connection to a backend database server
• User authentication
• What platform was used?
Does the Web Application Use
Dynamic Web Pages?
• Static Web pages do not create a secure
environment
• IIS attack example: Directory Traversal
• Adding ..\ to a URL refers to a directory above
the Web page directory
• Early versions of IIS filtered out \, but not
%c1%9c, which is a Unicode version of the
same character
• See link Ch 10 zh
Connection to a Backend Database
Server
• Security testers should check for the
possibility of SQL injection being used to
attack the system
• SQL injection involves the attacker
supplying SQL commands on a Web
application field
SQL Injection Example
HTML form collects name and pw
SQL then uses those fields:
SELECT * FROM customer
WHERE username = 'name' AND password = 'pw'
If a hacker enters a name of
' OR 1=1 --
The SQL becomes:
SELECT * FROM customer
WHERE username ='' OR 1=1 --' AND password =
'pw'
Which is always true, and returns all the records
51
Connection to a Backend Database
Server
• 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
User Authentication
• Many Web applications require another
server to authenticate users
• Examine how information is passed
between the two servers
• Encrypted channels
• Verify that logon and password information
is stored on secure places
• Authentication servers introduce a second
target
What Platform Was Used?
• Popular platforms include:
• IIS with ASP and SQL Server (Microsoft)
• Linux, Apache, MySQL, and PHP (LAMP)
• Footprinting is used to find out the platform
• The more you know about a system the easier
it is to gather information about its
vulnerabilities
SQLI on Pastebin
56
58
59
Tools of Web Attackers and Security
Testers
• Choose the right tools for the job
• Attackers look for tools that enable them to
attack the system
• They choose their tools based on the
vulnerabilities found on a target system or
application
Web Tools
• Firefox and Chrome Developer Tools
• View parameters and cookies
• Modify and resend requests
• BurpSuite
• Powerful proxy used for Web App
hacking
• Zed Attack Proxy
• Can do simple vulnerability scans
Nikto
• Free, specialized for web apps
Nessus
• Commercial, thorough and popular
• Open-source fork is OpenVAS

70
Nessus

71
Nessus

72
W3af (Free, in Kali)
Skipfish from Google (Free)
2

75

You might also like