Smartbi 認証バイパスの脆弱性

組み込みのアカウントとパスワードを使用してログインします

自分で構築した環境にはいくつか問題があるため、バージョンが高すぎるためかもしれません(奇妙な問題、ユーザーに権限がない)ので、現在は概念的な検証と脆弱性の原理の分析のみを行っています

ログインせずに/smartbi/vision/RMIServletインターフェース

画像

画像

対応する処理CheckIsLoggedFilterクラスが

smartbi.freequery.filter.CheckIsLoggedFilter#doFilter

画像ここからはさらに詳細な分析が必要になる場合がありますが、まずリクエストのパスが「Yesの場合は/vision/RMIServletこのブランチに入る」かどうかを判断し、次にwindowUnloadingリクエストボディに「で始まる文字列があるかどうか」を判断します。別のバイパス方法 関連します。ここでは分析しません

画像次に、POST メソッドまたは GET メソッドで取得したパラメータがあるかどうかを順に確認し、ないclassName場合はmethodName

画像

ここで判定があり、クラスやメソッドに対して認証操作を行い、trueであれば引き続きログインするかどうかの判定を行い、要件を満たしてfalseを返せばよいだけですFilterUtil.needToCheck

smartbi.util.FilterUtil#needToCheck

画像データベースからログインする操作も認証なしでアクセスできることに気づきました。

smartbi.usermanager.UserManagerModule

画像

smartbi.usermanager.UserManagerModule#loginFromDB

画像

smartbi.usermanager.SecurityServiceImpl#loginFromDB

画像ここでの直接比較はデータベースからクエリされたパスワードであるため、組み込みアカウントと MD5 パスワードを直接使用してログインできます。

サイバーセキュリティについて学ぶのに役立つ、完全な情報セットを無料で入手できます。
① サイバーセキュリティ学習成長パスのマインド マップ
② 60 以上の古典的なサイバーセキュリティ ツールキット
③ 100 以上の SRC 分析レポート
④ サイバーセキュリティの攻撃と防御技術に関する 150 以上の電子書籍
⑤ 最も権威のある CISSP 認定試験ガイド + クエスチョン バンク
⑥ 1800 ページを超える CTF 実践スキル マニュアル
⑦ ネットワーク セキュリティ企業の最新面接質問集 (解答含む)
⑧ APP クライアント セキュリティ テスト ガイド (Android+IOS)

画像

画像管理者も正常にログインできます

画像

元のログイン モードを使用してログインしないのはなぜですか? まず、元のログイン モードのログインでは、対応するアカウント番号とパスワードがわかりません。次に、元のログイン ロジックを簡単に分析します。

smartbi.usermanager.UserManagerModule#clickLogin

画像

smartbi.usermanager.UserManagerModule#login

画像

smartbi.usermanager.SecurityServiceImpl#login

画像

主な処理ログイン ロジックはこの部分にあります

smartbi.usermanager.SecurityServiceImpl#loginDB

画像smartbi.usermanager.UserBO#isPasswordValidate

画像ここで比較する場合は、まずString passwordInLib = this.user.getPassword();データベースからユーザーのパスワードを検索し、ユーザーのパスワードの先頭の最初の文字に従って処理および比較します。

画像データベース内の対応する値が であることはすでにわかっています0aが、どの値にも対応する MD5 値がないaため、組み込みユーザーは正常にログインできません

バグの修正

http://192.168.222.133:18080/smartbi/vision/sysmonitor.jsp

画像画像

同じPOCはもう正常に使用できません。修復されたコードの内容に注目してください

画像

おすすめ

転載: blog.csdn.net/qq_38154820/article/details/131921119