WAPTT - Web Application Penetration Testing Tool

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

[Downloaded from www.aece.ro on Saturday, March 31, 2018 at 18:13:05 (UTC) by 178.171.108.125. Redistribution subject to AECE license or copyright.

Advances in Electrical and Computer Engineering Volume 14, Number 1, 2014

WAPTT - Web Application Penetration Testing


Tool
Zoran ĐURIĆ
Faculty of Electrical Engineering, University of Banjaluka, 78000 Banja Luka,
Bosnia and Herzegovina
zoran.djuric@etfbl.net

1
Abstract—Web applications vulnerabilities allow attackers automated tools.
to perform malicious actions that range from gaining Dynamic security analysis tools are automated tools that
unauthorized account access to obtaining sensitive data. The probe web applications for security vulnerabilities, without
number of reported web application vulnerabilities in last
access to source code of the applications. Although there are
decade is increasing dramatically. The most of vulnerabilities
result from improper input validation and sanitization. The limitations of these tools, in comparison with static security
most important of these vulnerabilities based on improper analysis tools, dynamic security analysis tools also have
input validation and sanitization are: SQL injection (SQLI), some advantages [4]. Dynamic security analysis is
Cross-Site Scripting (XSS) and Buffer Overflow (BOF). In independent of the application source code and platforms
order to address these vulnerabilities we designed and and provides a promising scalable method for web
developed the WAPTT (Web Application Penetration Testing
application security [4-6].
Tool) tool - web application penetration testing tool. Unlike
other web application penetration testing tools, this tool is It is important to mention that static and dynamic
modular, and can be easily extended by end-user. In order to approaches can be combined [7-10]. Still, the focus of our
improve efficiency of SQLI vulnerability detection, WAPTT research is a dynamic approach in the identification of web
uses an efficient algorithm for page similarity detection. The applications vulnerabilities, i.e. our primary goal was to
proposed tool showed promising results as compared to six develop a reliable web application penetration testing tool
well-known web application scanners in detecting various web
(black-box vulnerability scanner). Section III gives an
application vulnerabilities.
overview of some of the existing web application
Index Terms—databases, security, vulnerabilities, web sites, penetration testing tools and discusses their advantages and
web applications. disadvantages.
Section IV describes the approach that we used for black-
I. INTRODUCTION box testing of web applications, which is implemented in
The main reason for most of the web applications WAPTT (Web Application Penetration Testing Tool) tool.
vulnerabilities is the lack of, or failure of, proper client input This approach consists of the following five phases: web
validation and sanitization. These vulnerabilities can be crawling, application entry point’s detection and extraction,
classified as input manipulation, and the most important are: testing, analysis, and report generation.
SQL Injection (SQLI), Cross-Site Scripting (XSS), and The WAPTT implementation is described in detail in
Buffer Overflow (BOF) [1-3]. Web applications Section V. A very important property of this tool is that it is
vulnerabilities, like SQLI, XSS and BOF, are acknowledged modular, and can be easily extended by end-user. Also,
problems with thousands of them reported each year [4]. WAPTT uses an efficient algorithm for page similarity
These vulnerabilities allow attackers to perform different detection, needed for SQLI vulnerability detection.
malicious actions that range from obtaining sensitive data Evaluation of the web application scanner tools is always
(such as social security numbers, credit card numbers, etc.) challenging. Before concluding the paper, we compared
to gaining unauthorized account access. Section II gives a WAPTT against six well-known web application scanners.
detail explanation of these vulnerabilities. The evaluation process and obtained results are described in
There are different techniques for the identification of detail and presented in Section VI.
web applications vulnerabilities. The two most important are
[5]: II. WEB APPLICATIONS VULNERABILITIES
 static security analysis. This technique is based on In current web development practices, input validation
analyzing the source code of the application looking for and sanitization routines are very often placed by developers
potential security vulnerabilities. This approach is manually in an ad-hoc way [6]. This can be either
known as “whitebox” approach. incomplete or erroneous, and thus introduce vulnerabilities
 dynamic security analysis. This technique is based on into the web application. Missing input validation and
discovering security vulnerabilities in web application sanitization allows malicious input to flow into trusted web
by testing the application from the point of view of the contents. Similarly, faulty sanitization allows malicious user
attacker. This approach is known as “blackbox” input to bypass the validation procedure. A web application
approach. which fails to achieve the input validity property is
Both techniques can be performed manually or by using vulnerable to a class of attacks, which are referred to as
input validation attacks. These types of attacks embed

Digital Object Identifier 10.4316/AECE.2014.01015

93
1582-7445 © 2014 AECE
[Downloaded from www.aece.ro on Saturday, March 31, 2018 at 18:13:05 (UTC) by 178.171.108.125. Redistribution subject to AECE license or copyright.]

Advances in Electrical and Computer Engineering Volume 14, Number 1, 2014

malicious contents within HTTP (HyperText Transfer the original SQL statement through unvalidated
Protocol) requests, which are utilized by the web application (unsanitized) input. There are many variants of SQL. Most
and executed, currently or later. Examples of input dialects are based on the ANSI standard SQL-92 [12]. The
validation attacks include XSS, SQLI, BOF, etc. They are typical unit of execution in the SQL language is the query, a
distinguished by the locations where malicious contents get collection of statements that are aimed at retrieving data
executed. from the database or manipulating records in the database.
In this section, the three most popular input validation An SQL query typically results in a single result set that
attacks are described. contains the query results. Apart from data retrieval and data
manipulation, SQL statements can also modify the structure
A. XSS
of database using DDL (Data Definition Language)
XSS vulnerability occurs when a web application accepts statements [12].
client-supplied input that contains JavaScript code, and There are different types of SQLI attacks. SQLI includes,
includes that invalidated input in a resulting HTML (Hyper but is not limited, to attacks based on tautologies, injected
Text Markup Language) page sent to the client. This way additional statements, exploiting untyped parameters, stored
potentially malicious JavaScript code can be executed inside procedures, overly descriptive error messages, alternate
client’s web browser. encodings, length limits, second-order injections and
XSS is one of the most common security vulnerabilities in injection of “UNION SELECT”, “ORDER BY” and
web applications today [11]. On the other hand, this should “HAVING” clauses. A detailed explanation of different
not be the case as XSS is relatively easy to find and forms of SQLI attacks and ways in which they can be
relatively easy to fix. XSS vulnerabilities can have various exploited are given in Section IV. Similar explanations are
consequences such as sensitive data tampering or theft, also available in the public domain [13, 14].
account hijacking, web worms spread and remote It is very important to notice that SQLI vulnerabilities can
controlling of client’s web browser. also be divided into two sub-classes: first-order and second-
There are two main types of XSS: reflected (also known order, for the same reason as dividing the XSS classification
as first-order, or Type 1 XSS) and persistent XSS (also [4]. It is important to notice that second-order attacks are
known as stored, second-order, or Type 2 XSS). very hard to detect.
Reflected XSS (first-order XSS). A reflected XSS
vulnerability results from the web application inserting C. Buffer Overflow
client-supplied input, or part of that input, in the HTML A buffer overflow occurs when an application tries to
page that it renders. This way malicious JavaScript code is store more data in a buffer than it was intended to hold. As
executed inside web browser of the client which initiated buffers are created to contain a finite amount of data, the
XSS attack. Because of the nature this XSS type, an attacker extra information - which can’t be put in a buffer - can
must use other communication channels to distribute this overflow into adjacent buffers, corrupting or overwriting the
attack to the legitimate clients of particular web application. valid data held in them.
For example, the attacker can use phishing email to Many types of buffer overflow exist. For example, a
convince a victim to click on a disguised URL that contains parameter overflow means that the attacker is able to supply
malicious JavaScript code. In order to prevent reflected XSS data as a parameter to the execution of an application. When
attacks, applications need to reject input values that may the application expands the supplied data, if the size of the
contain JavaScript code. parameter is not correctly checked, it may exceed a set limit
Persistent XSS (second-order XSS). A persistent XSS allowing the attacker to overflow the buffer and write data
vulnerability results from the application storing the into memory.
attacker’s input (or part of that input) in a database, and then Buffer overflow can have various consequences such as
later retrieving it from the database and inserting it in an DoS (Denial of Service), information disclosure, loss of
HTML page that is displayed to multiple victims. It is harder integrity, and complete admin access.
to prevent persistent XSS than reflected XSS, because
applications need to reject or sanitize input values that may III. EXISTING WEB APPLICATION PENETRATION TESTING
contain JavaScript code, as well as to use different TOOLS
techniques to reject or sanitize input values that may contain Most academic research on tools for detection of web
SQL code and are used in database commands. applications vulnerabilities has been static source code
Persistent XSS is much more damaging than reflected analysis, with a focus on detecting XSS and SQLI via
XSS. This is mainly because the phishing technique or other modeling checking analysis, information flow, or via their
social engineering techniques are not required (the attacker combination [4]. Work by Wassermann [15], Lam [16],
can directly supply the malicious input without tricking Kiezun [2], Jovanovic [17], and Huang [18] all fall into this
users into clicking on a URL that contains malicious category.
JavaScript code), and because a single malicious JavaScript Unlike static source code analysis, dynamic security
code inserted once into a database can be executed in analysis does not require the application’s source code.
browsers of many victims. Dynamic security analysis tools (Web vulnerability
B. SQL Injection scanners, black-box scanners) crawl and scan for web
application vulnerabilities, usually by using software agents.
SQLI occurs when an attacker attempts to change the
These tools perform attacks against web application under
semantics of a legitimate SQL statement by inserting new
testing. The responses are later analyzed in order to detect
SQL keywords, operators and statements (or their parts) into

94
[Downloaded from www.aece.ro on Saturday, March 31, 2018 at 18:13:05 (UTC) by 178.171.108.125. Redistribution subject to AECE license or copyright.]

Advances in Electrical and Computer Engineering Volume 14, Number 1, 2014

any existing vulnerabilities. This type of testing is also hundreds or thousands of attacking exploits. Examples of
known as penetration testing. these scanners are AppScan, ZAP Proxy (OWASP Zed
Currently, there is a wide range of tools that can be used Attack Proxy Project) and Paros Proxy. AppScan also uses
to detect vulnerabilities in web applications. Besides white- Google Hacking Database.
box and black-box tools, there are also a hybrid tools which All of these tools try to identify all points in a web
combine static source code analysis and dynamic security application that can be used to inject malicious code. They
analysis techniques. Hybrid tools, as well as white-box tools build attacks that target these points and monitor how the
are out of the scope of this paper. Although it is difficult to application responses to the generated attacks.
generate precise attack input that can reveal input Assessment of results collected during SQL injection test
manipulation vulnerabilities, without exact knowledge about is not so simple task. Still, some tools use very naive
the internal structure of the application, this is one of the techniques for test-result assessment. For example, AppScan
main tasks that black-box tools should do. is capturing error messages such as “OleDbException” to
Kals et. al. [19] implemented dynamic security analysis determine whether an SQL error happens, while Paros Proxy
tool SecuBat for SQLI and XSS detection, while McAllister searches for “SQL”, ”ODBC”, “JDBC” and similar strings
et. al. [21] implemented tool utilizing user interactions to [25]. Such an approach can cause high number of false
generate more effective test cases targeting reflected and alarms. Paros Proxy reported 48 high-risk alerts for
stored XSS. Maggi et. al. discussed techniques to reduce MvnForum, but all of them were false alarms because
false positives in automated intrusion detection, which is MvnForum uses search engine optimization technologies
applicable to black-box scanning [22]. such as adding popular keywords (including “JDBC” and
Besides tools described in research papers, there are also “MySQL”) in meta tags of every page [4].
commercial and open-source tools. Some of the most
popular commercial vulnerability scanners are Acunetix IV. OUR APPROACH
Web Vulnerability Scanner, HP Webinspect and IBM Based on advantages and disadvantages of existing web
Rational AppScan . All three can detect SQLI, XSS and application scanners, the objectives for WAPTT tool are
BOF vulnerabilities, as well as other vulnerabilities. created. The most important objective for WAPTT tool is
Also, there is a wide range of open-source scanners such efficient web applications vulnerabilities detection,
as vega, w3af, wapiti, Nikto and BurpSuite. Vega can detect especially those vulnerabilities resulting from improper
SQLI, XSS, inadvertently disclosed sensitive information, input validation and sanitization. Besides that, WAPTT tool
and other vulnerabilities. It is GUI-based (Graphical User should be modular, and easily extensible by end users. There
Interface) tool written in Java, and runs on Linux, OS X, and is no modular vulnerability scanner known to the author that
Windows. Vega can be extended using its JavaScript API. can be easily extended by end user.
W3af (Web Application Attack and Audit Framework) is a
free open source web application scanner designed and
implemented for finding and exploiting web application Web Application entry
points detection and Testing
vulnerabilities. Wapiti is also web application scanner crawling
extraction
designed and implemented to audit the security of web
applications. It does not provide a GUI for the moment and YES
must be used from a terminal. Both w3af and wapiti are
written in Python. These tools don’t rely on a vulnerability Report Authentication Analysis
database like Nikto do. Nikto performs comprehensive tests generation bypassed?
NO
against web servers for multiple items. It will test a
web/application server in the quickest time possible, as it is Figure 1. Our dynamic security analysis approach.
not designed as an overly stealthy tool.
Existing Web application scanners are usually based on Our dynamic security analysis approach is based on
pre-defined rules to detect potential security vulnerability in simulation of attacks against web applications, and is
the tested web application. Most of today’s Web application performed as black-box testing approach. Thus the scope of
scanners focus on security-vulnerability detection using analysis is limited to HTTP responses received from the
known defects recorded in vulnerability databases, such as server side. Similarly, as per the reported designs commonly
OSVDB (Open Source Vulnerability Database). For found in other systems [19], our dynamic security analysis
example, OSVDB is used by Wikto and Nikto2, two open- approach comprises the following phases (Figure 1): web
source Web application scanners. These scanners use crawling, application entry points detection and extraction,
OSVDB to scan for possible existence of directories and testing, analysis, and report generation.
files that malicious users usually try to find and treat as an
entry point (for example /admin directory) [4]. Similarly, A. Phase 1 – Web crawling
some scanners like Accunetix and Wikto use Google Identification of all pages being part of the tested web
Hacking Database to search for signatures of online application is crucial for dynamic security analysis, as
websites. attacks could be launched only against recognized
Besides these database-based detections, some of the application entry points [23]. This is why we try to explore
most popular scanners provide rule-based SQL and XSS all the available web pages by visiting all the links. This task
injection detection capabilities, i.e. they have a huge can be done automated (using web crawlers), manually or
attacking vectors base, through which they can construct semi-automated.

95
[Downloaded from www.aece.ro on Saturday, March 31, 2018 at 18:13:05 (UTC) by 178.171.108.125. Redistribution subject to AECE license or copyright.]

Advances in Electrical and Computer Engineering Volume 14, Number 1, 2014

Web crawler can be configured to use valid user Regarding anchors/links with parameters, we parse every
credentials (e.g. valid username and password). This allows anchor/link end extract all parameters and their values.
the web crawler to go beyond the login web page and
C. Phase 3 – Testing
explore all web application pages. Similarly, if login form
can be successfully bypassed, the web crawler will also In Phase 3 we simulate attacks against tested web
explore all web application pages (Figure 1). Web crawler application. For every application entry point we generate
can be configured in such a way to recognize and avoid one set of valid parameter values. WAPTT uses these valid
visiting links that will logoff the crawler or destroy the values to generate HTTP request. The result of this request
current session. This feature is implemented in a generic is reference HTML page. Additionally, for every application
way using regular expression to create the set of links to be entry point we generate many sets of malicious or incorrect
ignored. parameter values. More precisely, we create parameter
In many cases, automated web crawling of the web values which violate predefined constraints of parameters.
application will not be complete. The reason for this is that Also, we use predefined attack patters as parameter values.
automated web crawler does not reach all the application Malicious or incorrect parameter values are used by
HTML pages because modern web applications use partial WAPTT to generate additional HTTP requests. The results
page refresh, asynchronous requests and can have various of these requests are additional HTML pages, which are,
authentication and authorization mechanisms. As an along with the reference HTML page, used in Phase 4.
addition to the automated web crawling, we perform the The way the malicious or incorrect parameter values are
manual navigation to explore all possible scenarios. All generated (for one application entry point) is different for
HTML pages identified in this phase will serve as an input every type of vulnerability we are checking for.
into Phase 2. Consequently, the sets of malicious or incorrect parameter
values are different for every type of vulnerability WAPTT
B. Phase 2 – Application entry point’s detection and checks for. Now, we will describe the way these values are
extraction created for every type of vulnerability.
The parts of the web pages visited in Phase 1 which are of
interest for our approach are application entry points. 1) SQLI attack parameter values
Generally, the main disadvantage [24] of automated There are some study works on SQLI vulnerability
penetration testing tools is poor coverage of application detection and many tools have been developed and used, for
entry points. This is why, in Phase 2, we try to extract all example, WebInspect [8], Pangolin, WVS [10], WebScarab
application entry points from pages visited in Phase 1. [13], AppScan [14] nad Nikto. All these tools take the
Application entry points are mainly forms with their approach of SQLI vulnerability detection similar to the tool
elements (and constrains) which are filled by end users. we implemented.
Also, we collect all anchors/links with parameters, i.e. GET Based on type of a parameter value detected in Phase 2,
parameters. we create different attack patterns. Generally, for text type
To extract all application entry points and collect the list parameters, we use attack patterns that require a single
of them, along with their constraints, all web pages visited quotation mark. A small subset of these attack patters is
in Phase 1 should be parsed and analyzed. Each web page is given in Figure 2.
analyzed in order to detect and extract all the forms and admin' --
anchors/links with parameters. The forms are parsed to ' or 1=1--
') or '1'='1--
discover their elements. Every form element may contain ' UNION SELECT 1, 'admin', 'xz', 1—
some predefined constraint(s). The most important
Figure 2. A small subset of SQL attack patterns with a single quotation
constraints for our approach are constraints of: mark.
 <form> element: method (specifies how to send form-
data – using HTTP GET or HTTP POST method) and Similarly, for integer type parameters, we use attack
action (specifies where to send form-data), and patterns that doesn’t require a single quotation mark. A
 <input> element: disabled (specifies that an <input> small subset of these attack patters is given in Figure 3.
element should be disabled), max (specifies the
1 OR 1=1--
maximum value for an <input> element), maxlength 1; drop table test --
(specifies the maximum number of characters allowed), 1; drop table test; create table test (name
min (specifies the minimum value for an <input> varchar(10)) --
1; delete from test;--
element), multiple (specifies that a user can enter more
Figure 3. A small subset of SQL attack patterns without a single quotation
than one value), pattern (specifies a regular expression
mark.
that an <input> element's value is checked against),
readonly (specifies that an input field is read-only), There are numerous variations of each SQLI attack type.
required (specifies that an input field must be filled out This is why we present only a few most important supported
before submitting the form), value (specifies the value by WAPTT.
of an <input> element). Tautologies. The most common usages of tautology-
Although not all of this constraints are supported in all based attacks are authentication bypassing and data
today’s web browsers, we use all of them as an important extraction, although it can be used for identifying injectable
information for generation of HTTP requests sent to the web parameters also. WAPTT tries to exploit an injectable field
application during testing phase (Phase 3). that is used in a SQL query WHERE clause. For example,

96
[Downloaded from www.aece.ro on Saturday, March 31, 2018 at 18:13:05 (UTC) by 178.171.108.125. Redistribution subject to AECE license or copyright.]

Advances in Electrical and Computer Engineering Volume 14, Number 1, 2014

for bypassing login form WAPTT uses “‘ or 1=1 --“ attack one query, if there is a support for execution of multiple
pattern and it’s variants (taken from WAPTT attack queries in one statement.
pattern’s database). This way an SQL statement related to Inference attack. This type of attack can be used for data
user login process can become as follows: extraction, identification of injectable parameters and
SELECT * FROM users WHERE username=’’ or 1=1 database schema determination. Typical attack techniques
-- AND password=’’ that are based on inference are: blind injection and timing
Because “--” is the SQL comment operator and because attack. When performing inference attack, WAPTT injects
“1=1” always evaluates to true, inserted attack pattern different commands into the application and then “observes”
transforms the entire WHERE clause into a tautology and application responses. By detecting when the application
the complete query evaluates to true. behaves the same and when its behavior changes, WAPTT
Illegal/Logically Incorrect Queries. This type of attack can “conclude” whether certain parameters are vulnerable,
can be used for injectable parameters identification, as well as additional information about the values in the
database finger-printing and data extraction. WAPTT tries database. In a case of blind SQLI, when statement injected
to modify original statements in such a way that the by WAPTT evaluates to true, the application continues to
resulting statements will be logically incorrect. These function normally, but when statement injected by WAPTT
statements will be rejected, and error messages will be evaluates to false, the returning page differs significantly
returned from the database. Sometimes these error messages from the normally-functioning page.
include useful debugging information, like database name, For example, to detect injectable parameter using blind
table and field names. WAPTT inserts rubbish input or SQL SQLI WAPTT uses following partial statements:
tokens in the original statement in order to produce syntax “<known_legal_value(s)_of_parameter(s)> ’ and/or 1=0 --“
errors, type mismatches, or logical errors. For example, in and “<known_legal_value(s)_of_parameter(s)> ’ and/or 1=1
order to make a type mismatch error WAPTT can add single --“. This way, based on the original SQL statement, we can
quotation mark onto valid integer. This way a corresponding get two SQL statements as follows:
SQL statement can become as follows:
SELECT * FROM users WHERE user_id = 145’; SELECT first_name, second_name, address FROM
The error message produced by this query can contain users WHERE username=’ <known_legal_value_of
very useful information including a whole incorrect SQL _parameter>’ and 1=0 --AND password=’’
statement, database server type and version, etc. SELECT first_name, second_name, address FROM
Union queries. This type of attack can be used for users WHERE username=’ <known_legal_value_of
authentication bypassing and data extraction. By inserting a _parameter>’ and 1=1 --AND password=’’
statement of the form UNION SELECT
<the_rest_of_inserted_query>, WAPTT tries to cheat the Suppose we have a secure application and that the input
application into returning data from a table different from value for username is validated correctly. Then, both
the one that was intended by the application developer. statements will return the same result meaning that
More precisely, the result of this attack is the union of the username parameter is not vulnerable. On the other hand, if
results of the original SQL query and the results of the we have an unsecure application (that doesn’t validate
inserted SQL query. For example, for data extraction from correctly the input value for username) these two statements
known database table WAPTT uses “ ’ UNION SELECT will return different results meaning that username
<known_field_name> FROM <known_table_name>” attack parameter is vulnerable to injection.
pattern and it’s variants (there can be more than one known Detection of second-order SQLI. As it is already
field name). This way a corresponding SQL statement can mentioned, second-order SQLI attacks are very hard to
become as follows: detect. Some tools, even in cases when they successfully
SELECT first_name, second_name FROM users perform second-order SQLI, can’t detect it. WAPTT does
WHERE username=’’ UNION SELECT second pass off all pages in order to find injected strings in
credit_card_number, expiration_date FROM resulting HTML code. It is also very important to notice that
credit_card -- AND password=’’ in some situations, where successfully executed SQLI attack
In this example, inserted attack pattern changes the changes values of database fields which are not shown in
semantics of the original statement. As a consequence, the any application HTML page, there is no way to detect this
database would take the results of both queries, union them, successful execution.
and then return them to the application.
PiggyBacked Queries. This type of attack can be used 2) XSS attack parameter values
for data extraction, data addition or modification, denial of Based on previous researches and projects [11], we
service and remote commands execution. During execution created a long list of XSS attack patterns. A small subset of
of this attack, WAPTT tries to inject additional query these attack patters is given in Figure 4. WAPTT database
besides the original query. As the result of this attack, the contains over 100 XSS attack patterns. In this phase
database receives multiple SQL queries. For example, for (Testing phase), valid values are replaced by malicious
dropping of a known database table WAPTT uses “'; DROP values taken from WAPTT database. Usage of this set of
TABLE <known_table_name>--” attack pattern. This way a values may result in an attack if supplied to a vulnerable
corresponding SQL statement can become as follows: input parameter.
SELECT * FROM users WHERE username=’’; DROP It is very important to mention that SQLI and XSS attack
TABLE users -- AND password=’’ patters can be added to the WAPTT database, according to
In this example, two SQL statements will be executed in WAPTT user needs. This is how WAPTT attack database is

