Advisory: eXpBlog <= 0.3.5 Cross Site Scripting Vulnerabilities
  Release Date: 10/09/2006
 Last Modified: 10/09/2006
        Author: Tamriel [tamriel <at> gmx <dot> net]
   Application: eXpBlog <= 0.3.5
          Risk: Low
 Vendor Status: contaced | replied
   Vendor Site: www.expblog.de


 Overview:

   Quote from www.expblog.de:

   "Das eXpBlog ist eine beliebte Freeware weBlog Software basierend
    auf PHP und mySQL. Mit einem eXpBlog verfuegen Sie ueber ein 
    flexibles und schnelles Mehrbenutzer-weBlog welches durch ein 
    Plugin-System komfortabel erweiterbar ist."

   There are some cross site scripting vulnerabilities which can 
   be exploited by malicious people to conduct script insertion attacks.

   The vulnerability has been discovered in the latest version. Other 
   versions may also be affected.


 Details:
 
   1) Cross Site Scripting Vulnerability in kalender.php

      Arround the lines 130-140 the variable `$_SERVER['PHP_SELF']` is 
      not properly sanitised before being used. This can be exploited 
      to insert arbitrary HTML and script code, which is executed in a 
      user's browser session in context of an affected site when the 
      malicious data is viewed.

   2) Cross Site Scripting Vulnerability in pre_details.php

      Arround the lines 15-20 the variable 
      `$_POST["captcha_session_code"]` is not properly sanitised before
      being used. This variable is used in the details.php arround 
      line 152, here an attacker can insert malicious code. The 
      captcha class may be affected too, because you can let it open a
      special file (captcha_class.php, arround line 140).


 Proof of Concept:

   1) details.php/%3E%22%3E%3Cscript%3Ealert('Unsecure')%3C/script%3E

   2) comment=1&captcha_session_code=>"><script>alert('hole')</script>...


 Solution/Fix:

      Edit the source code to ensure that input is properly sanitised.
      Use functions like PHP`s htmlentities() function.

 Disclosure Timeline:

      10/03/2006 - Discovery of the vulnerabilities
      10/03/2006 - Contacted the vendor
      10/04/2006 - Vendor reponse
      10/09/2006 - Supplied bugfix to the official forum
      10/09/2006 - Public disclosure