You are here

Testing for XSS

The concept of XSS has been around for a few decades now. To this day, it is one of the most often occurring security vulnerabilities found on websites. Have you ever wondered why?

For one, the umbrella term XSS does not actually describe the issue. An "On-Site HTML injection" is usually still referred to as "Cross-Site Scripting". Never mind the fact that there is no "Cross-Site" or "Scripting" element to the actual vulnerability.

XSS can be found in a number of different technologies: HTML, JavaScript, CSS, or insert-your-plain-text-syntax-here. A developer easily obtains the mindset of "I know my HTML and I know my JavaScript". But do they really? They never think that, in fact, they only know the pieces of the language that they have used themselves. In other words, you usually don't know about the other pieces of a language that you have never used so far. 

HTML and JavaScript do not seem particularly complicated by themselves. The complexity usually arrives when they are used in combination for the development of a website. Add on top of that the behaviours of different browsers and any other "unforeseen surprises" that tend to appear when a human component is added to the mix.

XSS attacks come in different flavours: Reflected, Stored, DOM. It is often talked about as "Self-XSS" or in other words- attacking yourself. Developers tend to rely on the in-built defenses of browsers. This is why the consequences can be under-estimated. 

During this one day tutorial we will learn how to test for XSS vulnerabilities step-by-step and case-by-case. We will also learn to assess the validity of the implementation (even if there is no apparent vulnerability). All this will be achieved by preparing and launching Proof-of-Concept attacks against a test environment.