97
[Downloaded from www.aece.ro on Saturday, March 31, 2018 at 18:13:05 (UTC) by 178.171.108.125. Redistribution subject to AECE license or copyright.]

Advances in Electrical and Computer Engineering Volume 14, Number 1, 2014

easily extensible and why WAPTT can execute different result analysis is to determine whether two HTML pages
SQLI and XSS attacks. look structurally similar. Two HTML pages are structurally
1. "><SCRIPT>alert(String.fromCharCode(88,83,83)) similar if they have similar layout when observed in a
</SCRIPT>
2. ></SCRIPT>">'><SCRIPT>alert(String.fromCharCode
browser [25]. To address this challenge, we extract HTML
(88,83,83))</SCRIPT> tag sequences from two pages and compare the similarity of
3. '';!--"<XSS>=&{()}
4. <SCRIPT SRC=http://s-cube.etfbl.net/xss.js>
these HTML tag sequences. We opted to use this approach
</SCRIPT> as the structure of an HTML page greatly depends on the
Figure 4. A small subset of XSS attack patterns. HTML tag sequence. Also, two HTML pages may be
structurally similar, but have different values in some tags.
3) Buffer overflow attack parameter values They can also contain additional tags that are invisible when
Similarly as for SQLI and XSS attacks, WAPTT we open the pages in a browser. For example, generated
generates parameter values needed to perform BOF attack. account information page is different for every account, but
This process is very simple. For every parameter in every all pages for account information’s are still structurally
application entry point, WAPTT will generate very long similar to each other.
random string (e.g., 10 000 random characters or more). The
size of this string can be configured by WAPTT user.

