Office2K对IIS的意外影响(下)

来源:互联网 发布:ac控制器软件 编辑:程序博客网 时间:2024/04/26 15:01

Office2KIIS的意外影响(下)

Article last modified on 2002-9-10

The information in this article applies to:

ü         Microsoft IIS 5.0

ü         Microsoft FrontPage

ü         Microsoft Outlook Web Access

ü         Microsoft Exchange 2000

【具体流程】:

下面我们结合网络监视器捕获的包,来讲解一下具体流程。

蓝色的字体代表捕获的包体,这里只是部分包内容。

红色的字体代表需要重视的包内容。

绿色的字体代表我的注释。

从第594个包到第625个包的解释(弹出对话框情况下的):

OPTIONS /XY/XYZUV/XYZUVW.dll/迁移方案.doc?ClassName=XY_ZUVWABCDEF.GHIJKM&sessio=nmA3F0F1-B122-4814-AD29-0B4B6F686B40&Validate=YES&URL=http://xyzuvwabcde/exchange/zhengyun/%E6%94%B6%E4%BB%B6%E7%AE%B1/%E8%BF%81%E7%A7%BB%E6%96%B9%E6%A1%88.doc-2.EML HTTP/1.1

User-Agent: Microsoft Data Access Internet Publishing Provider Cache Manager

Host: xyserver

Content-Length: 0

Connection: Keep-Alive

第一步,客户端的Explorer发送给服务器一个OPTIONS /HTTP/1.1的请求,请注意它的User-Agent已经改变了。

….. HTTP/1.1 200 OK

Server: Microsoft-IIS/5.0

Date: Tue, 10 Sep 2002 04:46:35 GMT

Set-Cookie: sessionid=b198d31e-08d1-409e-8b1c-6b484f024bbb,0x804; path=/exchange/zhengyun

Content-Type: text/html

Content-Length: 796

ETag: "b9cdb478f9b2a343a2f0b41c6df4e7b300000033dec1"

Accept-Ranges: bytes

MS-WebStorage: 6.0.4712

Cache-Control: no-cache

这是第二步:

…..POST /_vti_bin/shtml.dll/_vti_rpc HTTP/1.1

Date: Tue, 10 Sep 2002 04:46:35 GMT

MIME-Version: 1.0

User-Agent: MSFrontPage/4.0

Host: xyserver

Accept: auth/sicily

Content-Length: 127

Content-Type: application/x-www-form-urlencoded

X-Vermeer-Content-Type: application/x-www-form-urlencoded

Connection: Keep-Alive

Cache-Control: no-cache

上面的请求的含义:客户端好像认定了authoring binaries的位置,直接发送一个POST /_vti_bin/shtml.dll/_vti_rpc HTTP/1.1到服务器。Shtml.dllbrowse binary,权限是everyonePOST的数据是下面的这个method=url+to+web+url%3a….

method=url+to+web+url%3a4%2e0%000%2e4715&url=%2fum%2fisapi%2fComBox%2edll%2f%e8%bf%81%e7%a7%bb%e6%96%11%e1%a1%88%2edoc&flags=0  HTTP/1.1 100 Continue

 

….

然后,服务器返回这么一个HTML

<B>vermeer RPC packet</B>

method=url to web url:4.0.2.4715

webUrl=/

fileUrl=um/isapi/ComBox.dll/ooooooÓoo案.doc

现在,客户端的Explorer知道了服务器的version,于是开始它的工作:

Explorer将发送一个POST请求给/_vti_bin/_vti_aut/author.dllPOST的数据是method=open+service%3a4%2e0%2e2%2e4715&service%5fname=%2f,这个数据好像是固定不变的。

…POST /_vti_bin/_vti_aut/author.dll HTTP/1.1

Date: Tue, 10 Sep 2002 04:46:35 GMT

MIME-Version: 1.0

User-Agent: MSFrontPage/4.0

Host: xyserver

Accept: auth/sicily

Content-Length: 58

Content-Type: application/x-www-form-urlencoded

X-Vermeer-Content-Type: application/x-www-form-urlencoded

