arrow-left

All pages
gitbookPowered by GitBook
1 of 3

Loading...

Loading...

Loading...

Cross Site Scripting - Attribute (XSS-Attribute)

Python - XSS-Attribute

hashtag
Running the app on Docker

circle-check

Now that the app is running let's go hacking!

hashtag
Reconnaissance

hashtag
Step 1

The application shows an input fields that allows the user to change the color of the text shown in the page.

If we want to make it red, we can just write red in the input box and click the Submit Button.

and it is not escaped so it should be possible to perform a Cross Site Scripting (XSS) injection.

hashtag
Exploitation

hashtag
Step 1

Now we have seen where the user input is being reflected in the style, we will have to look what dangerous HTML characters are not properly escaped, when the developer used the right encoding the metacharacters like " >< will be properly encoded. So we need to form a payload that does not utilize these characters in order to make the attack successful like the following payload:

note: we disabled auto-escape for the challenge but in order to do it well you need to avoid using the " > < to leverage the attack

Now, hovering over the paragraph will trigger our javascript event handler!

hashtag
Additional sources

Please refer to the OWASP testing guide for a full complete description about path traversal with all the edge cases over different platforms!

$ sudo docker pull blabla1337/owasp-skf-lab:xss-attribute
$ sudo docker run -ti -p 127.0.0.1:5000:5000 blabla1337/owasp-skf-lab:xss-attribute
<center> <p style="font-size:2em;"> 

<div data-gb-custom-block data-tag="autoescape" data-0='false'><span style='color:{{xss}};' > Let me be a new color!</span></div>

</p></center>
red ' onmouseover='alert("XSS-Attribute")'

NodeJS - XSS-Attribute

hashtag
Running the app on Docker

circle-check

Now that the app is running let's go hacking!

hashtag
Reconnaissance

hashtag
Step 1

The application shows an input fields that allows the user to change the color of the text shown in the page.

If we want to make it red, we can just write red in the input box and click the Submit Button.

It's not escaped, so it should be possible to perform a Cross Site Scripting (XSS) injection.

hashtag
Exploitation

hashtag
Step 1

Now we have seen where the user input is being reflected in the style, we will have to look what dangerous HTML characters are not properly escaped, when the developer used the right encoding the metacharacters like " >< will be properly encoded. So we need to form a payload that does not utilize these characters in order to make the attack successful like the following payload:

note: we disabled auto-escape for the challenge but in order to do it well you need to avoid using the " > < to leverage the attack

Now, hovering over the paragraph will trigger our javascript event handler!

hashtag
Additional sources

Please refer to the OWASP testing guide for a full complete description about cross site scripting!

$ sudo docker pull blabla1337/owasp-skf-lab:js-xss-attribute
$ sudo docker run -ti -p 127.0.0.1:5000:5000 blabla1337/owasp-skf-lab:js-xss-attribute
<center> <p style="font-size:2em;"><span style='color: <%- xss %>' > Let me be a new color!</span></p></center>
red ' onmouseover='alert(1337)'
https://www.owasp.org/index.php/Testing_for_Reflected_Cross_site_scripting_(OTG-INPVAL-001)www.owasp.orgchevron-right
EJS -- Embedded JavaScript templatesejs.cochevron-right
Logo
https://owasp.org/www-community/attacks/XSS-attribute/owasp.orgchevron-right