Evading detection technique


In order to avoid detection by defensive coding practices,
as well as many automated prevention techniques, WAPTT
can modify the injected text, by using three alternate
encoding methods: ASCII, hexadecimal and Unicode.
WAPTT uses alternate encodings when launching attacks
that were unsuccessful in the first pass. More precisely, for
every unsuccessful attack, WAPTT will launch three new
attacks, where the injected text is modified using three
different encoding methods.

D. Phase 4 - Analysis
In Phase 4 we analyze every HTTP response received
Figure 5. Detection of SQL Injection.
from the web application. Every HTTP response is scanned
for indications of vulnerability. The way we analyze HTTP
responses is different for every type of vulnerability Based on such observations we modified our SCSDS [26]
WAPTT checks for. tool to assess the similarity of HTML pages. We named the
Detection of SQL Injection. As it is already mentioned, tool HSDT - HTML Similarity Detection Tool.
in Phase 3 we simulate attacks against tested web A previous study [27] determined the similarity between
application, and as a result we get one reference HTML two text files by computing the longest common
page and additional HTML pages. Every additional HTML subsequence (LCS algorithm), using dynamic programming.
page is analyzed and compared with the reference page. This algorithm has been widely used in diff, YAP and YAP
If web application returns a 500 error status code for set 2 programs since it was introduced in 1978 [25]. A modified
of malicious or incorrect parameter values, then we classify version of this algorithm is used in PIUIVT [25] - Longest
the application as potentially vulnerable to attack in Common Tag Subsequence (LCTS). LCTS operates on
question. Also, the resulting page is additionally analyzed in HTML tag sequences, instead of pure HTML code.
order to find valuable information in error message (as Based on our findings in [26] we decided to use a much
described in section “Illegal/Logically Incorrect Queries”). more reliable algorithm for similarity detection – RKR-GST
If web application does not return error status code, then (Running Karp-Rabin Greedy String Tiling) [28, 29, 30], as
we compare resulting page with the reference page. A web well as Winnowing algorithm. As it can be seen in the
application is not vulnerable if the returned page of an Kleiman and Kowaltowski paper [28, 29], there are few
invalid input is structurally similar to the reference page. If situations in which the Winnowing algorithm gives better
the returned page of an invalid input is structurally similar to results than the RKR-GST algorithm. In order to get good
the reference page, we classify the application as potentially enough results in every situation we decided to use both
vulnerable to attack in question (Figure 5). algorithms for similarity detection.
This applies to all SQLI types, except for special variant Similarly to PIUIVT, HSDT treats HTML pages as
of tautologies, i.e. for SQLI authentication bypass variant of sequences of HTML tags. Tags are represented as a series of
tautology attack, when user logon credentials are known by tokens. Our similarity detection approach comprises the
WAPTT in advance. In this case structural similarity following 5 phases: pre-processing, tokenization, exclusion,
between the reference page (obtained by using valid logon similarity measurement, and final similarity calculation.
credentials) and returned page of a malicious input means In the first phase, HSDT removes pure text nodes and
that the attack was successful. context-related tag attributes, such as href, src, alt, and title.
As it can be seen, a challenging task during the process of In the second phase, conversion of the HTML code into
tokens is done. Every HTML tag is replaced by its

