任意のコマンド実行の脆弱性をゼロデイ攻撃

任意のコマンド実行の脆弱性をdedecmsします

1.脆弱性の概要

dedecmsバックグラウンドに任意のコマンド実行の脆弱性があります(cnvdが送信およびアーカイブされ、公式パッチが2022.1.12にリリースされ、新しいバージョンが変更され、以前のバージョンはリンク、抽出コードからダウンロードできます: ikom)

2.脆弱性の影響

dedecms5.7.85

第三に、複製プロセス

脆弱性分析

脆弱性の場所:plus / mytag_js.php
ファイルが書き込まれた後、ファイルをいくつかの方法で直接含めることができることがわかります。この場合、ファイル名を気にする必要はありません(もちろん、ファイル名には固定のhtmサフィックスがあります)が、ファイルが書き込まれるときに渡されるmyvaluesの内容だけを気にする必要があります。
ここに画像の説明を挿入
調べてみると、それはクエリを通じて取得されていることがわかります。このクエリの具体的なステートメントは何ですか?調べてみましょう。
ここに画像の説明を挿入
ここに画像の説明を挿入
特定のクエリステートメントが

SELECT * FROM `#@__mytag` WHERE aid='$aid'

次に、挿入機能を持つ可能性が高いクエリと、グローバル検索テーブル名があります。
ここに画像の説明を挿入
特定のクエリステートメントが見つかりましたが、列名の補助がないことがわかったため、自己インクリメントする必要があります。
ここに画像の説明を挿入
このページにアクセスして、特定の挿入インターフェースを入手してください。次のデータを挿入してみましょう。
ここに画像の説明を挿入
次に$pv->GetResult()、結果を出力します。その前に、死なないように、arcIDと
ここに画像の説明を挿入
nocacheの特定のエイド番号を渡す必要があります。これも確認できます。
ここに画像の説明を挿入
ここに画像の説明を挿入
入力後、エコーはfであることがわかります。つまり、返されるコンテンツは、挿入時に渡された「通常の表示コンテンツ」です。
最後に、私たちのアイデアを整理しましょう。
1.最初にタグを挿入し、「通常の表示コンテンツ」で実行するphpコードを渡します。
2.file_put_contentsを介してファイルを書き込みます。
3.インクルードを介してファイルをインクルードします。

利用プロセス

1. dede / mytag_main.phpにアクセスして、タグを挿入します。
ここに画像の説明を挿入

保存に成功したら、対応する番号を覚えておいてください。
ここに画像の説明を挿入

2. /plus/mytag_js.php?arcID=6&nocache=1(6はタグ番号)にアクセスしてファイルを生成します。
3. /plus/mytag_js.php?arcID=6にアクセスして、ファイルを含めます。

ここに画像の説明を挿入
exec('calc');が正常に実行され
、生成されたファイルの内容を確認できます。
ここに画像の説明を挿入
いくつかの文字列でラップされますが、含めるときにphpコードの解析には影響しません。

おすすめ

転載: blog.csdn.net/miuzzx/article/details/122201446
おすすめ