以下の thinkphp フレームワーク チュートリアルのコラムでは、ThinkPHP フレームワークの監査 (共有) について 1 分で紹介します。困っている友人のお役に立てれば幸いです。
ThinkPHP の概要
ThinkPHP はa これは、無料でオープン ソースの、高速かつシンプルなオブジェクト指向の軽量 PHP 開発フレームワークです。2006 年初頭に設立され、Apache2 オープン ソース契約に基づいてリリースされました。機敏な WEB アプリケーション開発と簡素化されたエンタープライズ アプリケーション開発のために生まれました。 ThinkPHP は誕生以来、シンプルで実用的な設計原則を堅持しており、優れたパフォーマンスと最小限のコードを維持しながら、使いやすさにも重点を置いています。独自の機能を多数備えており、コミュニティチームの積極的な参加により、使いやすさ、拡張性、パフォーマンスの面で継続的に最適化と改善が行われ、中国で最も有力かつ影響力のあるWEBアプリケーション開発フレームワークに成長しました。多くの典型的なケースにより、商用およびポータル レベルの開発に安定して使用できることが保証されます。
#脆弱性の概要
##ThinkPHP 5.0.x フレームワークは、パラメータ化されたクエリ方式を使用して動作しますが、しかし、挿入メソッドと更新メソッドでは、渡されるパラメータは制御可能であり、厳密にフィルタリングされていないため、最終的にこの SQL インジェクションの脆弱性の発生につながりました。
ThinkPHP フレームワーク 5.0.x SQL インジェクションの脆弱性を分析に使用する
thinkphp公式 Web サイトのバージョン 5.0.15 のダウンロード: http://www.thinkphp.cn/down/1125.html 。データベースをセットアップします。データベースは tp、テーブル名は user、2 つのフィールド id と username があります。
#application/ 内のデータベース構成情報 application/database.php を変更します。 config デバッグをオンにして、.php でトレースします。
#application/index/controller/Index.php の Index クラスにメソッドを追加します。 :
##
public function testsql() { $username = input('get.username/a'); db('user')->where(['id'=> 1])->insert(['username'=>$username]); }
説明は次のとおりです:
http://127.0.0.1/thinkphp/public/index.php/index/index/index
ドメイン名 Web サイト ディレクトリ 外部アクセス ディレクトリ エントリ ファイル フロント デスク コントローラー メソッド名
拡張子:
##updatexml 関数について UPDATEXML (XML_document, XPath_string, new_value ) ;
#最初のパラメータ: XML_document は文字列形式であり、XML ドキュメント オブジェクトの名前です。テキストは Doc## です。
#2 番目のパラメータ: XPath_string (Xpath 形式の文字列) Xpath 構文がわからない場合は、インターネットでチュートリアルを見つけることができます。#3 番目のパラメータ: new_value、文字列形式。条件を満たす見つかったデータを置き換えます。
作用:改变文档中符合条件的节点的值 访问payload,就可以触发漏洞了。 漏洞分析 首先,我们知道 insert 方法存在漏洞,那就查看 insert 方法的具体实现。 通过input获取到参数后,username变量情况如下: 跟入insert,thinkphp/library/think/db/Query.php 然后执行insert语句 跟入 thinkphp/library/think/db/Builder.php 跟入parseData至 thinkphp/library/think/db/Builder.php 可以看出$val是数组,且根据$val[0]值为inc,会通过switch语句进入到’inc’: 此处的parseKey,即thinkphp/library/think/db/builder/Mysql.php 此处并未对传入的$key进行更多的过滤与检查,将其与前面经过parseKey的结果进行拼接后返回给result 至此注入成功。 漏洞修复 https://github.com/top-think/framework/commit/363fd4d90312f2cfa427535b7ea01a097ca8db1b 在进行dec和inc操作之前对$val[1]的值进行了再次确认。 总结 第一次审计Thinkphp框架 ,结合Thinkphp5.0手册以及网上教程完成此次漏洞的审计。 相关推荐:最新的10个thinkphp视频教程$sql = $this->builder->insert($data, $options, $replace);
以上がThinkPHP フレームワークの監査について 1 分で学ぶ (共有)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、ThinkPHPの組み込みテストフレームワークについて説明し、ユニットや統合テストなどの主要な機能と、早期のバグ検出とコード品質の向上を通じてアプリケーションの信頼性を高める方法について強調しています。

記事では、リアルタイムの株式市場データフィードにThinkPhpを使用して、セットアップ、データの正確性、最適化、セキュリティ対策に焦点を当てて説明します。

この記事では、パフォーマンスの最適化、ステートレス設計、セキュリティに焦点を当てたサーバーレスアーキテクチャでThinkPhpを使用するための重要な考慮事項について説明します。コスト効率やスケーラビリティなどの利点を強調しますが、課題にも対処します

この記事では、セットアップ、ベストプラクティス、統合方法、および推奨ツールに焦点を当てたThinkPhpマイクロサービスにサービスの発見と負荷分散の実装について説明します。[159文字]。

ThinkPHPのIOCコンテナは、PHPアプリで効率的な依存関係管理のための怠zyなロード、コンテキストバインディング、メソッドインジェクションなどの高度な機能を提供します。

この記事では、ThinkPhpを使用してリアルタイムのコラボレーションツールを構築し、セットアップ、Websocket統合、セキュリティベストプラクティスに焦点を当てて説明します。

ThinkPhpは、軽量のデザイン、MVCアーキテクチャ、および拡張性を備えたSaaSアプリに利益をもたらします。スケーラビリティを向上させ、開発を速め、さまざまな機能を通じてセキュリティを改善します。

この記事では、ThinkPhpとRabbitMQを使用して分散タスクキューシステムの構築を概説し、インストール、構成、タスク管理、およびスケーラビリティに焦点を当てています。重要な問題には、Immedのような一般的な落とし穴を避けるための高可用性の確保が含まれます


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

WebStorm Mac版
便利なJavaScript開発ツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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