98
[Downloaded from www.aece.ro on Saturday, March 31, 2018 at 18:13:05 (UTC) by 178.171.108.125. Redistribution subject to AECE license or copyright.]

Advances in Electrical and Computer Engineering Volume 14, Number 1, 2014

corresponding token. For example, body and table tags are reported as XSS vulnerability.
replaced with <BODY> and <TABLE> tokens, respectively. Still, there is a complication in detection of XSS
In the exclusion phase a HTML template code (which can vulnerability in a case when attack appears on different page
generate many false positives) can be identified and - in a case of stored XSS. This makes it difficult to identify
excluded. HSDT creates a tokenized version of template the corresponding application entry point through which the
code, in the same way as it creates a tokenized version of the XSS attack pattern was injected. To address this issue, we
HTML code in the tokenization phase. In the exclusion set the src attribute value of <SCRIPT> tag to unique,
phase, all findings of the tokenized version of template code specifically encoded value. The value of src attribute is of
or its parts are removed from the input token sequence. For the following form “ID.js”, where ID is the unique number
this purpose, HSDT uses the RKR-GST algorithm. It is of HTTP requests WAPTT sent. This number uniquely
important to mention that one of the advantages of the RKR- identifies application entry point and XSS attack pattern. If
GST algorithm is that token subsequences can be found this <SCRIPT> tag appears on any output page during
independent of their position in the token sequence. This penetration testing (i.e., during second pass off all pages),
phase is optional, but it can be used to ignore the template WAPTT detects his presence and uses ID value to correlate
code during the similarity detection phase, and reduce the the successful attack with the corresponding application
similarity between non-similar pages. entry point and XSS attack pattern.
In the similarity measurement phase HSDT computes the Detection of Buffer Overflow. Detection of Buffer
similarity for two HTML pages under comparison, using Overflow vulnerability is the simplest of all vulnerabilities
RKR-GST and Winnowing algorithms. In HSDT the RKR- WAPTT checks for. When the HTTP response code
GST similarity measure of HTML token sequences a and b returned from the web/application server is 500 (Internal
is calculated by using the following formula (formula 1): Server Error), or when there is no response from the server,
2*coverage then this is reported as a potential Buffer Overflow
sim(a, b)  (1) vulnerability.
length(a)  length(b)
where coverage is the length of all matches, and length is E. Phase 5 - Report generation
the number of HTML tokens in the token sequence. Similar In Phase 5 we generate a report about found security
to RKR-GST, the Winnowing similarity measure of vulnerabilities in tested web application. WAPTT can
fingerprint sets a and b is calculated using the following generate reports in different formats.
formula:
2* setSize(c) V. IMPLEMENTATION
sim(a, b)  (2)
setSize(a)  setSize(b) The proposed approach is implemented as a prototype
where setSize is the size of a set, and set c is intersection tool, WAPTT. The WAPTT tool is written in Java and
of sets a and b. performs automated penetration testing for discovering
The final similarity calculation is based on similarity SQLI, XSS and BufferOverflow vulnerabilities. The high-
measure values obtained from the similarity detection level architecture of WAPTT is shown in Figure 6.
algorithms, and their weight factors. The overall similarity The web crawler module is responsible for the Web
measure between two HTML code files a and b is calculated crawling phase of the penetration testing process. This can
using the following formula (formula 3): be done automated, manually (operator’s activity is recorded
by a proxy) or semi-automated (web crawler asks for
wR * simR  wW * simW operator’s assistance). During automated web crawling
sim(a, b)  (3) process only pages that are in the base URL, or that are on a
2 list of domains specified in advance, are visited. This way,
where simR and simW are similarity measure values leaving of tested web application and crawling of other
obtained from RKR-GST and Winnowing similarity websites is avoided. The web crawler runs until all the
detection algorithms, and wR and wW are weight factors of accessible web pages on target domain (domains) are
those algorithms. parsed. Because automated web crawling of the web is
If the overall similarity measure value is larger than the usually incomplete, as an addition to this process, we can
threshold value specified by the user, then the corresponding perform the manual navigation to explore all possible
pair of HTML code files is marked as similar. Different web scenarios. During the manual navigation, Web crawler
applications have different web page styles and the works in proxy mode. While in proxy mode, Web crawler
threshold may need to adjust. Also, weight factors of RKR- intercepts the web pages that are sent from the client. These
GST and Winnowing algorithms can be adjusted. pages, as well as those already identified during automated
Detection of XSS. Detection of XSS vulnerability is more web crawling will serve as an input for EAP detector and
straightforward than that for SQLI vulnerability. The reason extractor.
for this is that XSS attacks produce an observable side effect EAP detector and extractor module detects all application
in the generated HTML, namely the injected XSS attack entry points - forms with their elements (and constrains)
patterns. The resulting HTML output pages are checked for which are filled by end users and anchors/links with
presence of XSS attack patterns. When the malicious XSS parameters, in a manner as described in the Section IV,
attack pattern is present in the output page, the WAPTT has subsection B. The output of this module is forwarded to the
found a case in which the application does not properly attack generator module.
validate input before sending it back to clients. This is Attack generator module consists of several submodules -

