2012-12-29 136 views
0

我在weblogic托管日志文件中遇到以下错误,无法跟踪客户端IP或URL的源。这看起来像是一些SQL注入正在服务器上发生,所以请提供详细信息以防止它并获得更多详细信息。安全:090759在weblogic管理日志中

<[ACTIVE] ExecuteThread: '14' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1355487016719> <BEA-000000> <[Security:090759]A SQLException occurred while retrieving password information 
java.sql.SQLException: [Security:090798]Invalid characters found in input @^[email protected]@o*.2,./2|pq{[email protected]('@lvo)&1,.1(.1.+(@./* 
     at weblogic.security.providers.authentication.shared.DBMSUtils.verifyInputCharactersName(DBMSUtils.java:338) 
     at weblogic.security.providers.authentication.shared.DBMSSQLRuntimeQueryImpl.executeUserPassword(DBMSSQLRuntimeQueryImpl.java:71) 
     at weblogic.security.providers.authentication.shared.DBMSAtnLoginModuleImpl.authenticateDBMS(DBMSAtnLoginModuleImpl.java:672) 
     at weblogic.security.providers.authentication.shared.DBMSAtnLoginModuleImpl.login(DBMSAtnLoginModuleImpl.java:271) 
     at com.bea.common.security.internal.service.LoginModuleWrapper$1.run(LoginModuleWrapper.java:110) 
     at com.bea.common.security.internal.service.LoginModuleWrapper.login(LoginModuleWrapper.java:106) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769) 
     at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186) 
     at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683) 
     at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) 
     at javax.security.auth.login.LoginContext.login(LoginContext.java:579) 
     at com.bea.common.security.internal.service.JAASLoginServiceImpl.login(JAASLoginServiceImpl.java:113) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at com.bea.common.security.internal.utils.Delegator$ProxyInvocationHandler.invoke(Delegator.java:57) 
     at $Proxy17.login(Unknown Source) 
     at weblogic.security.service.internal.WLSJAASLoginServiceImpl$ServiceImpl.login(Unknown Source) 
     at com.bea.common.security.internal.service.JAASAuthenticationServiceImpl.authenticate(JAASAuthenticationServiceImpl.java:82) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at com.bea.common.security.internal.utils.Delegator$ProxyInvocationHandler.invoke(Delegator.java:57) 
     at $Proxy37.authenticate(Unknown Source) 
     at weblogic.security.service.WLSJAASAuthenticationServiceWrapper.authenticate(Unknown Source) 
     at weblogic.security.service.PrincipalAuthenticator.authenticate(Unknown Source) 
     at weblogic.servlet.security.internal.SecurityModule.checkAuthenticate(SecurityModule.java:236) 
     at weblogic.servlet.security.internal.SecurityModule.checkAuthenticate(SecurityModule.java:185) 
     at weblogic.servlet.security.internal.BasicSecurityModule.checkUserPerm(BasicSecurityModule.java:75) 
     at weblogic.servlet.security.internal.SecurityModule.checkAccess(SecurityModule.java:106) 
     at weblogic.servlet.security.internal.ServletSecurityManager.checkAccess(ServletSecurityManager.java:82) 
     at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2122) 
     at weblogic.servlet.security.internal.AuthFilterChain$LastFilter.doFilter(AuthFilterChain.java:45) 
     at weblogic.servlet.security.internal.AuthFilterChain.doFilter(AuthFilterChain.java:37) 
     at com.bea.common.security.internal.service.SAMLSingleSignOnServiceImpl.callChain(SAMLSingleSignOnServiceImpl.java:416) 
     at com.bea.common.security.internal.service.SAMLSingleSignOnServiceImpl.doRedirectFilter(SAMLSingleSignOnServiceImpl.java:407) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at com.bea.common.security.internal.utils.Delegator$ProxyInvocationHandler.invoke(Delegator.java:57) 
     at $Proxy22.doRedirectFilter(Unknown Source) 
     at weblogic.security.providers.saml.SAMLServletAuthenticationFilter.doFilter(SAMLServletAuthenticationFilter.java:101) 
     at weblogic.servlet.security.internal.AuthFilterChain.doFilter(AuthFilterChain.java:37) 
     at weblogic.servlet.security.internal.SecurityModule$ServletAuthenticationFilterAction.run(SecurityModule.java:612) 
     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
     at weblogic.security.service.SecurityManager.runAs(Unknown Source) 
     at weblogic.servlet.security.internal.SecurityModule.invokeAuthFilterChain(SecurityModule.java:501) 
     at weblogic.servlet.security.internal.BasicSecurityModule.handleFailure(BasicSecurityModule.java:114) 
     at weblogic.servlet.security.internal.BasicSecurityModule.checkUserPerm(BasicSecurityModule.java:80) 
     at weblogic.servlet.security.internal.SecurityModule.checkAccess(SecurityModule.java:106) 
     at weblogic.servlet.security.internal.ServletSecurityManager.checkAccess(ServletSecurityManager.java:82) 
     at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2122) 
     at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2092) 
     at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406) 
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) 
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)     
+0

是否有任何好友有关于此问题的详细信息修复 – user1936351

回答

1

这是weblogic验证userid输入作为其登录实现的一部分。我相信Oracle的OID不允许在userids中使用撇号。也许有人只是用经典的键盘粉碎来测试你的网站,并且恰巧以这样的方式粉碎了这些键,为用户ID输入了一个撇号。

看来Weblogic正在检查输入的用户输入是否包含'invalid'字符,这意味着用userID进行sql注入攻击。但是我的理解是,他们使用的是PreparedStatement,它使验证字符的输入有点奇怪。这可能只是在后端LDAP中产生有效用户标识的限制。

在你的情况下,用户输入以下内容:

@^[email protected]@o*.2,./2|pq{[email protected]('@lvo)&1,.1(.1.+(@./* 

大多数这个答案是基于这个forum discussion

我没有检查metalink.oracle.com,但没有找到在论坛上列出的SR。

+0

我检查了http://support.oracle.com并找不到所述的SR。我已经提出SR 3-9315751581。 – mrswadge