MYSQL updatexml() 関数のエラーインジェクション分析

MYSQL updatexml() 関数のエラーインジェクション分析

まず、updatexml()関数を理解する

UPDATEXML (XML ドキュメント、XPath 文字列、新しい値);

最初のパラメータ: XML_document は文字列形式で、XML ドキュメント オブジェクトの名前 (この記事では Doc) です。

2 番目のパラメータ: XPath_string (Xpath 形式の文字列)。Xpath 構文がわからない場合は、オンラインでチュートリアルを見つけることができます。

3番目のパラメータ: new_value(文字列形式)は、条件を満たす見つかったデータを置き換えます。

機能: ドキュメント内の条件を満たすノードの値を変更する

XML_documentのXPATH_stringの値を変更する

そして、注入ステートメントは次のようになります。

updatexml(1、連結(0x7e、(SELECT @@version)、0x7e)、1)

concat() 関数はそれらを文字列に連結するため、XPATH_string の形式に準拠せず、形式エラーが発生します。

エラー 1105 (HY000): XPATH 構文エラー: ':root@localhost'

xpath 構文形式の概要: https://www.jb51.net/article/125607.htm

要約する

以上がMYSQL updatexml()関数のエラーインジェクション分析に関するこの記事の内容です。皆様のお役に立てれば幸いです。興味のある方は、MySQL の準備原則、いくつかの重要な MySQL 変数、MySQL テーブル データを削除する方法などの詳細な説明を参照してください。質問がある場合は、いつでもメッセージを残すことができます。誰でもコミュニケーションと議論を歓迎します。また、このサイトをサポートしてくれた友人たちにも感謝したいと思います。

以下もご興味があるかもしれません:
  • MySQL UPDATE ステートメントの詳細な説明
  • MySQL ジョイントテーブル更新デー​​タの詳細な例
  • 検証例 MySQL | 同じ値を持つフィールドを更新すると、binlog に記録されます
  • mysql update文の実行プロセスの詳細な説明
  • MySQL の選択、挿入、更新バッチ操作ステートメントのコード例
  • Mysql 更新マルチテーブル共同更新方法の概要
  • MySQL は、元のデータと同じデータがある場合、更新ステートメントを再度実行しますか?
  • 更新とデータ整合性処理のためのMySQLトランザクション選択の説明
  • MySQLでバッチを更新するいくつかの方法
  • 本番環境でのMySQLパラメータsql_safe_updatesの使用に関する詳細な説明
  • エラー 1093 を解決する方法 - MySQL の FROM 句で更新のターゲット テーブルを指定できません
  • Mybatis はバッチ更新メソッドを実行します (Oracle、MySQL)
  • MySQLのUPDATE文の落とし穴を記録する

<<:  JSは10進数を16進数に変換するサンプルコードを実装します

>>:  Centos7.4 サーバーへの Apache のインストールとインストール プロセス中に発生した問題の解決策

推薦する

CSS を使用してテクスチャ付きグラデーション背景画像を記述するためのサンプル コード

プロジェクト内のページの長さはおよそ2000px以上あり、背景画像にはテクスチャやグラデーションがあ...

MySQLの日付文字列タイムスタンプ変換の詳細な説明

時刻、文字列、タイムスタンプ間の変換は、日常生活でよく使用されます。よく使用されますが、私は使用する...

ウェブサイトデザインに関するヒント

実は、最近はウェブデザインについてよく耳にするようになりました。インターネット業界は今とても発展して...

CSS変数を使用してスタイルを変更する方法の例

質問js を使用して CSS 疑似クラス スタイルを変更するにはどうすればよいでしょうか?しかし、j...

Centos7 から Centos8 へのアップグレードに関するチュートリアル (画像とテキスト付き)

正式な環境でアップグレードする場合は、データと重要な設定をバックアップしてください。アップグレードに...

Vue のスロットの使用法と適用シナリオの詳細な分析

スロットとは何ですか? Vue では、子コンポーネント タグの中央に何もラップできないことはわかって...

MySQL スケジュール データベース バックアップ (フル データベース バックアップ) の実装

目次1. MySQLデータのバックアップ1.1. データをバックアップするためのmysqldumpコ...

docker に openjdk をインストールして jar パッケージを実行する方法

画像をダウンロード docker プル openjdkデータボリュームの作成java_appデータボ...

HTMLを圧縮しない理由はいくつかある

理由は簡単です。 HTML ドキュメントでは、複数の空白文字は 1 つの空白文字と同等です。つまり、...

Javascriptのtry catchの2つの機能についてお話しましょう

プログラムは上から下へ順番に実行され、いくつかの制御文によって実行経路を変更することができます。制御...

MySQLクエリのパフォーマンスに影響を与える大きなオフセットの理由と最適化の詳細な説明

序文MySQL クエリは select コマンドを使用し、limit および offset パラメー...

MySQL マスタースレーブレプリケーションの役割と動作原理の詳細な説明

1. マスタースレーブレプリケーションとは何ですか?マスタースレーブレプリケーションは、スレーブデー...

Nginx 構成検出サービスのステータスを実装する方法

1. チェックステータスモジュールがインストールされているかどうかを確認します。 [root@loc...

MySQLの通常インデックスとユニークインデックスの違いの詳しい説明

目次1 概念上の区別2 事例紹介3 クエリパフォーマンス4 アップデートのパフォーマンス4.1 記憶...

MySQL 5.7 インストール MySQL サービスを開始できませんが、サービスはエラーを報告しません

MySQL 5.7 をインストールするには 2 つの方法があります。1 つはインストーラをダウンロー...