99
[Downloaded from www.aece.ro on Saturday, March 31, 2018 at 18:13:05 (UTC) by 178.171.108.125. Redistribution subject to AECE license or copyright.]

Advances in Electrical and Computer Engineering Volume 14, Number 1, 2014

one submodule for every vulnerability WAPTT checks for. [34]. Also, these web applications are often used for
Currently, there are three submodules: SQLI, XSS and BOF, demonstration of capabilities of web application scanners.
as it is shown in Figure 6. These submodules simulate Some of the vendors are aware of this and have pre-
attacks against tested web application in a manner as programmed their tools to report the vulnerabilities of these
described in the Section IV, subsection C. The output of applications [35]. The scanner may discover vulnerabilities
these submodules is forwarded to the analyzer module. on these applications but this has no predictive value for
how it will perform for other applications [35].
These are the reasons why we didn’t use these
applications, i.e. why we decided to use three vulnerable
web applications developed by 6 experienced master
students and 2 teaching assistants. Two applications were
developed using Java technologies: JSP (Java Server Pages)
and JSF (Java Server Faces). Both applications run on
Apache Tomcat 7.0.27. JSP application uses MS SQL
Server 2008 as a database server, while JSF application uses
MySQL 5.5.25. Third application was developed using PHP.
This application runs on Apache 2.2.3 and uses MySQL
5.0.77 as the backend data source. JSP application is
vulnerable on 4 SQLI attacks (3 first-order SQLI and 1
second-order SQLI), 1 second-order XSS and 1 BOF attack.
JSF application is vulnerable on 4 SQLI attacks (1 first-
order SQLI, 1 second-order SQLI and 2 blind SQLI attacks)
Figure 6. The high-level architecture of WAPTT.
and 2 XSS attacks (1 first-order XSS and 1 second-order
XSS), while PHP application is vulnerable on 3 SQLI
Analyzer module also consists of submodules - one
attacks (1 first-order SQLI, 1 second-order SQLI and 1 blind
submodule for every vulnerability WAPTT checks for.
SQLI attack) and 1 first-order XSS attack.
Also, currently there are three submodules: SQLI, XSS and
We tested each of these applications with six existing web
BOF analyzer submodules (Figure 6). These submodules
vulnerability scanners, as well as with our own tool -
analyze every HTTP response received from the web
WAPTT. The scanners that we used were w3af, Nikto,
application (i.e., from the web/application server) for
wapiti, vega, ZAP and Acunetix (Acunetix was the only
indications of vulnerability, in a manner as described in the
commercial tool available to us at the time of writing this
Section IV, subsection D.
paper). All of them are listed in the list of the most popular
The storage and reporter module is responsible for storing
Web-vulnerability scanners (http://sectools.org/tag/web-
the results generated by each of the analyzer submodules, as
scanners/). Each scanner is capable of crawling web pages
well as for report generation. Currently, this module
inside application, as well as filling out discovered HTML
supports two storing destinations: XML files and database
forms. All scanners can check for SQLI and XSS, but wapiti
tables. Still, WAPTT can generate reports in different
and Vega can’t detect BOF.
formats such as XML, HTML or PDF for reading or
All three applications have vulnerable login forms. A
publishing in different environments.
valid username/password combination or login sequence
It is important to notice that every attack generator
was not given to any of the seven scanners. The results of
submodule has corresponding analyzer submodule. In order
running the scanners against our three vulnerable
to extend WAPTT to check for some new vulnerability, a
applications are given in Table I.
new attack generator and analyzer submodules should be
written. TABLE I. THE RESULTS OF RUNNING THE SCANNERS AGAINST THREE
Also, it is important to mention that WAPTT tool meets VULNERABLE APPLICATIONS
almost all WASC (Web Application Security Consortium) tool \ FO SO BL FO SO
BOF
evaluation criteria for web application scanners. These vuln. XSS XSS SQLI SQLI SQLI
criteria published by WASC are organized in 8 categories w3af 0/1/0 0/0/0 0/0/0 2/1/1 0/0/0 0/0/0
[31]: protocol support, authentication, session management, Nikto 0/0/0 0/0/0 0/0/0 0/0/0 0/0/0 0/0/0
crawling, parsing, testing, command and control, and wapiti 0/1/1 1/0/0 0/2/1 0/0/0 0/0/0 0/0/0
reporting. As this tool is not designed for parsing the vega 0/0/0 0/0/0 0/0/0 0/1/0 0/0/0 0/0/0
following content types: VBScript, ActiveX objects, Java ZAP 0/0/0 0/0/0 0/0/0 0/0/0 0/0/0 0/0/0
applets, Flash and CSS (Cascading style sheets), it is Acuneti
0/1/1 0/0/0 0/1/1 2/1/1 0/0/0 0/0/0
obvious why it doesn’t meet all evaluation criteria from the x
parsing category of WASC evaluation criteria [31]. WAPT
0/1/1 1/0/0 0/2/1 2/1/1 1/0/0 1/0/0
T
VI. ANALYSIS VULN
0/1/1 1/1/0 0/2/1 3/1/1 1/1/1 1/0/0
S
There are a number of web applications designed to teach
application developers, programmers, architects and security The three values in a table cell (separated by “/”)
professionals about security concepts and secure software, represent numbers of discovered vulnerabilities against JSP,
such as WebGoat [32], Hacme Bank [33] and AltoroMutual
JSF and PHP applications, respectively. These values are