Connection: Keep-Alive

Cache-Control: no-cache

 

method=open+service%3a4%2e0%2e2%2e4715&service%5fname=%2f….. HTTP/1.1 100 Continue

Server: Microsoft-IIS/5.0

Date: Tue, 10 Sep 2002 04:46:34 GMT

这样,我们就进入了验证段。如果author.dllACL列表允许这个请求,服务器将会返回一大段配置,这基本上是/_vti_pvt/services.cnf文件的内容:

  Microsoft Outlook Web Access

 

        

        

 

 

        

        

         <o:p></o:p></FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Arial"><FONT size=3><SPAN style="mso-tab-count: 2">         </SPAN><SPAN style="mso-spacerun: yes">    </SPAN><BODY><o:p></o:p></FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Arial"><FONT size=3><SPAN style="mso-tab-count: 4">                       </SPAN><SPAN style="mso-spacerun: yes">  </SPAN><P><B>This page uses frames, but your browser doesn't support them.</B></P><o:p></o:p></FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Arial"><FONT size=3><SPAN style="mso-tab-count: 3">                </SPAN></BODY><o:p></o:p></FONT></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Arial"><FONT size=3><SPAN style="mso-tab-count: 2">         </SPAN>

     

上面这段不太有趣,关键看下面的:

…..HTTP/1.1 401 Access denied

Server: Microsoft-IIS/5.0

Date: Tue, 10 Sep 2002 04:46:34 GMT

WWW-Authenticate: Negotiate

WWW-Authenticate: NTLM

Content-Length: 0

有趣吧,服务器端准备NTLM的三次握手了,上面的是第一次401打回:

POST /_vti_bin/_vti_aut/author.dll HTTP/1.1

Date: Tue, 10 Sep 2002 04:46:35 GMT

MIME-Version: 1.0

User-Agent: MSFrontPage/4.0

Host: xyserver

Accept: auth/sicily

Content-Length: 58

Content-Type: application/x-www-form-urlencoded

X-Vermeer-Content-Type: application/x-www-form-urlencoded

Connection: Keep-Alive

Cache-Control: no-cache

Authorization: Negotiate YIIFggYGKwYBBQUCoIIFd……………..<很多,都是哈希后的密码>

然后,客户端把自己的密码Hash结果发给服务器。

HTTP/1.1 401 Access denied

Server: Microsoft-IIS/5.0

Date: Tue, 10 Sep 2002 04:46:34 GMT

WWW-Authenticate: Negotiate

WWW-Authenticate: NTLM

Content-Length: 0

服务器第二次401打回;

客户端再送一次:

….GET /xx/xxxxx/xxxxxx.dll/%E8%BF%81%E7%A7%BB%E6%96%B9%E6%A1%88.doc?ClassName=xx_xxxxxxxxxx.xxxxxx&ssssss=6DA3F0F1-B122-4814-AD29-0B4B6F686B40&Validate=YES&URL=http://XYZUSERVER/exchange/zhengyun/%E6%94%B6%E4%BB%B6%E7%AE%B1/%E8%BF%81%E7%A7%BB%E6%96%B9%E6%A1%88.doc-2.EML/迁移方案.doc HTTP/1.1

Accept: */*

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; T312461)

Host: xyserver

Connection: Keep-Alive

这次终于过了:

HTTP/1.1 200 OK

Server: Microsoft-IIS/5.0

Date: Tue, 10 Sep 2002 04:46:44 GMT

Content-Type: application/msword

Content-Length: 485376

MS-WebStorage: 6.0.4712

Expires: Mon, 09 Sep 2002 04:46:44 GMT

最后,都是这样的数据包:

 

 

 

 

 

它们都叫做:“HTTP: Continuation of missing frame”。

 

Okay,以上介绍的是弹出对话框的网络数据包。

我们还需要看看可以正常打开Word附件的情况:

最简单的恢复正常的做法就是,确保邮件主题是45个字节以上。

这时的数据包中没有任何异常的请求。

最开始,还是客户端发起GET请求:

XCP 002.002  GET /xx/xxxxx/xxxxxx.dll/%E5%91%98%E5%B7%A5%E7%8E%8B%E6%98%95.doc?ClassName=xx_xxxxxxxxxx.xxxxxx&UserID=0DB515A4-9FA8-41E9-9DE9-B449BFC95603&Validate=YES&URL=http://XYZUSERVER/exchange/zhengyun/%E6%94%B6%E4%BB%B6%E7%AE%B1/qE6qB5q8BqE8qAFq95qE6q80qAAqE5qBCq82q82q33qE3.EML/迁移方案.doc HTTP/1.1

Accept: */*

