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

推薦する

主軸上のFlex子要素の比率を制御する方法

背景フレックス レイアウトにより、配置とスペースの割り当てがより効果的に実現されます。最近、flex...

MySQL 5.7.25 圧縮版のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 5.7.25圧縮版のインストールと設定方法を参考までに紹介します。具体的な...

CSS で放射状グラデーションを使用してカード効果を実現する

数日前、同僚がポイントモールプロジェクトを受け取りました。このプロジェクトには、カードやクーポンをギ...

MySQLデータ内の多数の改行と復帰に対する解決策

目次問題を見つける1. 改行と復帰を削除する方法2. SELECTクエリで「改行と復帰」を無視する方...

Bツリー挿入プロセスの概要

前回の記事 https://www.jb51.net/article/154153.htm では、B...

MySQL シャーディング入門ガイド

序文リレーショナル データベースは、システムのボトルネックになる可能性が高くなります。単一のマシンの...

Vueキャッシュ機能の使い方

目次vue2のキャッシュ機能Vue キャッシュ関数の変換最適化要約するvue2のキャッシュ機能vue...

IDEA は MySQL への接続時にエラーを報告します。サーバーが無効なタイムゾーンを返します。タブに移動して serverTimezone プロパティを設定してください。

これからの道は常に困難で、棘だらけです。歯を食いしばって、乗り越えられると信じてください。さあ、さあ...

mysql コマンドライン スクリプトの実行例

この記事では、例を使用して MySQL コマンドライン スクリプトの実行について説明します。ご参考ま...

MySQL Strict Modeの知識ポイントの詳細な説明

I. 厳密モードの説明MySQL 5.0 以降の厳密モード (STRICT_TRANS_TABLES...

CSS3 弾性拡張ボックスの詳細な説明

使用フレキシブル ボックスはフロントエンドの Web ページ レイアウトで重要な役割を果たしますが、...

MySQL データベース開発の 36 の原則 (要約)

序文これらの原則は実際の戦闘から要約されています。あらゆる原則の背後には血なまぐさい教訓があるこれら...

分散監視システムZabbixはSNMPとJMXチャネルを使用してデータを収集します

前回の記事では、Zabbix のパッシブ、アクティブ、Web 監視に関するトピックについて学習しまし...

フォーム入力ボックスに関するWebデザインのヒント

この記事では、Web デザインにおけるフォーム入力ボックスに関するヒントとコードをいくつか紹介します...

MySQL MVCCメカニズム原理の詳細な説明

目次MVCCとはMySQL ロックとトランザクション分離レベルMySQL 元に戻すログMVCCの実装...