100
[Downloaded from www.aece.ro on Saturday, March 31, 2018 at 18:13:05 (UTC) by 178.171.108.125. Redistribution subject to AECE license or copyright.]

Advances in Electrical and Computer Engineering Volume 14, Number 1, 2014

given for first-order XSS (denoted as FO XSS), second- This paper describes penetration test tool designed for
order XSS (denoted as SO XSS), blind SQLI (denoted as BL dynamic security analysis of web applications called
SQLI), first-order SQLI (denoted as FO SQLI), second- WAPTT. This tool is designed to exploit forms and anchors
order SQLI (denoted as SO SQLI), and buffer overflow with parameters. The main goal of this tool is to generate
(denoted as BOF) attacks. The last table row contains the test inputs and assess test results of testing from the client
actual number of vulnerabilities in our JSP, JSF and PHP side. Compared to six well-known web application scanners,
applications, respectively. WAPTT showed promising results in detecting various web
One of the benefits of developing three web applications application vulnerabilities. Moreover, compared to these
to test the scanners is the ability for us to measure the false scanners, WAPTT detected the same or greater number of
negatives of the scanners. An ideal scanner would be able to vulnerabilities in every tested application for every type of
detect all vulnerabilities. In fact, the students and teaching vulnerability.
assistants (who developed these applications) knew all When compared to the well-known state-of-the-art web
vulnerabilities, while the automated scanners did not found application scanners, WAPTT has one extra feature, which
all of them. WAPTT discovered 12 from a total of 16 is modularity, which enables end-users to easily extend this
vulnerabilities, Acunetix discovered 8 vulnerabilities, wapiti tool. Also, this is one of the promising areas of extension to
discovered 6 vulnerabilities, w3af discovered 5 this work. It would be interesting to implement some
vulnerabilities, and vega discovered only 1 vulnerability. additional attack generator and analyzer submodules in
Nikto and ZAP did not discover any of vulnerabilities in any order to support detection of new types of web application
of three applications. vulnerabilities. It is important to mention that WAPTT uses
As it can be seen, all first-order XSS vulnerabilities were an efficient algorithm for page similarity detection, needed
discovered by wapiti, Acunetix and WAPTT. W3af didn’t for SQLI vulnerability detection. Also, the WAPTT tool
discovered XSS in PHP application, while other tools meets almost all WASC evaluation criteria (organized in 8
(Nikto, vega and ZAP) didn’t discover any of XSS categories) for web application scanners.
vulnerabilities. Wapiti and WAPTT discovered one second- Because WAPTT uses two similarity detection algorithms
order XSS vulnerability (in JSP application). Second-order in process of page similarity detection (needed for SQLI
XSS vulnerability in JSF application was not discovered by vulnerability detection) and because WAPTT makes two
any of the tools. All blind SQLI vulnerabilities were passes off all pages (needed for detection of second-order
discovered by wapiti and WAPTT. Acunetix discovered 2 SQLI and second-order XSS attacks), it is obvious that this
out of 3 blind SQLI vulnerabilities, while other tools (Nikto, tool can be slower as compared to other web application
vega and ZAP) didn’t discover any of blind SQLI scanners. This is why a speed performance improvement of
vulnerabilities. Vega only discovered first-order SQLI WAPTT is needed and will be investigated in the future
vulnerability in JSF application. W3af, Acunetix and work. There are some other limitations to WAPTT that
WAPTT didn’t discover only one first-order SQLI should be addressed in the future work. An efficient,
vulnerability (in JSP application). Other tools (Nikto, wapiti intuitive and easy accessible user interface is critical to wide
and ZAP) did not discover any of first-order SQLI adoption. This is why we are developing a new user
vulnerabilities in any of three applications. WAPTT interface for WAPTT in the form of a rich internet
discovered 1 out of 3 second-order SQLI vulnerabilities. All application.
other tools did not discover any of second-order SQLI
vulnerabilities in any of three applications. It is important to REFERENCES
mention that w3af tool successfully executed one second- [1] H. Shahriar, M. Zulkernine. Automatic Testing of Program Security
order SQLI attack against JSF application, but it failed to Vulnerabilities, 33rd Annual IEEE International Computer Software
and Applications Conference, pp. 550 - 555, 2009.
detect that successful execution. Additionally, Nikto and [2] A. Kiezun, P. J. Guo, K. Jayaraman, and M. D. Ernst, “Automatic
ZAP didn’t find all of application pages, because they didn’t creation of SQL injection and cross-site scripting attacks”, in
pass the login forms of tested applications. BOF ICSE’09, Proceedings of the 30th International Conference on
vulnerability (in JSP application) is discovered only by Software Engineering, Vancouver, BC, Canada, May 20–22, 2009.
[3] T. Scholtea, D. Balzarottib, E.Kirda, “Have things changed now? An
WAPTT tool. empirical study on input validation vulnerabilities in web
It is important to mention, that there were two false applications”, Computers & Security, vol. 31, pp. 344-356, 2012.
positive detections by w3af tool. W3af reported two false [4] J. Bau, E. Bursztein, D. Gupta, J. Mitchell, “State of the Art:
Automated Black-Box Web Application Vulnerability Testing”,
SQLI vulnerability detections, one in JSP and one in JSF Proceedings of the 2010 IEEE Symposium on Security and Privacy,
application. Wapiti, as well as Vega, reported false SQLI pp. 332-345, 2010.
vulnerability detection in JSF application. Also, it is [5] N. Antunes, N. Laranjeiro, M. Vieira, H. Madeira, “Effective
Detection of SQL/XPath Injection Vulnerabilities in Web Services”,
important to notice that one of first-order SQLI IEEE SCC 2009, pp. 260-267, 2009.
vulnerabilities (in JSP application) and two second-order [6] X. Li and Y. Xue, “A Survey on Web Application Security”,
SQLI vulnerabilities were not detected by any scanner. Technical report, Vanderbilt University, 2011.
[7] W. G. Halfond and A. Orso, “AMNESIA: Analysis and Monitoring
There were no false XSS and BOF vulnerability detections for NEutralizing SQL-Injection attacks”, Proceedings of the 20th
by any of tools. IEEE/ACM international Conference on Automated software
engineering, pp. 174-183, 2005.
[8] Y.-W. Huang, F. Yu, C. Hang, C.-H. Tsai, D.-T. Lee, and S.-Y. Kuo,
VII. CONCLUSION “Securing Web application code by static analysis and runtime
Number of reported web applications vulnerabilities is protection”, Proceedings of the 13th international conference on
World Wide Web, pp. 40 - 52, 2004.
increasing dramatically. Most of them result from improper [9] M. Lam, M. Martin, B. Livshits, and J. Whaley, “Securing Web
or none input validation by the web application. applications with static and dynamic information flow tracking”,

