0

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)                 
4

1 に答える 1

1

これは、ログイン実装の一部としてユーザー ID 入力を検証する weblogic です。Oracle の OID では、ユーザー ID にアポストロフィを使用できないと思います。おそらく、誰かがあなたのサイトを従来のキーボード クラッシュでテストしていたのに、ユーザー ID にアポストロフィが入力されるような方法でたまたまキーをクラッシュしてしまったのでしょう。

Weblogic は、入力されたユーザー入力に、userID による SQL インジェクション攻撃を意味する「無効な」文字が含まれているかどうかをチェックしているようです。しかし、文字の入力の検証を少し奇妙にするPreparedStatementを使用していることを私の理解しています。バックエンドの LDAP で有効なユーザー ID を作成するための制約にすぎない可能性があります。

あなたの場合、ユーザーは次のように入力しました:

@^Y@.@o*.2,./2|pq{jvk@-1('@lvo)&1,.1(.1.+(@./*

この回答のほとんどは、このフォーラムのディスカッションに基づいています。

metalink.oracle.com を確認しましたが、SR がフォーラムにリストされていませんでした。

于 2013-08-08T19:43:01.777 に答える