Referer: http://xyserver/xx/xxxxx/Folder/xxxxxxxx/default.asp?xxxstring=%12%12%21%21%3a%2f%2f%45%4d%41%49%4c%53%45%52%56%45%52%2f%33%33%33%68%61%6e%33%33%2f%7a%68%65%6e%67%79%75%6e%2f%25%45%36%25%39%34%25%42%36%25%33%33%33%42%42%25%42%36%25%45%37%25%41%45%25%42%31%2f%71%45%36%71%42%35%71%38%42%71%45%38%71%41%46%71%39%35%71%45%36%71%38%30%71%41%41%71%45%35%71%42%43%71%38%32%71%38%32%71%33%33%71%45%33%2e%45%4d%4c&UserID=0DB515A4-9FA8-41E9-9DE9-B449BFC95603&sssss=收件箱

Accept-Language: zh-cn

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; T312461)

Host: xyserver

Connection: Keep-Alive

Cookie: ASPSESSIONIDQGGGGYDG=KCDDMOJCKEBJCFGMNOOCCANH

然后,服务器干净利索地返回所有附件内容:

….HTTP/1.1 200 OK

Server: Microsoft-IIS/5.0

Date: Tue, 10 Sep 2002 10:35:32 GMT

Content-Type: application/msword

Content-Length: 468992

MS-WebStorage: 6.0.4712

Expires: Mon, 09 Sep 2002 10:35:32 GMT

后面跟的全是附件数据,此处略。

 

为什么会有这种区别呢?!

继续研究。

 

区别似乎在于请求的URL的长度:

可以通过的最少字节数的URL为:

http://xyserver/xx/xxxxx/xxxxxx.dll/迁移方案.doc?ClassName=xx_xxxxxxxxxx.xxxxxx&ssssss=CE0DB799-9590-4D41-97B2-41146F1F4B0F&Validate=YES&URL=http://XYZUSERVER/exchange/zhengyun/%E6%94%B6%E4%BB%B6%E7%AE%B1/%E8%BF%81%E7%A7%BB%E6%96%B9%33%33%32123123123.EML/迁移方案.doc

总长度为260个字节。

而下面这个URL就通不过,因为URL长度为259个字节:

http://xyserver/xx/xxxxx/xxxxxx.dll/迁移方案.doc?ClassName=ss_ssssssssss.ssssss&ssssss=ss0DB799-9590-4D41-97B2-41146F1F4B0F&Validate=YES&URL=http://XYZUSERVER/exchange/zhengyun/%E6%94%B6%E4%BB%B6%E7%AE%B1/%E8%BF%81%E7%A7%BB%E6%96%B9%E6%A1%8812312312.EML/迁移方案.doc

可能少于260个字节的访问远端Web site文件的请求,就被转移到FrontPageauthor.dll进行验证。

待考。

 

Writen by zhengyun@tomosoft.com

 

本文档所包含的信息代表了在发布之日,ZhengYun 对所讨论问题的当前看法,Zhengyun 不保证所给信息在发布之日以后的准确性。

本文档仅供参考。对本文档中的信息,Zhengyun 不做任何明示或默示的保证。

 

参考文献:

R        http://www.xato.net/Reference/webfolders.txt

R        新闻群组:microsoft.public.inetserver.iis的邮件(寄件者:Jerry Bryant [MS] 主旨:Re: URLScan IIS Security Tool!!  日期:2001-09-13 16:17:42 PST)

 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12688


原创粉丝点击