|
From: Matthew G. <mat...@gm...> - 2008-09-25 13:36:40
|
I think a bug for this is a good idea. I know many moons ago I did
this, but lots of code has changed.
On Thu, 2008-09-25 at 09:32 -0400, Bishop Bettini wrote:
> Yeah, I missed the fact that $_name went through _addslashes() in the
> original email. I just now followed up with a trace verifying
> _addslashes() quotes properly.
>
> Nonetheless, I'd advise adding the incoming message as a bug, then
> marking it as not a bug, so we know this issue's been handled.
>
> bishop
>
> Quoting Matthew Gregg <mat...@gm...>:
>
> > Isn't $_name quoted? _addslashes does the quoting.
> >
> > if(get_magic_quotes_gpc()) {
> > function _addslashes($a)
> > { return(db_qstr(stripslashes($a))); }
> > function _stripslashes($a) { return(stripslashes($a)); }
> > } else {
> > function _addslashes($a) { return(db_qstr($a)); }
> > function _stripslashes($a) { return($a); }
> > }
> >
> > On Thu, 2008-09-25 at 09:24 -0400, Bishop Bettini wrote:
> >> Any parameters to an SQL query not going through the adodb quoting
> >> mechanism is vulnerable to SQL injection attacks. The proposed fix
> >> (just enclosing in single quotes) is itself insufficient, as single
> >> quotes can be fooled by prematurely closing the quote, inserting a
> >> statement, then restarting, as in:
> >>
> >> '; DELETE FROM respondent; '1=1
> >>
> >> So, the problem is legitimate, the fix is not. A bug (or task) should
> >> be added to tracker to go through all SQL commands and ensure all
> >> parameters are quoted, including this instance. Thoughts?
> >>
> >> bishop
> >>
> >>
> >> Quoting Matthew Gregg <mat...@gm...>:
> >>
> >> > I received the message below, but don't have time to do a thorough
> >> > investigation at the moment. A quick look, seem like this is not a
> >> > problem. Anyone with more time please take a look.
> >> >
> >> >> File: phpESP/public/survey.php
> >> >> Lines:
> >> >>
> >> >> 15 $_name = _addslashes($_GET['name']);
> >> >> 25 $_sql = "SELECT id,title,theme FROM
> >> >> ".$GLOBALS['ESPCONFIG']['survey_table']." WHERE name = $_name";
> >> >>
> >> >> Since the variable $_name is not embedded in quotes, the function
> >> >> addslashes will not prevent SQL injection attacks since the attacker
> >> >> does not
> >> >> need to use quotes.
> >> >>
> >> >> PoC:
> >> >> survey.php?name=1 and 1=0 union select null, username, password from
> >> >> designer
> >> >>
> >> >> Fix:
> >> >> 25 $_sql = "SELECT id,title,theme FROM
> >> >> ".$GLOBALS['ESPCONFIG']['survey_table']." WHERE name = '$_name'";
> >> >
> >> >
> >> > -------------------------------------------------------------------------
> >> > This SF.Net email is sponsored by the Moblin Your Move
> >> Developer's challenge
> >> > Build the coolest Linux based applications with Moblin SDK & win
> >> great prizes
> >> > Grand prize is a trip for two to an Open Source event anywhere in
> >> the world
> >> > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> >> > _______________________________________________
> >> > phpESP-devel mailing list
> >> > php...@li...
> >> > https://lists.sourceforge.net/lists/listinfo/phpesp-devel
> >> >
> >>
> >>
> >>
> >
> >
>
>
>
|