[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

HTB23008: Multiple XSS & CSRF (Cross-Site Request Forgery) in miniblog



Vulnerability ID: HTB23008
Reference: http://www.htbridge.ch/advisory/multiple_xss_in_miniblog.html
Product: miniblog
Vendor: spyka Web Group ( http://www.spyka.net ) 
Vulnerable Version: 1.0.0 and probably prior
Tested on: 1.0.0
Vendor Notification: 25 May 2011 
Vulnerability Type: XSS (Cross Site Scripting) , CSRF (Cross-Site Request Forgery)
Risk level: Medium 
Credit: High-Tech Bridge SA Security Research Lab ( http://www.htbridge.ch/advisory/ ) 

Vulnerability Details:
High-Tech Bridge SA Security Research Lab has discovered multiple vulnerabilities in miniblog, which can be exploited to perform cross-site scripting & cross-site request forgery attacks.

1) Input passed via the GET "post_list" parameter to /adm/list.php is not properly sanitised before being returned to the user. 
This can be exploited to execute arbitrary HTML and script code in a user's browser session in context of affected website.

The following PoC code is available:

http://[host]/adm/list.php?post_list=%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E

Successful exploitation of the vulnerabilities requires that "register_globals" is enabled.

2) Input passed via the GET "error_text" parameter to /adm/login.php is not properly sanitised before being returned to the user. 
This can be exploited to execute arbitrary HTML and script code in a user's browser session in context of affected website.

The following PoC code is available

http://[host]/adm/login.php?error_text=%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E

Successful exploitation of the vulnerabilities requires that "register_globals" is enabled.

3) Input passed via the GET "response_text" parameter to /adm/options.php is not properly sanitised before being returned to the user. 
This can be exploited to execute arbitrary HTML and script code in a user's browser session in context of affected website.

The following PoC code is available

http://[host]/adm/options.php?response_text=%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E

Successful exploitation of the vulnerabilities requires that "register_globals" is enabled.

4) Input passed via the GET "response_text" parameter to /adm/password.php is not properly sanitised before being returned to the user. 
This can be exploited to execute arbitrary HTML and script code in a user's browser session in context of affected website.

The following PoC code is available

http://[host]/adm/password.php?response_text=%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E

Successful exploitation of the vulnerabilities requires that "register_globals" is enabled.

5) Input passed via the GET "response_text" and GET "mode" parameters to /adm/edit.php is not properly sanitised before being returned to the user. 
This can be exploited to execute arbitrary HTML and script code in a user'sbrowser session in context of affected website.

The following PoC code is available

http://[host]/adm/edit.php?response_text=%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E
http://[host]/adm/edit.php?mode=%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E

Successful exploitation of the vulnerabilities requires that "register_globals" is enabled.

6) The application allows users to perform certain actions via HTTP requests without making proper validity checks to verify the requests. 
This can be exploited to e.g. add new post to the application or conduct script insertion attacks by tricking an administrator into visiting a malicious web site while being logged-in to the application.

The following PoC code is available:


<form action="http://[host]/adm/admin.php?mode=add&id="; method="post">
<input type="hidden" name="data[post_title]" value="csrf">
<input type="hidden" name="data[post_content]" value="csrf">
<input type="hidden" name="data[published]" value="1">
<input type="hidden" name="miniblog_PostBack" value="Add">
<input type="submit" id="btn"> 
</form>
<script>
document.getElementById('btn').click();
</script>