RE: [LBYTE] Ruslan Communications <BODY>Builder SQL modification

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I am unfamiliar with <Body>Builder (and their site is in Russian so I can't
find a link), but in normal java web development pages named *_jsp.java are
generated java code from .jsp files. 

The name of the *_jsp.java files is non-standard and varies between servlet
engine implementations. The behaviour of the servlet engine when these files
are modified is also non-standard (Some will recompile the file to pickup
the changes, but others - eg Tomcat 3.2 - will not). 

The recommended fix should be implemented in the .jsp files (if available -
they are sometimes shipped inside a .war file), not the .java files. Of
course, if the *.jsp files are unavailable then this may the best possible
work-around.

Regards,
  Nick Lothian


> -----Original Message-----
> From: Alexander Korchagin [mailto:akor@tsaritsyno.ru]
> Sent: Friday, 14 June 2002 1:17 AM
> To: bugtraq@securityfocus.com
> Subject: [LBYTE] Ruslan Communications <BODY>Builder SQL modification
> 
> 
> 
> Original reference: 
> http://www.security.nnov.ru/search/news.asp?binid=2092
> 
> Title:          <BODY>Builder SQL modification
> Author:         mam0nt of Limpid Byte http://lbyte.void.ru/
> Vendor:         Ruslan Communications
> Vendor URL:     http://ruslan-com.ru/
> Vendor Status:  Contacted, not replied
> Released:       June, 13 2002
> 
> Background:
> 
>  <Body>Builder  is  a  site  building  engine  by  Ruslan 
> Communications
>  written  in  Java.  It has administrative access via 
> http://site/Admin.
>  All accounts are stored in database and accessed via SQL.
> 
> Problem:
> 
>  Leak  of  input  validation  from server side allows user to 
> modify SQL
>  request  during authentication. It may be used to access 
> administrative
>  interface without password or to run any SQL request on backend.
> 
> Exploitation:
> 
>  Use login='-- and pass='--
> 
> Solution:
> 
>  Edit _login__jsp.java:
> 
>           -- cut --
>           java.lang.String _jspParam;
>           _jspParam = request.getParameter("username");
>           if (_jspParam != null && ! _jspParam.equals("") && 
> _checkvalue(_jspParam) )
>            Log.setUsername(_jspParam);
>           _jspParam = request.getParameter("password");
>           if (_jspParam != null && ! _jspParam.equals("") && 
> _checkvalue(_jspParam) )
>            Log.setPassword(_jspParam);
>           --cut--
> 
>  Add new function called _checkvalue
> 
>           public static boolean _checkvalue(java.lang.String _value)
>           {
>            int count;
>            char temp;
>            for (count=0;count<_value.length();count++)
>            {
>             temp=_value.charAt(count);
>             if (temp=='\'' ) return false;
>            }
>             return true;
>           }
>                 
> Vendor:
> 
>  Vendor notified via e-mail without feedback.
> 

[Index of Archives]     [Linux Security]     [Netfilter]     [PHP]     [Yosemite News]     [Linux Kernel]

  Powered by Linux