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

2013 International Conference on Information Technology and Applications

The Appilication of Fuzzing in Web software security vulnerabilities Test

1st Li Liˈ2nd Qiu Dongˈ4th Dan Liu 3rd Leilei Zhu


Changchun University of Science and Technology Changchun Vocational Institute of Technology
Changchun, China Changchun, China
869402720@qq.com xiaozhu4439@163.com

Abstract—Web applications need for extensive testing Here are some common types of vulnerability [2].
before deployment and use, for early detecting security
A. Directory traversal vulnerability
vulnerabilities to improve the quality of the safety of the
software, the purpose of this paper is to research the fuzzing Directory traversal vulnerability can also be called non-
applications in security vulnerabilities. This article first authorized file inclusion vulnerability, it is that the program
introduces the common Web software security vulnerabilities, doesn't filter directory jump operators input from the user like ..
and then provide a comprehensive overview of the fuzzing / and. / , leading to malicious users can unauthorized access or
get some sensitive data, such as web site configuration file and
technology, and using fuzzing tools Webfuzz to execute a
core file, which resulted in a risk of leak. Directory traversal
software vulnerability testing , test whether there is a software
vulnerability is typically found in the place that need to submit
security hole. Test results prove that fuzzing is suitable for file name through the parameter, such as file reading , picture
software security vulnerabilities testing, but this methodology display ,etc. Therefore need to filter interactive data better.
applies only to security research field, and in the aspect of
software security vulnerabilities detection is still insufficient. If the site administrator does not shut down the web server's
Keywords—Web software security vulnerabilities; Fuzzing; automatically directory service or redirect such requests to the
Webfuzz default resource (such as named index.html pages), then it is
easy to get a complete list of documents used in web server
directory . Adding a backslash (/) after enter the address in the
I. INTRODUCTION browser URL bar, then it can display all the contents of this
With the rapid development of Internet technology and directory.When IIS open the file, if the file name contains
the wide application of electronic commerce, Web-based characters as Unicode, it will decode it, if the user provides
software applications gradually become one of the mainstream some special code, it will result IIs incorrect open or perform
software developments. Due to the extensive WEB software some files outside the web root directory.
applications, making WEB security issues also gradually
exposed, that exist in the software of software security B. SQL Injection Vulnerability
vulnerabilities exist that make WEB software is vulnerable to A SQL injection is that insert SQL commands including
various attacks, resulting in information disclosure or system particular purposes into a Web form or the place enter domain
damage, causing huge losses [1]. The cause of WEB software name or query string of page request through key variables,
security vulnerabilities on the one hand is inexperienced ultimately deceive the server to execute malicious SQL
developers, not enough focus on software security problem; commands. The vulnerability, due to the user insert SQL
On the other hand is the lack of a comprehensive and statement into the input data, changing SQL statement
complete security test. structure that the software dynamically generated, resulting in
Defines a fuzzy test found that synthesis method, this software execution error, is called SQL injection vulnerability.
method to discover product key vulnerabilities that could not The reasons that cause the SQL vulnerability, on one hand, is
be found with audit methods are effective. The process of the rapid growth of the dynamic web page under the help of a
Fuzzing is intentionally enter invalid data to the product in the relational database, on the other hand, is the unsafe SQL
purpose to trigger error conditions or the cause of software or coding practices that most of the textbooks telling about . The
product failure. In this paper, combine with fuzzing tool existing of SQL injection vulnerabilities can cause the
webfuzz, fuzzy on the WEB software, testing whether there are database information leakage, websites are hung horse,
security vulnerabilities or not.
spreading of malware, server be remote control, hard disk data
destroyed, etc..
II. WEB SOFTWARE SECURITY VULNERABILITIES The key to solve the problem of SQL injection is to carry
Vulnerability refers to functional or safety logic defects on a strict examination for all possible data from the user input,
existing in computer system, including all the factors can lead use the principle of least privilege for the database
to threaten or damage to computer system security, is defects configuration. All queries using the parameterized query
and deficiencies in a computer system that in the specific interface provided by database, to the special characters (' "\
implementation of hardware, software, protocols, or in the Angle brackets & *etc.)that access the database take converse
security policy. The existing of software security processing or coding conversion, the data length should be
vulnerabilities make software vulnerable to illegal intrusion rules , strictly limited database operation privileges of web
and attacks brought enormous threat to information security. user, before the site released, it is recommended to use

978-1-4799-2876-7/13 $31.00 © 2013 IEEE 130


DOI 10.1109/ITA.2013.36
professional SQL injection testing tool for testing , timely client should be considered as input vector, it possible be fuzzy
repair these SQL injection vulnerabilities. test variables ; In the generation process of fuzzy test data, how
to use a predetermined value, how the variation of existing data
C. Cross-site scripting (XSS) vulnerability or how to dynamically generate the data, these decisions will
XSS is also called CSS (Cross Site Script) , Cross Site depend on the target application and its data format;
scripting attacks, it refers to a malicious attacker inserts Monitoring can take various forms and should not rely on the
malicious Html code into the Web page, when users browse target application and the choice of fuzzy test type.
the page, the Html code embedded in Web will be executed,
which would allow an attacker to control the display contents Regardless of what type of fuzzing, all the stage shown as
of a Web page, or on behalf of the attacker to perform certain Table 1 should be considered. Only the stage of determine
actions, it can be used for stealing privacy, fishing and other availability may be exceptions, the various stages of the order
malicious attacks. The technology that XSS attack used is and focus can be changed in accordance with the objectives of
mainly HTML and Javascript. the researchers.

XSS attacks mainly divided into two categories: one is the B. Fuzzing methods
internal attacks, mainly refers to the use of their own
Method of Fuzzing to discover software vulnerabilities,
vulnerability in the Web application itself, submit special string,
one important part is to generate the fuzzy test cases, this
so as to make the cross site page directly to exist in the attack
on the site, the string is called cross-site statements. Another involves using fuzzer. There are two types of fuzzer existed:
category is coming from external attacks, mainly refers to fuzzer based on variation and fuzzer based on generation,
construct their own vulnerability XSS Cross Site pages or find these two types of fuzzer can be further divided into the
a web page with cross-site vulnerabilities outside of the target . following five categories.
x Pre-generate test cases. This approach begins with
studying the data structure supported by and the
III. FUZZING
acceptable range of values for each data structure, by
Fuzzing is a kind of method by offering unexpected input testing boundary values or forcing regulars violate to
to the target system and monitor abnormal results to discover create the test cases. Using this method to generate test
software vulnerabilities. Fuzzing is generally an automatic or cases has good reusability, but no automatic generation
semi-automatic process, the process involves repeated mechanism is introduced.
manipulate target software and provide processing data for it ,
x Random method. Random method is to use simple
the main application of Fuzzing are lookup file formats, method of generating numbers of pseudo-random data
network protocols and WEB software security vulnerabilities. back to the software to be detected, observe the test
A. Fuzzing process results. This method can be used for rapid safety
estimation of target software, disadvantage is difficult
Fuzzing process can be divided into identifying targetˈ to reverse search software exception causes when the
recognizing input, generating fuzzing data, performing fuzzing server crashes [4].
data, monitoring abnormalities, determining availability six
stages[3].As Table 1 shown. x Protocol variation manual test. This method does not
require introduction of automated fuzzer. After the
In recognition of the target application, testers need to target program is loaded, the tester input data not
investigate the security vulnerabilities of the developers which conform to expectation directly , observe whether there
were found related to history, it helps to further find more is a breakdown or unexpected behavior. The tester can
security vulnerabilities, after choosing the target application, it create effective test cases according to their own
also need to select specific object file or library from the experience.
application ; Any input is sent to the target application from
x Mandatory variable test. Mandatory variable refers to
TABLE 1 FUZZING PROCESS obtain a valid agreement or data format sample later,
fuzzer disrupts files for each byte, word, double word or
No. Stage name Stage task
Select the target application, see what kind of
strings constantly. Test is able to complete the whole
1 Identify target process of test data generation and transmission
vulnerabilities exists
Recognize program input vector, including automatically, disadvantage is not efficient enough.
2 Recognize input
headers, environment variables, etc.
According to the target application choose the x Automatic generate agreement test. The method
Generate fuzzing
3
data
appropriate method to insert fuzzy variables, belongs to a kind of more advanced mandatory testing
generate data methods, testers create a grammar to describe the
Send data packets to the target application,
4
Perform fuzzing
open a file or launch a goal process, this
working process of the protocol regular. Packets are
data divided into static and dynamic parts, which is the fuzzy
process should be automated
5
Monitor
Record abnormal or faulty test
variable, fuzzer generate test cases to test by analyzing
abnormality grammar. This method can improve the effectiveness of
Manual process, determine whether the fuzzing, but need to spend some time on preparatory
Determine
6 detected exceptions or failures can be further
availability
used study of grammar or data format.

131
C. Fuzzing tool Compre-h
SPI fuzzer C# Yes General Bad
Currently, there are several kinds of prevalent Fuzzing ensive
tools used in the commercial Web application, the SPI fuzzer Compre-
Webfuzz C# Yes General Bad
and Webfuzz developed by the company of SPI Dynamics for hensive
example. The SPI fuzzer enables users to completely control WebScarab Java Yes Single General Bad
the original Http requests used by the Fuzzing. In comparison, 
the Webfuzz provides a frame which could create an effective
analysis to test Web software. Besides, the OWASP developed
by WebScarab, could assign directly fuzzy values to the Web
application parameters. As Table 2 shown.
Fig.2. Result in Responses
In this paper, we chose the Webfuzz as the tool of fuzz
testing, Webfuzz development inspired by the tools of
commercial SPI fuzzy detector, it is not a tool easy to use and
completely used for the safety, it's just a tool process work
automated which previously done manually . The final user
can use the tools to develop effective test and analysis of test
results. The tool should be regarded as a research starting Fig.3. Request Headers information
point, not the final solution.
IV. EXPERIMENTS SHOW
When we carry Fuzzing for Web software with Webfuzz,
a HTTP request need to be sent. A tester, as the finial user,
should be allowed to fuzz any detail information of the Fig.4. SQL injection test results
original request. A basic Webfuzz request includes some The test results, line 0 status code 200 represents a
fields: target host, TCP port, timeout, request header. Fuzzy success connection to the server; Line 1 status code 404,
variable is detailed information fuzzed in a request, it can be represents not find xxx.aspx files; Line 3 status code 403,
added directly in the original request, and through the variable represents a prohibited access; line 2 Status code
name in square brackets ([SQL], for example) to identify. The 200 ,represents find the xxx.aspx file that does not exist in the
response captured by the Webfuzz is always saved with system , so we can see the presence of directory traversal
original format so that users could display the response vulnerabilities in this web site.
flexible in several different ways and view the HTML in a
B. SQL injection vulnerability test
Web browser.
Set the IP address of the host to 192.168.99.155, port
A. Directory traversal vulnerability test number is 8081, in Login. aspx file ,there is a piece of code
This vulnerability test to select their simulation of a that exist SQL injection vulnerabilities:
simple ASP.NET login procedure, released to the local area string userID = this.UserIdTxt.Text.ToString();
network using IIS, set the IP address of the host to string Pwd = this.PwdTxt.Text.ToString();
192.168.99.155, port number is 8081, name the login page string sqlStr = String.Format("select count(*) from
login.aspx, call the default method of Get in Webfuzz, instead UserInfo where UserId='{0}' and Pwd='{1}'", userID, Pwd);
the Login.aspx with a fuzzy variable xxx.aspx that not actual In the code above, text box which is used to get the user
existed in website file, and add fuzzy variable [Traversal] in name and user password did not carry out any input
the request header starting line, so the Request Headers is processing, the input string accessed was returned to the
shown as Fig.1. parameters directly, then use these unprocessed parameters to
Click the Request button, these requests will be sent to query in the database.
the web page, Webfuzz tests the Web page automatic, then we Firstly, using the LiveHTTPHeaders plugined in FireFox
could get the responses as shown in Fig.2. to get the Post request when login in, and insert the fuzzy
variables, change UserIdTxt=wja&PwdTxt=wja to
UserIdTxt=[SQL]&PwdTxt= , as the data for Fuzzing.
Secondly, change the Url Web table submitted by the Get
method of Request Headers. As shown in Fig.3.
Click the Request button, these requests will be sent to
Fig.1. Request Headers information the web page, Webfuzz tests the Web page automatic, then we
could get the responses as shown in Fig.4.
TABLE 2 WEB APPLICATION FUZZING TOOLS CONTRAST EXPANDABLITY
In the figure above, line 18 status code 200,means that
Degree conditions in '1' = '1' can successfully submit the fuzzy data,
Develop- Vulner- Expand-
Visuali- of
Name ment
zation
ability
automa- line 19 status code 400, means that conditions in '1' = '2'
language Type ablity
tion appears access errors, combined with the principle of SQL

132
injection can find the site have SQL injection vulnerabilities, V. SUMMARY AND OUTLOOK
line 20 status code 200 can fully proves this point. Fuzzing goal is to detect the presence of some types of
C. The XSS vulnerability test software vulnerabilities, but fuzzing itself still exist limitations
A common method of testing in the presence of XSS for some vulnerabilities. For the applications supporting
vulnerability is input a simple JavaScript code fragment and multiple users and needing Hierarchical authority, fuzzer
cannot comprehend the logic of it and may lead to some
an alarm function, the alarm function will result in a pop-up
access control mechanism is ignored; At the same time we can
window. However, this is not a practical vulnerability
also see that fuzzer is not the best tool used to identify the
detection mechanism, because it requires the tester
poor logic design; For a fuzzy controller, if be restricted or do
observations. And WebFuzz advantage is the automatic
operation, therefore the tester can leave the machine to wait not know about the target application's configuration
for test results. Testers need to add an appropriate fuzzy information, then its back door looks like does not have any
difference with any other target application logic, unless the
variable to the WebFuzz, add a new variable is very simple,
information given to fuzzy control group to make it a
and do not need to recompile the application again.
successful recognition landing, it is no way by using a hard-
XSS vulnerability test environment is as follows:
coded password to identify a successful login attempt. If the
The host name:
target application is good enough to block out some memory
http://xss.killsec.com/?m=user&a=login˗
corruption problems, simple fuzzer can’t find them; Fuzzing is
The port number: 80
suitable for identification of single vulnerability defect, for
Modify Request Headers in the request message,
vulnerabilities composed with small defects can't better
inserting fuzzy variables, generate fuzzing data, the Request
recognition.
Header is GET/?m=[XSS] HTTP/1.1, then click the Request
Although fuzzing has appeared and developed a period
button, the results shown in Fig.5. of time, this method has not be focused on by users who out of
Line 4 status code Error represents access error; Line 1-3 the field of security, at the same time a large number of
status code 200 represents fuzzy data submitted successfully; fuzzing cases also reduces the test efficiency, researchers need
it also pop up an alert box, prove the existence of XSS to do further research.
vulnerability in the site.
REFERENCES
[1] CNNIC. China Internet development statistics report (January 2012)
[R/OL]. (2012-01-16) HTTP://WWW. Cnnic.net.cn/hlfzyj/hlwxzbg/
201201/P020120709345264469680. PDF.
[2] Jingnong Du, Web-based application security vulnerability testing
method.. Huazhong University of Science &Technology,2010.
[3] Michael Sutton,Adam Greene,Pedram Amini.Fuzzing 㧦 Brute Force
Vulnerability Discovery 㨇 M 㨉 㧚 Long Huang 㧘 Lili Yu 㧘 Hu Li 㧘
translated㧚China Machine Press㧘2008.
[4] Xu Cao, Yining Zhang. 2009. Based on the technology of reverse
engineering and Fuzzing Adobe Readervulnerability exploiting
technology research [J]. Journal of information engineering university,
2010 .
[5] Lili Yu, Mengshan Du, Ping Zhang, Lingli Ji. Web security testing
technology overview. Application Research of Computers, 2012.
[6] Ling Xu. WebFuzz for Web software vulnerability testing software
GUIDE • Educational Technology, 2012 .
Fig.5. Result of the XSS vulnerability test

133

You might also like