列名を知らなくても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 を作成する手順

推薦する

RocketMQ の Docker インストールとインストール中に発生した問題の解決策

目次rocketmqイメージを取得する名前rvを作成する単一のブローカーノードを作成するrocket...

Macにmysql5.7.18をインストールする詳細な手順

1. ツール今必要なツールは2つあります: MySQLサーバー (mysql-5.7.18)、MyS...

MySQL における楽観的ロックと悲観的ロックの例

データベース管理システムにおける同時実行制御のタスクは、データベース内の同じデータに同時にアクセスす...

リフレッシュリダイレクトを実現する HTML ヘッドタグメタ

コードをコピーコードは次のとおりです。 <html> <ヘッド> <m...

Vueデータ変更検出の基本的な実装の簡単な分析

目次1. オブジェクトの変更検出2. オブジェクトに関する質問配列変更検出3.1 背景3.2 実装I...

HTML減量 HTMLタグを合理化してWebページを作成する

HTML4 についてHTML (XHTML ではありません)、MIME タイプは text/html...

MySQLにおけるテーブルインデックスの定義方法と導入

概要インデックスは、テーブル内の 1 つ以上の列に基づいて DBMS によって特定の順序で作成される...

IDEA 2020.3.1 で Tomcat をデプロイし、最初の Web プロジェクトを作成するプロセスの詳細な説明

目次Tomcat の紹介Tomcat の展開Web プロジェクトの作成tomcatの設定プロジェクト...

Linuxグループの基礎知識ポイントまとめ

1. Linuxグループの基本紹介Linux では、すべてのユーザーはグループに所属する必要があり、...

Vueユーザーが長時間操作せずにログインページからログアウトするように実装する2つの方法

目次問題の説明フロントエンド制御(方法1)アイデアコードバックエンド制御(方法2)アイデアコード要約...

CSS属性のデフォルト値width: autoとwidth: 100%の違いの詳細な説明

幅: 自動子要素(コンテンツ+パディング+境界線+余白を含む)は、親要素のコンテンツ領域全体を埋めま...

jsオブジェクト指向カプセル化カスケードドロップダウンメニューリストの実装手順

この例で開発されたカスケード ドロップダウン メニューは、既存の JSON データに基づいて作成され...

Windows 10 と MySQL 5.5 のインストールとインストールなしの使用の詳細なチュートリアル (画像とテキスト)

この記事では、Windows 10環境でのMySQL 5.5のインストールと使用方法を紹介します。リ...

Mac に MySQL データベースをインストールし、環境変数を設定するためのグラフィック チュートリアル

目次MySQLをインストールする環境変数の設定MySQLをインストールするmysqlをダウンロードし...

幅と高さが可変の要素を中央に配置するための CSS ソリューション

1. 水平中央公開コード: html: <div class="parent&quo...