Csfire: Transparent Client-Side Mitigation of Malicious Cross-Domain Requests

Total Page:16

File Type:pdf, Size:1020Kb

Csfire: Transparent Client-Side Mitigation of Malicious Cross-Domain Requests CsFire: Transparent client-side mitigation of malicious cross-domain requests Philippe De Ryck, Lieven Desmet, Thomas Heyman, Frank Piessens, and Wouter Joosen IBBT-DistriNet Katholieke Universiteit Leuven 3001 Leuven, Belgium fphilippe.deryck,[email protected] Abstract Protecting users in the ubiquitous online world is becoming more and more important, as shown by web application security { or the lack thereof { making the mainstream news. One of the more harmful attacks is cross-site request forgery (CSRF), which allows an attacker to make requests to certain web applications while impersonating the user without their awareness. Existing client-side protection mechanisms do not fully mitigate the problem or have a degrading effect on the browsing experience of the user, especially with web 2.0 techniques such as AJAX, mashups and single sign-on. To fill this gap, this paper makes three con- tributions: first, a thorough traffic analysis on real-world traffic quanti- fies the amount of cross-domain traffic and identifies its specific proper- ties. Second, a client-side enforcement policy has been constructed and a Firefox extension, named CsFire (CeaseFire), has been implemented to autonomously mitigate CSRF attacks as precise as possible. Evalu- ation was done using specific CSRF scenarios, as well as in real-life by a group of test users. Third, the granularity of the client-side policy is improved even further by incorporating server-specific policy refinements about intended cross-domain traffic. 1 Introduction Cross-Site Request Forgery (CSRF) is a web application attack vector that can be leveraged by an attacker to force an unwitting user's browser to perform actions on a third party website, possibly reusing all cached authentication cre- dentials of that user. In 2007, CSRF was listed as one of the most serious web application vulnerability in the OWASP Top Ten [15]. In 2008, Zeller and Felten documented a number of serious CSRF vulnerabilities in high-profile websites, among which was a vulnerability on the home banking website of ING Direct [23]. One of the root causes of CSRF is the abuse of cached credentials in cross- domain requests. A website can easily trigger new requests to web applications in a different trust domain without any user intervention. This results in the browser sending out cross-domain requests, while implicitly using credentials cached in the browser (such as cookies, SSL certificates or login/password pairs). From a server point of view, these implicitly authenticated requests are legitimate and are requested on behalf of the user. The user, however, is not aware that he sent out those requests, nor that he approved them. Currently, a whole range of techniques exist to mitigate CSRF, either by pro- tecting the server application or by protecting the end-user (e.g. via a browser extension or a client-side proxy). Unfortunately, the server-side protection mech- anisms are not yet widely adopted. On the other side, most of the client-side solutions provide only limited protection or can not deal with complex web 2.0 applications, which use techniques such as AJAX, mashups or single sign-on (SSO). As a result, even the most cautious web user is unable to appropri- ately protect himself against CSRF, without compromising heavily on usability. Therefore, it is necessary to construct more robust client-side protection tech- niques against CSRF, capable of dealing with current and next-generation web applications. This paper presents the following contributions. First, it describes the results of an extensive, real-world traffic analysis. This analysis shows how many of the requests a browser makes are cross-domain and what their properties are. Second, we define CsFire, an autonomous client-side protection policy, which is independent of user-input or server-provided information. This policy will determine which cross-domain traffic is considered harmful and will propose an appropriate action, such as blocking the request or removing the implicit authentication credentials from the request. The paper also discusses how this policy can be enforced within the Firefox browser. Finally, this autonomous policy can be extended by server-specific refinements, to achieve a more flexible and fine-grained enforcement. This research builds upon previous work [13]. The main achievements with respect to the previous preliminary results are (1) a much finer-grained pol- icy allowing a secure-by-default solution without service degradation, and (2) a thorough evaluation of the proposed prototype. The remainder of this paper is structured as follows. Section 2 provides some background information on CSRF, explores the current state-of-the-art and de- fines the requirements of client-side mitigation solutions. Next, the detailed traf- fic analysis results are presented, along with the autonomous client policy, in Section 3. Section 4 describes the client-side solution in great detail. The re- finements with server-specific policies and its implementation are discussed in Section 5. Our solution is evaluated extensively by means of test scenarios, along with a group of test users. The evaluation results can be found in Section 6. In Section 7, the presented work is related to alternative mitigation techniques and, finally, Section 8 summarizes the contributions of this paper. 2 Background This section provides some background information on CSRF and available countermeasures. We will also define the requirements for client-side mitigation against CSRF. 2.1 Cross-Site Request Forgery (CSRF) HTTP is a stateless client-server protocol [5], which uses certain methods to transfer data between web servers and browsers. The two most frequently used HTTP methods are GET and POST. Conforming to the HTTP specification, GET methods are used to fetch data from the server, whereas POST methods are used to update server state. In practice however, GET and POST methods are used interchangeably, and both can trigger server-side state changes. Because of the stateless nature of HTTP, session management is built on top of HTTP. This is typically done by means of cookies, which are small amounts of session-specific data, created by the server application and stored in the browser. Alternative approaches such as URL rewriting or hidden form parameters exist as well [17]. This session-specific data is sent back with each request to that particular web application, without any user intervention. Similarly, HTTP basic authentication attaches encoded credentials to each individual request to enable server-side authentication and authorization. For user convenience, the credentials are typically cached within the browser, and are only requested once for the lifespan of the browser session. Other (albeit lesser used) authentication schemes include client side SSL and IP-based access control [9], of which the latter is mainly used on intranets. This paper will focus on the first two authentication mechanisms. To perform a successful CSRF attack, a number of conditions need to be met: 1. The target website must use implicit authentication, such as through cookies or HTTP authentication, as mentioned above. 2. The targeted user must already have been authenticated to the target web application, and the user's browser must have cached the authentication credentials. 3. An attacker forces the user's browser to make an HTTP request to the target web application. When all three conditions are met, the browser will automatically add the im- plicit authentication, making the request appear as a legitimate one to the target server. In general, CSRF attacks happen cross-domain, where an attacker tricks the user into connecting to another site. Strictly speaking, CSRF can also occur within the same domain, e.g. due to a script injection vulnerability or when multiple users can host a web site within the same domain (universities, ISP's, . ). The focus of this paper lies on the cross-domain CSRF attacks. 2.2 Existing countermeasures A number of CSRF protection techniques exist, by either protecting the server application or by protecting the end-user. This section briefly discusses both. Client-side countermeasures The most widespread countermeasure is the Same Origin Policy (SOP) [22], implemented in most browsers. This policy limits ac- cess to DOM properties and methods to scripts from the same `origin', where origin is usually defined as the triple <domain name, protocol, tcp port>1. This prevents a malicious script on the website evil.com from reading out session identifiers stored in a cookie from homebanking.com, for example. Unfortunately, the protection offered by the SOP is insufficient. Although the SOP prevents the requesting script from accessing the cookies or DOM properties of a page from another origin, it does not prevent an attacker from making requests to other origins. The attacker can still trigger new requests and use cached credentials, even though the SOP prevents the attacker from processing responses sent back from the server. On top of SOP, client-side countermeasures exist to monitor and filter cross- domain requests. They typically operate as a client-side proxy [9] or as an exten- sion in the browser [18,23]. These countermeasures monitor outgoing requests and incoming responses, and filter out implicit authentication or block cross- domain requests. Unfortunately, these client-side mitigation techniques suffer from various problems, as will be discussed in Section 7. Server-side countermeasures A number of server-side mitigation techniques ex- ists as well, of which the most popular class is the use of secret tokens [4,10,16]. Each response from the server embeds a secret token into the web page (e.g. a hidden parameter in an HTML form). For each incoming request, the server ver- ifies that the received token originated from the server, and is correctly bound to the user's session. Since the SOP prevents the attacker from reading responses from other origins, this is an effective server-side countermeasure.
Recommended publications
  • HTTP Header Analysis
    HTTP Header Analysis Author:Roland Zegers Master System and Network Engineering University of Amsterdam [email protected] August 31, 2015 Abstract Many companies are busy finding new solutions for detecting the growing amount of malware that is propagated over the Internet. A lot of anti-malware developers use the unique signature of the payload as a detection mechanism. Others look at the communication channels. Research has been done to see what information HTTP headers can provide. Different aspects of headers have been investigated in order to track malware: header sizes, type errors or the presence or absence of certain headers. This information is then used to create a fingerprint or signature. The goal of this research was to look at order of HTTP request headers to see if it is possible to determine if malware is present. Although the header order of malware is very irregular, it does not stand out when compared to HTTP headers from regular traffic. Websites have their own header order as well as programs that communicate over HTTP like Windows updates and anti-virus solutions. Some websites request special services or offer specific content. This leads to the insertion of extra headers, like security-, SOAP- or experimental headers, which create inconsistency in the order of the headers. As a result of this, it is unfeasible to use header order to reliably identify systems or malware. 1 Contents 1 Introduction 3 1.1 Rationale . .3 1.2 Related research . .3 2 Research Questions 4 2.1 Problem definition . .4 2.2 Research Questions . .4 3 Request headers 4 3.1 HTTP header structure .
    [Show full text]
  • Introduction
    HTTP Request Smuggling in 2020 – New Variants, New Defenses and New Challenges Amit Klein SafeBreach Labs Introduction HTTP Request Smuggling (AKA HTTP Desyncing) is an attack technique that exploits different interpretations of a stream of non-standard HTTP requests among various HTTP devices between the client (attacker) and the server (including the server itself). Specifically, the attacker manipulates the way various HTTP devices split the stream into individual HTTP requests. By doing this, the attacker can “smuggle” a malicious HTTP request through an HTTP device to the server abusing the discrepancy in the interpretation of the stream of requests and desyncing between the server’s view of the HTTP request (and response) stream and the intermediary HTTP device’s view of these streams. In this way, for example, the malicious HTTP request can be "smuggled" as a part of the previous HTTP request. HTTP Request Smuggling was invented in 2005, and recently, additional research cropped up. This research field is still not fully explored, especially when considering open source defense systems such as mod_security’s community rule-set (CRS). These HTTP Request Smuggling defenses are rudimentary and not always effective. My Contribution My contribution is three-fold. I explore new attacks and defense mechanisms, and I provide some “challenges”. 1. New attacks: I provide some new HTTP Request Smuggling variants and show how they work against various proxy-server (or proxy-proxy) combinations. I also found a bypass for mod_security CRS (assuming HTTP Request Smuggling is possible without it). An attack demonstration script implementing my payloads is available in SafeBreach Labs’ GitHub repository (https://github.com/SafeBreach-Labs/HRS).
    [Show full text]
  • Simple Security Policy for the Web by Terri Kimiko Oda a Thesis Submitted
    Simple Security Policy for the Web by Terri Kimiko Oda A thesis submitted to the Faculty of Graduate and Postdoctoral Affairs in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Computer Science Carleton University Ottawa, Ontario © 2011 Terri Kimiko Oda Library and Archives Bibliotheque et Canada Archives Canada Published Heritage Direction du Branch Patrimoine de I'edition 395 Wellington Street 395, rue Wellington Ottawa ON K1A0N4 Ottawa ON K1A 0N4 Canada Canada Your file Votre reference ISBN: 978-0-494-87758-6 Our file Notre reference ISBN: 978-0-494-87758-6 NOTICE: AVIS: The author has granted a non­ L'auteur a accorde une licence non exclusive exclusive license allowing Library and permettant a la Bibliotheque et Archives Archives Canada to reproduce, Canada de reproduire, publier, archiver, publish, archive, preserve, conserve, sauvegarder, conserver, transmettre au public communicate to the public by par telecommunication ou par I'lnternet, preter, telecommunication or on the Internet, distribuer et vendre des theses partout dans le loan, distrbute and sell theses monde, a des fins commerciales ou autres, sur worldwide, for commercial or non­ support microforme, papier, electronique et/ou commercial purposes, in microform, autres formats. paper, electronic and/or any other formats. The author retains copyright L'auteur conserve la propriete du droit d'auteur ownership and moral rights in this et des droits moraux qui protege cette these. Ni thesis. Neither the thesis nor la these ni des extraits substantiels de celle-ci substantial extracts from it may be ne doivent etre imprimes ou autrement printed or otherwise reproduced reproduits sans son autorisation.
    [Show full text]
  • Citrix Netscaler 1000V Application Security Guide, Release 10.1
    Citrix NetScaler 1000V Application Security Guide Citrix NetScaler 10.1 October 3, 2013 Cisco Systems, Inc. www.cisco.com Cisco has more than 200 offices worldwide. Addresses, phone numbers, and fax numbers are listed on the Cisco website at www.cisco.com/go/offices. THE SPECIFICATIONS AND INFORMATION REGARDING THE PRODUCTS IN THIS MANUAL ARE SUBJECT TO CHANGE WITHOUT NOTICE. ALL STATEMENTS, INFORMATION, AND RECOMMENDATIONS IN THIS MANUAL ARE BELIEVED TO BE ACCURATE BUT ARE PRESENTED WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. USERS MUST TAKE FULL RESPONSIBILITY FOR THEIR APPLICATION OF ANY PRODUCTS. THE SOFTWARE LICENSE AND LIMITED WARRANTY FOR THE ACCOMPANYING PRODUCT ARE SET FORTH IN THE INFORMATION PACKET THAT SHIPPED WITH THE PRODUCT AND ARE INCORPORATED HEREIN BY THIS REFERENCE. IF YOU ARE UNABLE TO LOCATE THE SOFTWARE LICENSE OR LIMITED WARRANTY, CONTACT YOUR CISCO REPRESENTATIVE FOR A COPY. The following information is for FCC compliance of Class A devices: This equipment has been tested and found to comply with the limits for a Class A digital device, pursuant to part 15 of the FCC rules. These limits are designed to provide reasonable protection against harmful interference when the equipment is operated in a commercial environment. This equipment generates, uses, and can radiate radio-frequency energy and, if not installed and used in accordance with the instruction manual, may cause harmful interference to radio communications. Operation of this equipment in a residential area is likely to cause harmful interference, in which case users will be required to correct the interference at their own expense. The following information is for FCC compliance of Class B devices: This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to part 15 of the FCC rules.
    [Show full text]
  • Cache-Poisoned Denial-Of-Service Attack
    Your Cache Has Fallen: Cache-Poisoned Denial-of-Service Attack Hoai Viet Nguyen, Luigi Lo Iacono Hannes Federrath Data & Application Security Group Security in Distributed Systems Group Cologne University of Applied Sciences, Germany University of Hamburg, Germany {viet.nguyen,luigi.lo_iacono}@th-koeln.de [email protected] ABSTRACT 1 INTRODUCTION Web caching enables the reuse of HTTP responses with the aim Contemporary distributed software systems require to scale at large to reduce the number of requests that reach the origin server, the in order to efficiently handle the sheer magnitude of requests stem- volume of network traffic resulting from resource requests, and ming, e.g., from human users all over the globe or sensors scattered the user-perceived latency of resource access. For these reasons, around in an environment. A common architectural approach to a cache is a key component in modern distributed systems as it cope with this requirement is to design the system in layers com- enables applications to scale at large. In addition to optimizing posed of distinct intermediaries. Application-level messages travel performance metrics, caches promote additional protection against through such intermediate systems on their path between a client Denial of Service (DoS) attacks. and a server. Common intermediaries include caches, firewalls, load In this paper we introduce and analyze a new class of web cache balancers, document routers and filters. poisoning attacks. By provoking an error on the origin server that The caching of frequently used resources reduces network traffic is not detected by the intermediate caching system, the cache gets and optimizes application performance and is one major pillar of poisoned with the server-generated error page and instrumented success of the web.
    [Show full text]
  • 1 Vulnerability Analysis of Web-Based Applications
    1 Vulnerability Analysis of Web-based Applications Summary. In the last few years, the popularity of web-based applications has grown tremendously. A number of factors have led an increasing number of orga- nizations and individuals to rely on web-based applications to provide access to a variety of services. Today, web-based applications are routinely used in security- critical environments, such as medical, financial, and military systems. Web-based systems are a composition of infrastructure components, such as web servers and databases, and of application-specific code, such as HTML-embedded scripts and server-side CGI programs. While the infrastructure components are usu- ally developed by experienced programmers with solid security skills, the application- specific code is often developed under strict time constraints by programmers with little security training. As a result, vulnerable web-based applications are deployed and made available to the whole Internet, creating easily-exploitable entry points for the compromise of entire networks. To ameliorate these security problems, it is necessary to develop tools and tech- niques to improve the security of web-based applications. The most effective ap- proach would be to provide secure mechanisms that can be used by well-trained developers. Unfortunately, this is not always possible, and a second line of defense is represented by auditing the application code for possible security problems. This activity, often referred to as web vulnerability analysis, allows one to identify security problems in web-based applications at early stages of development and deployment. Recently, a number of methodologies and tools have been proposed to support the assessment of the security of web-based applications.
    [Show full text]
  • Network Monitoring for Web-Based Threats
    Network Monitoring for Web-Based Threats Matthew Heckathorn February 2011 TECHNICAL REPORT CMU/SEI-2011-TR-005 ESC-TR-2011-005 CERT® Program Unlimited distribution subject to the copyright. http://www.sei.cmu.edu This report was prepared for the SEI Administrative Agent ESC/XPK 5 Eglin Street Hanscom AFB, MA 01731-2100 The ideas and findings in this report should not be construed as an official DoD position. It is published in the interest of scientific and technical information exchange. This work is sponsored by the U.S. Department of Defense. The Software Engineering Institute is a federally funded research and development center sponsored by the U.S. Department of Defense. Copyright 2011 Carnegie Mellon University. NO WARRANTY THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN “AS-IS” BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. Use of any trademarks in this report is not intended in any way to infringe on the rights of the trademark holder. Internal use. Permission to reproduce this document and to prepare derivative works from this document for internal use is granted, provided the copyright and “No Warranty” statements are included with all reproductions and derivative works. External use. This document may be reproduced in its entirety, without modification, and freely distributed in written or electronic form without requesting formal permission.
    [Show full text]
  • Web Vulnerability Scanning Report: DVWA Login
    WEB VULNERABILITY SCANNING REPORT DVWA Login 11 AUG 21 22:18 CEST https://dvwa-login.test.crashtest.cloud 1 Overview 1.1 Vulnerability Overview Based on our testing, we identified 50 vulnerabilities. critical 7 high 11 medium 25 low 5 informational 2 0 5 10 15 20 25 Figure 1.1: Total number of vulnerabilities for ”DVWA Login” STATE DESCRIPTION BASE SCORE These findings are very critical whilst posing an immediate threat. Fix- CRITICAL ing these issues should be the highest priority, regardless of any other 9 - 10 issues. Findings in this category pose an immediate threat and should be fixed 7 - 8.9 HIGH immediately. Medium findings may cause serious harm in combination with other MEDIUM security vulnerabilites. These findings should be considered during 4 - 6.9 project planning and be fixed within short time. Low severity findings do not impose an immediate threat. Such find- LOW ings should be reviewed for their specific impact on the application and 0.1 - 3.9 be fixed accordingly. Informational findings do not pose any threat but have solely informa- 0 INFO tional purpose. Crashtest Security GmbH DVWA Login | 11 Aug 21 | 22:18 CEST Leopoldstr. 21, 80802 München, Germany https://crashtest-security.com 2/77 1.2 Scanner Overview During the scan, the Crashtest Security Suite was looking for the following kinds of vulnerabilities and security issues: X Server Version Fingerprinting X Security Headers X Web Application Version Fingerprinting X Content-Security-Policy headers X CVE Comparison X Portscan X Heartbleed X Boolean-based blind SQL
    [Show full text]
  • Http Request Smuggling
    HTTP REQUEST SMUGGLING CHAIM LINHART ([email protected]) AMIT KLEIN ([email protected]) RONEN HELED AND STEVE ORRIN ([email protected]) A whitepaper from Watchfire TABLE OF CONTENTS Abstract ............................................................................................................................. 1 Executive Summary ........................................................................................................ 1 What is HTTP Request Smuggling?............................................................................ 2 What damage can HRS inflict?..................................................................................... 2 Example #1: Web Cache Poisoning ............................................................................. 4 Example #2: Firewall/IPS/IDS evasion ....................................................................... 5 Example #3: Forward vs. backward HRS ................................................................... 7 Example #4: Request Hijacking ................................................................................... 9 Example #5: Request Credential Hijacking............................................................. 10 HRS techniques............................................................................................................. 10 Protecting your site against HRS ............................................................................... 19 Squid ..............................................................................................................................
    [Show full text]
  • HTTP Request Smuggling in 2020
    HTTP Request Smuggling in 2020 Amit Klein Safebreach Labs About Me • 29 years in InfoSec • VP Security Research Safebreach (2015-Present) • 30+ Papers, dozens of advisories against high profile products • Presented in BlackHat (3 times), DefCon (twice), Usenix, NDSS, HITB, InfoCom, DSN, RSA, CertConf, Bluehat, OWASP Global (keynote), OWASP EU, AusCERT (keynote) and more • http://www.securitygalore.com Introduction What is HTTP Request Smuggling? • 3 Actors • Attacker (client) • Proxy/firewall • Web server (or another proxy/firewall) • Attack • Attacker connects (80/tcp) to the proxy, sends ABC • Proxy interprets as AB, C, forwards to the web server • Web server interprets as A, BC, responds with r(A), r(BC) • Proxy caches r(A) for AB, r(BC) for C. • AKA “HTTP desync Attack” Different interpretations of the TCP stream POST /hello.php HTTP/1.1 ... Content-Length: 0 Content-Length: 44 GET /poison.html HTTP/1.1 Host: www.example.com Something: GET /target.html HTTP/1.1 Different interpretations of the TCP stream POST /hello.php HTTP/1.1 Caching Proxy (last CL) ... 1. /hello.php (44 bytes in body) 2. /target.html Content-Length: 0 Content-Length: 44 GET /poison.html HTTP/1.1 Host: www.example.com Something: GET /target.html HTTP/1.1 Different interpretations of the TCP stream POST /hello.php HTTP/1.1 ... Content-Length: 0 Web Server (first CL) Content-Length: 44 1. /hello.php (0 bytes in body) 2. /poison.html (+headers) GET /poison.html HTTP/1.1 Host: www.example.com Something: GET /target.html HTTP/1.1 Different interpretations of the TCP stream POST /hello.php HTTP/1.1 Caching Proxy (last CL) ..
    [Show full text]
  • OWASP Testing Guide
    1 Testing Guide 4.0 Project Leaders: Matteo Meucci and Andrew Muller Creative Commons (CC) Attribution Share-Alike Free version at http://www.owasp.org 2 THE ICONS BELOW REPRESENT WHAT YOU ARE FREE: OTHER VERSIONS ARE AVAILABLE IN PRINT FOR THIS BOOK TITLE. To Share - to copy, distribute and ALPHA: “Alpha Quality” book content is a transmit the work working draft. Content is very rough and in development until the next level of publishing. To Remix - to adapt the work BETA: “Beta Quality” book content is the next highest level. Content is still in development UNDER THE FOLLOWING CONDITIONS: until the next publishing. RELEASE: “Release Quality” book content Attribution. You must attribute the work is the highest level of quality in a book title’s in the manner specified by the author or lifecycle, and is a final product. licensor (but not in any way that suggests that they endorse you or your use of the work). Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under the same, similar or a compatible license. ALPHA BETA RELEASE The Open Web Application Security Project (OWASP) is a worldwide free and open com- munity focused on improving the security of application software. Our mission is to make application security “visible”, so that people and organizations can make informed decisions about application security risks. Every one is free to participate in OWASP and all of our materials are available under a free and open software license. The OWASP Foundation is a 501c3 not-for-profit charitable organization that ensures the ongoing availability and support for our work.
    [Show full text]
  • Countering Web Injection Attacks: a Proof of Concept
    Countering Web Injection Attacks: A Proof of Concept MSc Project Background Report Benjamin Hall Countering Web Injection Attacks: A Proof of Concept i Table of Contents Abstract ........................................................................................................................................... iii Introduction ...................................................................................................................................... 1 Why is the problem worth investigating? ....................................................................................... 1 Aims of the project ........................................................................................................................ 1 Project Background ........................................................................................................................... 2 Web Injections .............................................................................................................................. 2 Cross-Site Scripting (XSS) ............................................................................................................... 3 Non-Persistent ........................................................................................................................... 3 Persistent .................................................................................................................................. 3 DOM .........................................................................................................................................
    [Show full text]