[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <45125DFB.70308@cyanox.nl>
Date: Thu, 21 Sep 2006 11:40:11 +0200
From: mark <mark@...nox.nl>
To: gmdarkfig@...il.com
Cc: bugtraq@...urityfocus.com
Subject: Re: mysql_error() can lead to Cross Site Scripting attacks
Seems to me like this is not really exploitable.
1. The database is almost never given by user input.
2. With proper output escaping this kind of attack is thwarted.
3. Outputting SQL errors on public websites is most likely worse then
this potential exploit.
4. Since when do the PHP functions escape their output for HTML?
If you can call this an exploit it will most likely never be fixed.
Besides that ... the title of this mail should have been "echo() can
lead to Cross Site Scripting attacks".
Greetings,
Mark Sanders.
gmdarkfig@...il.com wrote:
> mysql_error() can lead to Cross Site Scripting attacks ========================================================
> Affected.scr..: PHP4 <= 4.4.4 PHP5 <= 5.1.6
> Advisory.ID...: 11060920
> Risk.level....: Low
> Vendor.Status.: Patched
> Src.download..: http://www.php.net/
> Adv.link......: acid-root.new.fr/advisories/11060920.txt
> ========================================================
>
>
> ==[ OVERVIEW
> ============
> PHP: Hypertext Preprocessor is an open source server side
> programming language extensively used for web scripts and to
> process data passed via the Common Gateway Interface from
> HTML forms etc. PHP can be written as scripts that reside on
> the server and may produce HTML output that downloads to the
> web browser. Alternatively, PHP can be embedded within HTML
> pages that are then saved with a .php file extension. The PHP
> sections of the page are then parsed by the PHP engine on the
> server and the PHP code stripped out before the page is
> downloaded to the web browser. The name is a bit of a
> programming joke (if there is sucha thing) since it's a
> recursive acronym i.e. the P in PHP stands for PHP.
>
>
> ==[ DETAILS
> ===========
> The goal of the mysql_error() function is to return the error
> text from the last MySQL function. This function can lead to
> Cross Site Scripting attacks. To conduct this attack, some
> parameters are required. If an mysql function use a bad parameter
> provided by the attacker and if the mysql_error() result is
> returned to the user, this can be exploited to conduct Cross
> Site Scripting attack. This can be useful if the attacker has
> a restricted access to an mysql function.
>
>
> ==[ POC/EXPLOIT
> ===============
> <?php //?db=<script>alert(666)</script>
> $link = mysql_connect("localhost", "root", "");
> mysql_select_db($db, $link);
> echo mysql_errno($link) . ": " . mysql_error($link). "\n";
> ?>
>
>
> ==[ LINKS
> =========
> Mysql functions list.: http://www.php.net/manual/en/ref.mysql.php
> Discussion on php.net: http://bugs.php.net/bug.php?id=38733&edit=2
>
>
> ==[ SOLUTION
> ============
> No response from PHP Team.
>
>
> ==[ TIMELINE
> ============
> 06. Sept. 2006 - Vendor contacted
> 20. Sept. 2006 - Public disclosure
>
>
> ==[ CONTACT
> ===========
> Author: DarkFig
> Web...: www.acid-root.new.fr
> E-mail: gmdarkfig[*]gmail[*]com (fr/en)
>
> Note: Tested on 4.4.3
>
>
>
Powered by blists - more mailing lists