what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

mantis-poc.txt

mantis-poc.txt
Posted Sep 29, 2005
Authored by Joxean Koret

Mantis Bugtracker versions less than 1.0.0RC2 and greater than 0.18.3 are vulnerable to XSS and variable poisoning attacks if register_globals is enabled.

tags | exploit
SHA-256 | 85dcfcb51f4250c4f8e9ac0aa699db2ed494373073674e22eaf7e532476d42ed

mantis-poc.txt

Change Mirror Download
---------------------------------------------------------------------------
Mantis Bugtracker - Remote Database Scanner and
XSS Vulnerabilities
---------------------------------------------------------------------------

Author: Jose Antonio Coret (Joxean Koret)
Date: 2005
Location: Basque Country

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

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

Mantis Bugtracker - Mantis is a php/MySQL/web based
bugtracking system

Affected versions:

+ 1.0.0a3
+ 1.0.0a2
+ 1.0.0a1
+ 0.19.2
+ 0.19.1
+ 0.19.0
+ 0.19.0RC1
+ 0.19.0a2
+ 0.19.0a1

Partially affected versions:

+ 1.0.0RC1 (A2 Cross Site Scripting Vulnerability)

Not affected versions:

+ 1.0.0RC2
+ 0.18.3 and prior versions

Web : http://mantisbt.sourceforge.net

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

Vulnerabilities Summary
~~~~~~~~~~~~~~~~~~~~~~~

A - Cross Site Scripting Vulnerabilities
A1.- Parameter 'dir' of the script "/view_all_set.php"
is vulnerable to XSS attacks
A2.- XSS in /bug_actiongroup_page.php when deleting a
bug from the /view_all_bug_page.php
B.- Database scanner via variable poisoning in
/core/database_api.php script

Vulnerabilities
~~~~~~~~~~~~~~~

A - Cross Site Scripting Vulnerabilities
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A1.- Parameter 'dir' of the script "/view_all_set.php"
is vulnerable to XSS attacks
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The parameter 'dir' of the /view_all_set.php script is
not correctly sanitize
and is vulnerable to XSS attacks.

The following is a sample url to check the problem:


http://[target]/view_all_set.php?sort=severity&dir="><script>alert(document.cookie)</script>&type=2

This bug is addressed as #0005959 in the MantisBT bug
database.

A1.- XSS in /bug_actiongroup_page.php when deleting a
bug from the /view_all_bug_page.php
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A Cross Site Scripting Vulnerability was found in the
script /bug_actiongroup_page.php when deleting a bug
from the /view_all_bug_page.php.

To reproduce behaviour follow these steps:

1.- Report a bug with the following summary:
Test<script>alert(document.cookie)</script>
2.- Enter as administrator and find the bug in
/view_all_bug_page.php script
3.- Select the checkbox correspondient to this bug
and DELETE in the drop down bellow.
4.- Press OK.
5.- In the /bug_actiongroup_page.php you will see the
bug to delete and also a wonderfull
javascript alert.

This bug may be considered as non exploitable but it
is exploitable. If you registers only one bug is
possible that the administrator do not selects for
deletion it from the /view_all_bug_page.php but, what
about if you registers 15 messages? The administrator
surely will delete all the bugs by selecting all
the bugs from the /view_all_bug_page.php.

This bug is addressed as #0006002 in the MantisBT bug
database.

B.- Database scanner via variable poisoning in
/core/database_api.php script
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

If the 'register_globals' directive is enabled the
script located at /core/database_api.php
is vulnerable to variable poisoning attacks.

By exploiting the vulnerability an attacker can
connect to databases that are in the web server LAN.

To reproduce the behavior simply navigate to any of
these urls:

http://[target]/core/database_api.php?g_db_type=mysql://invaliduser@localhost:3336
[^]

http://[target]/core/database_api.php?g_db_type=mysql://root@localhost:3336
[^]

http://[target]/core/database_api.php?g_db_type=informix://localhost:8080
[^]

Due to this vulnerability an attacker can write a
database scanner or a network scanner by simply
changing the hostname and port and parsing the
responses.

