MicroGuestBook Remote XSS Attack

2006.07.27
Credit: omnipresent
Risk: Low
Local: No
Remote: Yes
CWE: CWE-79


CVSS Base Score: 4.3/10
Impact Subscore: 2.9/10
Exploitability Subscore: 8.6/10
Exploit range: Remote
Attack complexity: Medium
Authentication: No required
Confidentiality impact: None
Integrity impact: Partial
Availability impact: None

.:. MicroGuestBook Remote XSS Bug .:. Date: ----- July 2006, 22 Product: -------- MicroGuestBook Latest Version Vendor: ------- http://www.phptoys.com Description: ------------ Micro guestbook is a MySQL based guestbook script with a CSS based attractive interface. It can store the name, date, message, location, web and email information of the visitor. Exploit(s)/Advisory(ies): ------------------------- The application is vulnerable to a Remote XSS Bug. The field 'name' and 'comment' are not properly sanitized before being used, so a malicious people can exploit this vulnerability to inject arbitrary HTML and script code. If you look the code in add.php you can see: [...] if (isset($_POST['submitBtn'])) { $name = (isset($_POST['name'])) ? $_POST['name'] : '' ; $comment = (isset($_POST['comment'])) ? $_POST['comment'] : '' ; $location = (isset($_POST['location'])) ? $_POST['location'] : '' ; $website = (isset($_POST['website'])) ? $_POST['website'] : '' ; $email = (isset($_POST['email'])) ? $_POST['email'] : '' ; $actDate = date("Y-m-d H:i:s"); //Minimum name and comment length. if ((strlen($name) > 2) && (strlen($comment) > 5)){ $sql = "INSERT INTO guestbook (name,text,insertdate,location,web,email) VALUES ("; $sql .= "'".$name."','".$comment."','".$actDate."','".$location."','".$website." ','".$email."')"; $MyDb->f_ExecuteSql($sql); [...] And in index.php you will see: [...] <div id="name"><?php echo $row['name']; ?></div> <div id="info"> <div id="infoicons"> <?php if (strlen($row['web']) > 5) echo '<a href="http://'.$row['web'].'"><img src="style/www.gif"></a>'; if (strlen($row['email']) > 5) echo '<a href="mailto:'.$row['email'].'"><img src="style/mail.gif"></a>'; ?> </div> <div id="infodate"><?php echo $row['insertdate']; ?></div> </div> </div> <div id="base"> <div id="icon"><?php echo $row['location']; ?></div> <div id="text"><?php echo nl2br($row['text']); ?></div> [...] PoC(s): ------- You can put your own HTML or script code in the field name or comment. Try: <script>alert("XSS")</script> Vendor Status: -------------- [July 2006, 22] Vendor contacted! Patches: -------- [July 2006, 22] At the moment there is no patch available from the vendor. You can take a look at this site if a patch will be posted up: http://www.phptoys.com If you don't wanna wait, edit the source code to ensure that input is properly sanitised. Credits: -------- omnipresent omnipresent[at]email[dot]it http://it.security.netsons.org


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top