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

推薦する

uniappとvueの違いの詳細な説明

目次1. シンプルなページの例2.uni-appはvueコンポーネントとミニプログラムネイティブコン...

MySQL Server 8.0.3 のインストールと設定方法のグラフィックチュートリアル

この文書はMySQL Server 8.0.3のインストールと設定方法を参考のために記録したものです...

CSS の border 属性と display 属性の使い方の簡単な分析

境界プロパティの概要borderプロパティは要素の境界を設定します。境界線の3要素は、太さ、線の種類...

ウェブサイトのアクセス速度を向上させるための徹底的な最適化に関するヒント

ウェブサイトのアクセス速度を向上させるための徹底的な最適化に関するヒント。ウェブサイトのアクセス速度...

Layuiテーブル行のデータを動的に編集する

目次序文スタイル機能説明初期化コードイベントリスナーの追加リスナーツールバーモニターテーブル行ツール...

Dockerコンテナでユーザーを切り替えるときに権限が不足する問題を解決する方法

Docker コンテナでユーザーを切り替えると、権限が不十分であるというメッセージが表示されます。解...

SEATAトランザクションサービスDockerのデプロイ手順の詳細説明

1. データベース認証ステートメントを作成する > データベース seata を作成します。 ...

MySQL ストアド プロシージャのクエリ コマンドの概要

以下のように表示されます。 mysql.proc から名前を選択します (db='データベー...

CentOS7 に MySQL をオフラインでインストールする詳細なチュートリアル

1. 元のmariadbを削除します。削除しないとmysqlをインストールできません。 mariad...

React はモバイル端末を構築するために antd-mobile+postcss を導入しました

antd-mobileをインストールするグローバル輸入 npm をインストール antd-mobil...

CSSはカラフルでスマートな影の効果を実現します

背景前景要素から特定の色を継承する影の効果を作成する方法を知りたいと思ったことはありませんか?方法に...

Dockerでudpポート番号を指定する問題を解決する

Docker はコンテナを起動するときにアクセス ポートを指定します。複数の -p オプションを使用...

MySQL 5.7 の /etc/my.cnf パラメータの紹介

以下は、mysql 5.7 の /etc/my.cnf の一般的なパラメータの一部です。これらを自分...

シンプルなリスト機能を実装するミニプログラム

この記事の例では、参考のために簡単なリスト機能を実装するアプレットの具体的なコードを共有しています。...

WeChatアプレットはシンプルな計算機を実装する

参考までにWeChatアプレットで書かれた簡単な計算機です。具体的な内容は次のとおりです。 jisa...