Examples:
1.-
http://[target]/core/database_api.php?g_db_type=mysql://root@localhost
[^]
(Fast response)

2.-
http://[target]/core/database_api.php?g_db_type=mysql://root@192.168.1.1
[^]
(No response in about 30 seconds)

3.-
http://[target]/core/database_api.php?g_db_type=mysql://root@10.x.y.z
[^]
(Response in about 3 seconds)

A remote user can supply a specially crafted URL to
scan arbitrary ports on arbitrary
hosts using a URL with the following form:


http://[target]/core/database_api.php?g_db_type=<database
type>://<hostname>:<port>

Based on the Response Time and the Response returned
by MantisBT, the remote user can
determine whether the specified port on the specified
host is open or closed. As a consecuence,
a remote user can invoke MantisBT to scan arbitrary
ports on arbitrary hosts.

This bug is addressed as #0005956 in the MantisBT bug
database.

Notes about issue #0005956
~~~~~~~~~~~~~~~~~~~~~~~~~~

1.- This vulnerability doesn't allow an attacker to
run SQL commands against the database.

2.- Not all sites running Mantis Bugtracker are
vulnerables. This only works if the 'register_globals'

directive is On. If you're unsure if your site is
vulnerable you can try the provided exploit,
called 'exploit.py'.

Workarounds:
~~~~~~~~~~~~

There is no known workaround for the #0005959 and
#0006002 issues.

For #0005956 issue you only need to DISABLE the f* PHP
directive 'register_globals'.

Patches:
~~~~~~~~

The followings are patches that solves the #0005956,
#0005959 and #0006002 issues.


Patch for issue #0005959

-----------------------------------------------------------------------------------------------------------------------
--- filter_api.orig 2005-07-18 17:07:03.000000000
+0200
+++ filter_api.php 2005-07-18 17:06:15.000000000 +0200
@@ -753,7 +753,7 @@
?>

<br />
- <form method="post" name="filters" action="<?php
PRINT $t_action; ?>">
+ <form method="post" name="filters" action="<?php
PRINT htmlentities($t_action); ?>">
<input type="hidden" name="type" value="5" />
<?php
if ( $p_for_screen == false ) {
@@ -761,10 +761,10 @@
PRINT '<input type="hidden" name="offset"
value="0" />';
}
?>
- <input type="hidden" name="sort" value="<?php PRINT
$t_sort ?>" />
- <input type="hidden" name="dir" value="<?php PRINT
$t_dir ?>" />
- <input type="hidden" name="page_number"
value="<?php PRINT $p_page_number ?>" />
- <input type="hidden" name="view_type" value="<?php
PRINT $t_view_type ?>" />
+ <input type="hidden" name="sort" value="<?php PRINT
htmlentities($t_sort) ?>" />
+ <input type="hidden" name="dir" value="<?php PRINT
htmlentities($t_dir) ?>" />
+ <input type="hidden" name="page_number"
value="<?php PRINT htmlentities($p_page_number) ?>" />
+ <input type="hidden" name="view_type" value="<?php
PRINT htmlentities($t_view_type) ?>" />
<table class="width100" cellspacing="1">

<?php
-----------------------------------------------------------------------------------------------------------------------

Patch for issue #0005956

-----------------------------------------------------------------------------------------------------------------------
--- database_api.orig 2005-07-18 16:43:36.000000000
+0200
+++ database_api.php 2005-07-18 16:49:43.000000000
+0200
@@ -9,6 +9,13 @@
# $Id: database_api.php,v 1.42 2005/02/26
15:16:46 thraxisp Exp $
#
--------------------------------------------------------

+ #
+ # Patch for #0005956: Database system scanner via
variable poisoning
+ #
+
+ if ((isset($_GET["g_db_type"])) ||
(isset($_POST["g_db_type"])))
+ die("");
+
### Database ###

# This is the general interface for all
database calls.
-----------------------------------------------------------------------------------------------------------------------

Patch for issue #0006002