101
[Downloaded from www.aece.ro on Saturday, March 31, 2018 at 18:13:05 (UTC) by 178.171.108.125. Redistribution subject to AECE license or copyright.]

Advances in Electrical and Computer Engineering Volume 14, Number 1, 2014

Proceedings of the ACM SIGPLAN symposium on Partial evaluation Proceedings of the 12th International Symposium on Recent
and semantics-based program manipulation, pp. 3-12, 2008. Advances in Intrusion Detection, pp. 21–40, 2009.
[10] M. Martin and M. Lam, “Automatic generation of XSS and SQL [23] Y.-W. Huang, S.-K. Huang, T.-P. Lin, Ch.-H. Tsai, “Web application
injection attacks with goal-directed model checking”, Proceedings of security assessment by fault injection and behavior monitoring”,
the 17th conference on Security symposium, pp. 31-43, 2008. Proceedings of the 12th international conference on World Wide
[11] OWASP Top 10 2013, https://www.owasp.org/index.php/Top_10 Web, pp. 148-159, 2003.
_2013 [24] A. Wiegenstein, F. Weidemann, M. Schumacher, S. Schinzel, “Web
[12] Information Technology Industry Council NCITS. SQL-92 standard. Application Vulnerability Scanners - a Benchmark”, Virtual Forge
http://www.ncits.org/, 1992. GmbH, 2006.
[13] C. Anley, Advanced SQL Injection in SQL Server Applications, [25] N. Li, T. Xie, M. Jin, C. Liu, “Perturbation-based user-input-
http://www.nextgenss.com/papers/ advanced sql injection.pdf validation testing of web applications”, Journal of Systems and
[14] C. Anley,(more) Advanced SQL Injection, http://www.nextgenss. Software, vol. 83, pp. 2263-2274, 2010.
com/ papers/more advanced sql injection.pdf [26] Z. Djuric, D. Gasevic, “A Source Code Similarity System for
[15] G. Wassermann and Z. Su, “Sound and precise analysis of web Plagiarism Detection”, The Computer Journal, vol. 56, pp. 70-86,
applications for injection vulnerabilities,” SIGPLAN Not., vol. 42, no. 2013.
6, pp. 32–41, 2007. [27] J.W. Hunt, M.D. McIlroy, “An Algorithm for Differential File
[16] M. S. Lam, M. Martin, B. Livshits, and J. Whaley, “Securing web Comparison”, Technical Report SECLAB-05–04, Bell Laboratories,
applications with static and dynamic information flow tracking,” in 1976.
PEPM ’08: Proceedings of the 2008 ACM SIGPLAN symposium on [28] A. B. Kleiman, T. Kowaltowski, “Qualitative Analysis and
Partial evaluation and semantics based program manipulation. New Comparison of Plagiarism-Detection Systems in Student Programs”,
York, NY, USA: ACM, pp. 3–12, 2008. Technical Report IC-09-08. Instituto de Computação,
[17] N. Jovanovic, C. Kruegel, and E. Kirda, “Pixy: A static analysis tool UNIVERSIDADE ESTADUAL DE CAMPINAS, 2009.
for detecting web application vulnerabilities (short paper),” IEEE [29] M.J. Wise, “String similarity via greedy string tiling and running
Symposium on Security and Privacy, pp. 258–263, 2006. Karp-Rabin matching”, Deptartment of CS, University of Sydney,
[18] Y.-W. Huang, F. Yu, C. Hang, C.-H. Tsai, D.-T. Lee, and S.-Y. Kuo, ftp://ftp.cs.su.oz.au/michaelw/doc/RKR GST.ps, 1993.
“Securing web application code by static analysis and runtime [30] R.M Karp and M.O. Rabin, “Efficient randomized pattern-matching
protection,” Proceedings of the 13th international conference on World algorithms”, IBM Journal of Research and Development -
Wide Web. New York, NY, USA: ACM, pp. 40–52, 2004. Mathematics and computing, vol. 31, pp. 249-260, 1987.
[19] S. Kals, E. Kirda, C. Kruegel, and N. Jovanovic, “Secubat: a web [31] Web Application Security Consortium (WASC). Web application
vulnerability scanner”, Proceedings of the 15th international security scanner evaluation criteria.
conference on World Wide Web, pp. 247–256, 2006. http://projects.webappsec.org/f/Web+Application+Security+Scanner+
[20] S. McAllister, E. Kirda, and C. Kruegel, “Expanding Human Evaluation+Criteria+-+Version+1.0.pdf, 2011.
Interactions for In-Depth Testing of Web Applications”, 11th [32] OWASP WebGoat Project, https://www.owasp.org/index.php/
Symposium on Recent Advances in Intrusion Detection, Boston, MA, Category:OWASP_WebGoat_Project
2008. [33] HackMe bank, http://www.mcafee.com/us/downloads/free-
[21] S. Mcallister, E. Kirda, and C. Kruegel, “Leveraging user interactions tools/hacme-bank.aspx
for in-depth testing of web applications,” Proceedings of the 11th [34] AltoroMutual, http://demo.testfire.net/
international symposium on Recent Advances in Intrusion Detection, [35] L. Suto, “Analyzing the Accuracy and Time Costs of Web
pp. 191–210, 2008. Application Security Scanners”, Available: http://ha.ckers.org/
[22] F. Maggi, W. K. Robertson, C. Krugel, and G. Vigna, “Protecting a files/Accuracy_and_Time_Costs_of_Web_App_Scanners.pdf
moving target: Addressing web application concept drift”,

102

You might also like