ホームページ バックエンド開発 PHPチュートリアル PHP デシリアライゼーションの小さな機能 unserialize_PHP チュートリアル

PHP デシリアライゼーションの小さな機能 unserialize_PHP チュートリアル

Jul 13, 2016 pm 05:19 PM
php unserialize wordpress 小さい 順序 比較する 抜け穴 特性

WordPress の desequence 脆弱性は最近非常に有名になっていますが、具体的な脆弱性については詳しく説明しませんので、この記事 http://drops.wooyun.org/papers/596 を読んでください。英語の原文も読むことができます。 vagosec.org/2013/09/wordpress-php-object-injection/。

WP 公式ウェブサイトにパッチが当てられました。パッチをバイパスしようとしましたが、成功したと思ったら、自分が甘かったことに気づき、WP のパッチをうまくバイパスできませんでしたが、アンシリアル化の小さな機能を発見しました。ここであなたと共有したいと思います。
1.unserialize() 関数関連のソースコード:
リーリー

上記のコードは、配列文字列O:4:"test":1:{s:1:"a";s:3:"aaa";}のような配列文字列を判定し、これを処理する処理メソッドですシーケンス文字列、まず文字列の最初の文字を O として取得し、次に case 'O': goto yy13
yy13:
yych = *(YYMARKER = ++YYCURSOR);
if (yych == ':') goto yy17;
yy3;
上記のコードからわかるように、ポインターは 2 番目の文字を指すように 1 位置移動し、その文字が: であるかどうかを判断して、yy17 に進みます
リーリー

から
上記のコードから分かるように、ポインタは次の文字を決定するために移動します。文字が数字の場合は yy20 に直接移動し、それが '+' の場合は goto
を実行します。
yy19、yy19 は次の文字を判断するためのもので、次の文字が数字の場合は yy20 に進み、そうでない場合は goto
を実行します。
yy18、yy18 はシーケンス処理を直接終了し、yy20 はオブジェクトシーケンスを処理するため、上記からわかるように:
O:+4:"テスト":1:{s:1:"a";s:3:"aaa";}
O:4:"テスト":1:{s:1:"a";s:3:"aaa";}
どちらも unserialize によって逆シリアル化でき、結果は同じです。
2. 実際のテスト:
リーリー

実際には、追加の「+」を使用してオブジェクト型を処理できるだけでなく、他の型も処理できます。具体的なテストについてはあまり説明しません。
3. WP パッチを見てみましょう:
リーリー

パッチ中
return (bool) preg_match( "/^{$token}:[0-9]+:/s", $data );
この方法でシーケンス値をデータベースに書き込んだのですが、データベースからデータを抽出して再度確認すると、プラス記号が作成できなかったので、データをバイパスできません。データ データベースの内外の変更。個人的には、このパッチ バイパスの焦点は、データの内外のデータの前後の変更にあると思います。
4.まとめ
wp パッチはバイパスされていませんが、unserialize() のこの小さな機能は多くの開発者によって無視される可能性があり、その結果、プログラムにセキュリティ上の欠陥が生じます。
上記の分析に誤りがある場合は、指摘するメッセージを残してください。
5.参考
《WordPress < 3.6.1 PHP オブジェクトインジェクション》
http://vagosec.org/2013/09/wordpress-php-object-injection/
《var_unserializer.c ソースコード》
https://github.com/php/php-src/b…/var_unserializer.c
「PHP文字列のシリアル化と逆シリアル化の間の構文解析の不一致によるセキュリティリスク」
より転載
http://zone.wooyun.org/content/1664
転載元: https://forum.90sec.org/thread-6694-1-1.html
作者: L.N.

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/532682.html技術記事 WordPress の desequence 脆弱性は最近非常に有名になっていますが、具体的な脆弱性については詳しく説明しませんので、この記事 http://drops.wooyun.org/papers/596 を読んでください。英語の原文も読むことができます。ヴァ...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

WordPressの記事リストを調整する方法 WordPressの記事リストを調整する方法 Apr 20, 2025 am 10:48 AM

WordPressの記事リストを調整するには4つの方法があります。テーマオプションを使用し、プラグイン(投稿タイプの注文、WP投稿リスト、ボックスのものなど)を使用し、コード(functions.phpファイルに設定を追加)を使用するか、WordPressデータベースを直接変更します。

WordPressホスト用のWebサイトを構築する方法 WordPressホスト用のWebサイトを構築する方法 Apr 20, 2025 am 11:12 AM

WordPressホストを使用してWebサイトを構築するには、次のようにする必要があります。信頼できるホスティングプロバイダーを選択します。ドメイン名を購入します。 WordPressホスティングアカウントを設定します。トピックを選択します。ページと記事を追加します。プラグインをインストールします。ウェブサイトをカスタマイズします。あなたのウェブサイトを公開します。

IISとPHPの互換性:ディープダイビング IISとPHPの互換性:ディープダイビング Apr 22, 2025 am 12:01 AM

IISとPHPは互換性があり、FastCGIを通じて実装されています。 1..phpファイル要求を構成ファイルを介してFastCGIモジュールに転送します。 2. FASTCGIモジュールは、PHPプロセスを開始して、パフォーマンスと安定性を改善するための要求を処理します。 3。実際のアプリケーションでは、構成の詳細、エラーデバッグ、パフォーマンスの最適化に注意する必要があります。

WordPressテーマのヘッド画像を変更する方法 WordPressテーマのヘッド画像を変更する方法 Apr 20, 2025 am 10:00 AM

WordPressのヘッダー画像を置き換えるための段階的なガイド:WordPressダッシュボードにログインし、外観とGT;テーマに移動します。編集するトピックを選択し、[カスタマイズ]をクリックします。テーマオプションパネルを開き、サイトヘッダーまたはヘッダーの画像オプションを探します。 [画像の選択]ボタンをクリックして、新しいヘッド画像をアップロードします。画像をトリミングして、保存と収穫をクリックします。 [保存と公開]ボタンをクリックして、変更を更新します。

WordPressのフロントエンドを表示する方法 WordPressのフロントエンドを表示する方法 Apr 20, 2025 am 10:30 AM

ダッシュボードにログインし、[サイト]タブに切り替えることにより、WordPressのフロントエンドを表示できます。ヘッドレスブラウザで視聴プロセスを自動化します。 WordPressプラグインをインストールして、ダッシュボード内のフロントエンドをプレビューします。ローカルURLを介してフロントエンドを表示します(WordPressがローカルに設定されている場合)。

WordPressの編集日をキャンセルする方法 WordPressの編集日をキャンセルする方法 Apr 20, 2025 am 10:54 AM

WordPressの編集日は、次の3つの方法でキャンセルできます。 2. functions.phpファイルにコードを追加します。 3. wp_postsテーブルのpost_modified列を手動で編集します。

WordPressのソースコードをインポートする方法 WordPressのソースコードをインポートする方法 Apr 20, 2025 am 11:24 AM

WordPressソースコードのインポートには、次の手順が必要です。テーマ変更のサブテーマを作成します。ソースコードをインポートし、サブトピックのファイルを上書きします。サブテーマを有効にして効果的にします。変更をテストして、すべてが機能することを確認します。

WordPressのヘッダーの書き方 WordPressのヘッダーの書き方 Apr 20, 2025 pm 12:09 PM

WordPressでカスタムヘッダーを作成する手順は次のとおりです。テーマファイル「header.php」を編集します。あなたのウェブサイトの名前と説明を追加します。ナビゲーションメニューを作成します。検索バーを追加します。変更を保存して、カスタムヘッダーを表示します。

See all articles