列名を知らなくてもMySQLインジェクションを詳細に解説

列名を知らなくてもMySQLインジェクションを詳細に解説

序文

最近、穴を掘ってスペースを作っているだけなので、心が空っぽになっているように感じます。テクノロジーそのものに戻って、もっと快適に感じた方が良いと思います。さて、あまり話さずに、詳しい紹介を見てみましょう。

前提

以下の状況は、MySQL < 5 バージョン、または MySQL >= 5 バージョン [information_schema ライブラリが存在する] に適用され、ライブラリ名とテーブル名が取得されています。

① テーブル名のみ取得できても列名が取得できない場合、または有効な内容のない列名のみ取得できる場合(IDなど)

②information_schemaライブラリ内のテーブルを介して、テーブル名や列名などの他のテーブルの構造を取得したいが、このライブラリはWAFによってフィルタリングされている場合

実際、個人的にはこの方法はバージョン5以下ではより実用的だと感じています。なぜなら、私の場合、wafに遭遇するとたいてい諦めてしまうからです(私は本当に下手なプログラマーです23333)

解決する

通常のクエリ:

以下は、テストデータベースのユーザーテーブルの内容に対する通常のクエリです。

ユーザーから*を選択します。 

UNIONクエリ:

1、2、3、4 を選択 union select * from user; 

対応する数字の列を照会します。

クエリの列に対応する番号を使用できます。たとえば、2 はテーブル内の名前列に対応します。

(select 1,2,3,4 union select * from user)a から `2` を選択します。 

エイリアス置換クエリ:

バックティック`が使用できない場合は、代わりにエイリアスを使用できます。たとえば、2のエイリアスをbに設定します。

(select 1,2 as b,3,4 union select * from user)a から b を選択します。 

複数列のマージクエリ:

上記と同様: ここでバックティックが使用できない場合は、代わりにエイリアスを使用することもできます

select concat(`2`,0x3a,`3`) from (select 1,2,3,4 union select * from user)a limit 1,1; 

翻訳とアイデアの整理のみ

元のリンク: https://blog.redforce.io/sqli-extracting-data-without-knowing-columns-names/

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • MySQL と SQL インジェクションとその防止方法
  • MySQL インジェクション分析による SQL インジェクション
  • MySQL データベースは concat 関数を使用して SQL インジェクション クエリを実行します。
  • mysql5 インジェクション脆弱性
  • MySQL インジェクションや HTML フォームの不正使用を防ぐ PHP プログラム
  • MySQLインジェクションバイパスフィルタリング技術の概要
  • MySQL インジェクションにおける outfile、dumpfile、load_file 関数の詳細な説明
  • MYSQL updatexml() 関数のエラーインジェクション分析
  • node-mysql で SQL インジェクションを防ぐ方法の概要
  • PHP MYSQL インジェクション攻撃を防ぐための 7 つの重要なポイント

<<:  Tomcat マルチポートドメイン名アクセスと gzip 圧縮方式を有効にする構成

>>:  NODE.JS を使用して WEBSERVER を作成する手順

推薦する

VMwareワークステーションとデバイス/資格情報の非互換性によって発生する起動エラーについて

VMware Workstationsが仮想マシンエラーを起動する エラー レポートのリンク htt...

Zookeeper 不正アクセス テストの問題

目次序文Zookeeper サービスのオープンを検出情報を入手する接続テスト接続先修理計画参照する序...

ログインインターセプションを実装するためのVueルーティング

目次1. 概要2. ログインインターセプションを実装するためのルーティングナビゲーションガード1. ...

Vue再帰コンポーネントの簡単な使用例

序文多くの学生は既に再帰に精通していると思います。アルゴリズムの問​​題を解決するために再帰がよく使...

MySQL 5.7.16 のインストールと設定方法のグラフィック チュートリアル (Ubuntu 16.04)

Ubuntu 16.04 に MySQL 5.7 をインストールするにはどうすればいいですか?メイ...

Manjaro インストール CUDA 実装チュートリアル分析

昨年末、Thinkpad T450 のデュアルシステムの opensuse を Manjaro に置...

両側にCSS固定レイアウト、中央に適応レイアウトを実装

フローティング、フローティング埋め込み div、配置、フレックスという 4 つの一般的な方法と原則を...

HTMLでは、div内のコンテンツが次のサイズを超えたときに自動的にスクロールバーが表示されるように設定します。

HTML ページでは、div 内のコンテンツが制限を超えた後に自動的にスクロール バーを表示する必要...

Vue3 の ref と toRef の違いを簡単に分析します

1. refがコピーされ、ビューが更新されますrefを使用してオブジェクトのプロパティ値をレスポンシ...

Vue プロジェクトで TS (TypeScript) を使用するための入門チュートリアル

目次1. Typescriptの紹介2. 設定ファイル webpack 設定3. プロジェクトに.t...

react+reduxを使用してカウンター機能を実装すると発生する問題

Redux はシンプルな状態マネージャーです。その歴史をたどることはしません。使用法の観点から見ると...

CentOS7 での mysql 5.7.23 のバイナリ インストール

インターネット上のインストール情報は不均一で、落とし穴だらけです。インストールにはかなりの労力がかか...

MySQL ベースのストレージエンジンとログの説明 (包括的な説明)

1.1 ストレージエンジンの概要 1.1.1 ファイルシステムストレージファイル システム: オペ...

Webフロントエンドベクターアイコンの使い方

序文フロントエンドページを書くとき、小さなアイコンなどの画像を使うことが多いです。画像を使うとコード...

OEL7.6 ソースコードから MYSQL5.7 をインストールするチュートリアル

まず、公式サイト https://dev.mysql.com/downloads/mysql/5.7...