phpcms のセキュリティ脆弱性のコレクション

coldplay.xixi
リリース: 2020-12-04 16:53:18
転載
14235 人が閲覧しました

phpcms チュートリアル一般的な phpcms セキュリティ脆弱性の紹介

phpcms のセキュリティ脆弱性のコレクション

推奨 (無料): phpcms チュートリアル

1. ワイドバイトインジェクションの脆弱性

/phpcms/modules/pay /respond .php は約 16 行にあります

##元のコード

$payment = $this->get_by_code($_GET['code']);
ログイン後にコピー

$payment = $this->get_by_code(mysql_real_escape_string($_GET['code']));
ログイン後にコピー

に置き換えられます2. phpcms インジェクションの脆弱性

#/phpcms/modules/poster/poster.php は行 221

if ($_GET['group']) {
ログイン後にコピー

にあります。

$_GET['group'] = preg_replace('#`#', '', $_GET['group']);
ログイン後にコピー

3、任意のファイル読み取りの脆弱性を引き起こす phpcms フロントエンド インジェクションを追加 patch

/phpcms/modules /content/down.php

(1) 17 行目

parse_str($a_k);
ログイン後にコピー

$a_k = safe_replace($a_k); parse_str($a_k);
ログイン後にコピー
ログイン後にコピー
## に置き換えます# (2) 約 89 行の位置

parse_str($a_k);
ログイン後にコピー

$a_k = safe_replace($a_k); parse_str($a_k);
ログイン後にコピー
ログイン後にコピー
に置き換えます [上記 2 つの問題はバージョン 6.3 で修正されています]

(3) 約 120 行目の

$filename = date('Ymd_his').random(3).'.'.$ext;
ログイン後にコピー
の後に

$fileurl = str_replace(array(&#39;<&#39;,&#39;>&#39;), &#39;&#39;,$fileurl);
ログイン後にコピー
## を追加します #4 .phpcms インジェクションの脆弱性

##/phpcms/modules/member/index.php は行 615

元のコード:

$password = isset($_POST[&#39;password&#39;]) && trim($_POST[&#39;password&#39;]) ? trim($_POST[&#39;password&#39;]) : showmessage(L(&#39;password_empty&#39;),HTTP_REFERER);
ログイン後にコピー

は次のように置き換えられます:

$password = isset($_POST[&#39;password&#39;]) && trim($_POST[&#39;password&#39;]) ? addslashes(urldecode(trim($_POST[&#39;password&#39;]))) : showmessage(L(&#39;password_empty&#39;), HTTP_REFERER);
ログイン後にコピー

5. PHPCMS V9.6.2 SQL インジェクションの脆弱性

(1) phpcms/libs/classes/param.class.php は約 109 行にあります

元のコード

$value = isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], &#39;DECODE&#39;) : $default;
ログイン後にコピー

$value = isset($_COOKIE[$var])?addslashes(sys_auth($_COOKIE[$var],&#39;DECODE&#39;)):$default;
ログイン後にコピー

#(2)/phpsso_server/phpcms/libs/classes/param.class.php の場所は約 108 行

に置き換えます。 #元のコード

return isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], &#39;DECODE&#39;) : $default;
ログイン後にコピー

return isset($_COOKIE[$var]) ? addslashes(sys_auth($_COOKIE[$var],&#39;DECODE&#39;)) : $default;
ログイン後にコピー

6 に置き換えられます。phpcms のどこかに論理的な問題があるため、getshell

## が発生します。

#/phpcms/libs/classes/attachment.class.php は、

function download($field, $value,$watermark = &#39;0&#39;,$ext = &#39;gif|jpg|jpeg|bmp|png&#39;, $absurl = &#39;&#39;, $basehref = &#39;&#39;){
ログイン後にコピー
の 143 行目あたりにあり、その後に

が続きます。
// 此处增加类型的判断
         if($ext !== &#39;gif|jpg|jpeg|bmp|png&#39;){
             if(!in_array(strtoupper($ext),array(&#39;JPG&#39;,&#39;GIF&#39;,&#39;BMP&#39;,&#39;PNG&#39;,&#39;JPEG&#39;))) exit(&#39;附加扩展名必须为gif、jpg、jpeg、bmp、png&#39;);
         }
ログイン後にコピー

7. phpcms インジェクションの脆弱性

##/api/phpsso.php は約 128 行

# にあります。 元のコード

$arr[&#39;uid&#39;] = intval($arr[&#39;uid&#39;]);
$phpssouid = $arr[&#39;uid&#39;];
ログイン後にコピー

は、2-in-1 コード

$phpssouid = intval($arr[&#39;uid&#39;]);
ログイン後にコピー

8 に置き換えられます。phpcms 認証キー生成アルゴリズムの問​​題により、次のような問題が発生します。認証キーの漏洩

1. /caches/configs/system.php で、最初のパラメータを追加します:

'alivulfix' => 'yes',

2. 20 桁の文字列である auth_key を見つけて変更し、記述する内容をカスタマイズするだけです。

&#39;auth_key&#39; => &#39;2qKYgs0PgHWWtaFVb3KP&#39;, //密钥
ログイン後にコピー

3. 32 ビット文字列である auth_key を見つけて変更し、記述する内容をカスタマイズするだけです。

&#39;phpsso_auth_key&#39; => &#39;hjor66pewop_3qooeamtbiprooteqein&#39;, //加密密钥
ログイン後にコピー

注: このステップでは、Alibaba Cloud の Cloud Knight ワンクリック修復と同じです。

Web サイト ユーザーが当面ログインできないだけで、最も重要なステップが残っています。 4. バックグラウンドで phpsso 管理センターにログインし、ナビゲーション メニュー phpsso ——> アプリケーション管理 ——> 編集で、「通信キー」を手順 3 で設定した 'phpsso_auth_key' の値に編集します。をクリックし、「送信」をクリックします。

主要な手順のスクリーンショットは次のとおりです。


送信後、以下に示すように、ページには通信が成功したことが表示されます。



プログラミングについてさらに詳しく知りたい場合は、php に注目してください。トレーニングコラム!

以上がphpcms のセキュリティ脆弱性のコレクションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート