[VIM] Ig-shop change_pass.php XSS - 2 vectors
Stuart Moore
smoore at securityglobal.net
Tue Oct 31 17:26:28 EST 2006
Steve,
When we initially fired up the code, the 'action' parameter vector
didn't work as advertised but code inspection led us to the 'id'
parameter vector (I sort of "assumed" that is what the reporter meant to
report).
The $PHP_SELF variable returns the script name, but not the query
parameters (manual says: "The filename of the currently executing
script, relative to the document root"). So the 'action' parameter
shouldn't be a valid exploit vector.
But, it looks like you may be able to exploit via the 'email' parameter
when used in a POST request because of this line:
echo "<p align=center><BR><BR><BR><BR><font face='Verdana'
size='2'>The password has been successfully changed!</font></p><b><font
face='Verdana, Arial, Helvetica, sans-serif' size='2'><a
href='update_account.php?id=".$HTTP_POST_VARS[email]."'>Back to User
Details</a></b></font></p>";
I didn't test that part, however.
Stuart
Steven M. Christey wrote:
> There's a slightly confusing discrepancy in SECTRACK:1017130 and
> BID:20768, in which the description mentions the "id" parameter.
> However, the raw source, included verbatim in the SECTRACK, provides
> an exploit using the action parameter.
>
> I dug up the source code and figured out that both vectors are valid.
>
> In version 1.4 from sourceforge, dated 2003, change_pass.php has:
>
>> <input type="hidden" name="email" value="<?=$HTTP_GET_VARS['id']?>">
>
> So, that's the "id" vector.
>
> And, for $action we have:
>
> if($action=="1")
> {
> ...
> }
> else
> {
> ?>
> <form method="post" action="<?=$PHP_SELF?>" name="mem_change_form" onSubmit="return Validate();">
>
>
> So, as long as action is not "1", the query string is dumped into the
> form. This takes care of the action parameter, in the sense
> that it's not "1" and is part of the query string.
>
> I don't know what the original researcher's intention was with listing
> the Validate() function. It doesn't seem to contain any of that
> DOM-based XSS stuff, and it's only activated when the user presses
> Submit.
>
> There might be some other issues elsewhere in the code, such as where
> action is 1, but I didn't investigate further.
>
> - Steve
>
More information about the VIM
mailing list