-----------------------------------------------------------------------------------------------------------------------
--- bug_actiongroup_page.orig 2005-07-24
04:14:11.000000000 +0200
+++ bug_actiongroup_page.php 2005-07-24
04:13:31.000000000 +0200
@@ -114,7 +114,7 @@
foreach( $f_bug_arr as $t_bug_id ) {
$t_class = sprintf( "row-%d", ($t_i++ % 2) + 1 );
$t_bug_rows .= sprintf( "<tr bgcolor=\"%s\">
<td>%s</td> <td>%s</td> </tr>\n"
- , get_status_color( bug_get_field( $t_bug_id,
'status' ) ), string_get_bug_view_link( $t_bug_id ),
bug_get_field( $t_bug_id, 'summary' )
+ , get_status_color( bug_get_field( $t_bug_id,
'status' ) ), string_get_bug_view_link( $t_bug_id ),
htmlentities(bug_get_field( $t_bug_id, 'summary' ))
);
echo '<input type="hidden" name="bug_arr[]" value="'
. $t_bug_id . '" />' . "\n";
}
-----------------------------------------------------------------------------------------------------------------------

The fix:
~~~~~~~~

Issues #0005956 and #0005959 are correcteds in version
1.0.0RC1.
Alternatively, you can use the attacheds non-official
patches.

How to apply the patches:
~~~~~~~~~~~~~~~~~~~~~~~~~

To apply the patches follow these steps:

1.- Download (or copy/paste) the patch (or patches)
that you need (i.e.: 0005956.patch).
2.- Copy the patch to your local '<mantis_dir>/core/'
directory. (i.e.: in my
Debian Sarge distribution this is located under
/usr/local/mantis/gui/core).
3.- Execute the following command:

$ patch -p0 < 0005956.patch

After applying the patch:
~~~~~~~~~~~~~~~~~~~~~~~~~

If you have been applied the patch and you're not sure
if your system is vulnerable
or not, you can run the attached exploit called
(originally...) 'exploit.py' and
follow the instructions.

NOTE: This exploit only probes the issue #0005956.

Notes
~~~~~

Thanks to Victor Boctor, and all the Mantis Bugtracker
guys. The were very kind and
proffessionals.

Disclaimer:
~~~~~~~~~~~

The information in this advisory and any of its
demonstrations is provided
"as is" without any warranty of any kind.

I am not liable for any direct or indirect damages
caused as a result of
using the information or demonstrations provided in
any part of this
advisory.

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

Contact:
~~~~~~~~

Joxean Koret at joxeanpiti<<<<<<<<@>>>>>>>>yah00<<<<<<dot>>>>>es





______________________________________________
Renovamos el Correo Yahoo!
Nuevos servicios, más seguridad
http://correo.yahoo.es
Login or Register to add favorites

File Archive:

April 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Apr 1st
    10 Files
  • 2
    Apr 2nd
    26 Files
  • 3
    Apr 3rd
    40 Files
  • 4
    Apr 4th
    6 Files
  • 5
    Apr 5th
    26 Files
  • 6
    Apr 6th
    0 Files
  • 7
    Apr 7th
    0 Files
  • 8
    Apr 8th
    22 Files
  • 9
    Apr 9th
    14 Files
  • 10
    Apr 10th
    10 Files
  • 11
    Apr 11th
    13 Files
  • 12
    Apr 12th
    14 Files
  • 13
    Apr 13th
    0 Files
  • 14
    Apr 14th
    0 Files
  • 15
    Apr 15th
    30 Files
  • 16
    Apr 16th
    10 Files
  • 17
    Apr 17th
    22 Files
  • 18
    Apr 18th
    45 Files
  • 19
    Apr 19th
    8 Files
  • 20
    Apr 20th
    0 Files
  • 21
    Apr 21st
    0 Files
  • 22
    Apr 22nd
    11 Files
  • 23
    Apr 23rd
    68 Files
  • 24
    Apr 24th
    23 Files
  • 25
    Apr 25th
    0 Files
  • 26
    Apr 26th
    0 Files
  • 27
    Apr 27th
    0 Files
  • 28
    Apr 28th
    0 Files
  • 29
    Apr 29th
    0 Files
  • 30
    Apr 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close