Java 安全性:weblogic托管日志中的090759

Java 安全性:weblogic托管日志中的090759,java,sql,sqlexception,Java,Sql,Sqlexception,我在weblogic管理的日志文件中遇到以下错误,无法跟踪客户端IP或URL的来源。看起来有些SQL注入正在服务器上发生,所以请提供详细信息以防止它,并获取更多有关它的详细信息 <[ACTIVE] ExecuteThread: '14' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1355487016719> <BE

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

<[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 @^Y@.@o*.2,./2|pq{jvk@-1('@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)                 

这是weblogic验证用户ID输入作为其登录实现的一部分。我相信Oracle的OID不允许在用户ID中使用撇号。也许有人只是简单地用经典的键盘扣杀来测试你的网站,碰巧扣杀键的方式是在用户ID中输入一个撇号

Weblogic似乎正在检查输入的用户输入是否包含“无效”字符,这可能意味着使用用户ID进行sql注入攻击。但据我所知,他们使用的是s,这使得验证字符输入有点奇怪。这很可能只是一个约束,限制了如何在后端LDAP中创建有效的用户ID

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

@^Y@.@o*.2,./2|pq{jvk@-1('@lvo)&1,.1(.1.+(@./*
这个答案大部分是基于这个


我确实查看了metalink.oracle.com,但没有找到论坛中列出的SR。

是否有任何好友需要修复此问题的详细信息我检查了,也没有找到提到的SR。我已提出SR 3-931575181。