欢迎来到 无奈人生 安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

上传web.config文件获取远程代码执行权限

来源: 作者: 时间:2019-02-24 21:00 点击: 我要投稿
广告位API接口通信错误,查看德得广告获取帮助


本文讲述的是,我通过上传一个web.config文件,绕过目标测试网站的黑名单机制,突破执行权限限制,实现ASP代码运行获取远程代码执行权限。
前言
无聊的学校实习期,做完试验后无事可做,于是,在获得对学校网站的测试授权后,我就来了兴致。经过一番简单的前期侦测之后,我发现了某个网站存在的上传功能比较有意思。从服务探测阶段可知,该网站是一台IIS服务器,遇到这种网站,我通常会在网站URL中加上/来进行测试,由于ASP.NET默认设置有XSS攻击过滤功能,于是,服务器对/这样的测试返回了以下类似的错误响应消息:

Server Error in ‘/’ Application.
A potentially dangerous Request.Path value was detected from the client (
在这个返回页底部,我查看到了具体的ASP.NET版本,还有一个Microsoft的服务器头信息:
Server: Microsoft-IIS/8.5
测试
有了这些信息之后,我就想看看是否存在一些未授权的文件上传功能。经过‘.aspx’、‘.asp’ 和 ‘.asmx’等不同后缀文件的上传测试后,都是返回了错误消息页面。
Description: Upload failed – Access Denied. User 1523151 does not have permissions to add content package to folder with ID 56424856
唉,得试着转变下思路。因为我有好多年的ASP.NET编程经验,经过了这些不同后缀的文件执行测试之后,我多少对这个网站的上传机制有所了解。能不能上传一个包含正常元数据和与网站应用相关内容的文件呢?这里,我想到了‘.htaccess’ 文件,但由于这是一台Windows服务器,所以对应的文件应该是web.config,但我从来没尝试上传过这种.config文件啊。
Web.config文件
什么是web.config文件呢?
Web.config文件是一个XML文本文件,它用来储存ASP.NETWeb 应用程序的配置信息(如最常用的设置ASP.NETWeb 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件,它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。web.config文件放置在要目录下则会对整个网站产生影响,如果放置在其它目录之下,则只会对当前目录产生影响。
通过web.config文件,我们可以对以下网站属性进行控制:
Database connection strings. (数据库连接字符串)
Error behavior.(错误操作)
Security.(安全性)
由于web.config文件是XML文本,不像‘.html’ 或 ‘.txt等特殊后缀格式,所以,我想尝试来上传个web.config看看,这一传可不得了,竟然没返回任何错误响应消息页面,而且这个web.config被成功上传到了目标服务器网站的某个目录下了。
利用web.config
好吧,现在我们想办法来利用这条途径,经过一番研究,我发现在这篇文章中有安全人员提到过,在web.config文件中添加代码实现了ASP代码运行的方式,于是,我经过改装,在其中添加了执行系统CMD命令的代码,如下:
1.0″ encoding=”UTF-8″?>
”)
Response.write(“
”)
Set wShell1 = CreateObject(“WScript.Shell”)
Set cmd1 = wShell1.Exec(“whoami”)
output1 = cmd1.StdOut.Readall()
set cmd1 = nothing: Set wShell1 = nothing
Response.write(output1)
Response.write(“
–>
以上代码在web.config中添加了一个可读可写权限的处理句柄程序,然后我们在之内写入了服务器端命令执行代码。当把这个web.config文件上传成功之后,浏览访问它,就会执行系统命令whoami命令,之后可成功返回 ‘nt authority\system,这样就获得了一个远程代码执行权限!是不是很屌。剩下的就是好好写一份渗透测试报告,对这个漏洞进行上报了。
 


本文讲述的是,我通过上传一个web.config文件,绕过目标测试网站的黑名单机制,突破执行权限限制,实现ASP代码运行获取远程代码执行权限。
前言
无聊的学校实习期,做完试验后无事可做,于是,在获得对学校网站的测试授权后,我就来了兴致。经过一番简单的前期侦测之后,我发现了某个网站存在的上传功能比较有意思。从服务探测阶段可知,该网站是一台IIS服务器,遇到这种网站,我通常会在网站URL中加上/来进行测试,由于ASP.NET默认设置有XSS攻击过滤功能,于是,服务器对/这样的测试返回了以下类似的错误响应消息:

Server Error in ‘/’ Application.

copyright 无奈人生

A potentially dangerous Request.Path value was detected from the client (
在这个返回页底部,我查看到了具体的ASP.NET版本,还有一个Microsoft的服务器头信息:
Server: Microsoft-IIS/8.5
测试
有了这些信息之后,我就想看看是否存在一些未授权的文件上传功能。经过‘.aspx’、‘.asp’ 和 ‘.asmx’等不同后缀文件的上传测试后,都是返回了错误消息页面。
Description: Upload failed – Access Denied. User 1523151 does not have permissions to add content package to folder with ID 56424856
唉,得试着转变下思路。因为我有好多年的ASP.NET编程经验,经过了这些不同后缀的文件执行测试之后,我多少对这个网站的上传机制有所了解。能不能上传一个包含正常元数据和与网站应用相关内容的文件呢?这里,我想到了‘.htaccess’ 文件,但由于这是一台Windows服务器,所以对应的文件应该是web.config,但我从来没尝试上传过这种.config文件啊。
Web.config文件
什么是web.config文件呢?
Web.config文件是一个XML文本文件,它用来储存ASP.NETWeb 应用程序的配置信息(如最常用的设置ASP.NETWeb 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件,它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。web.config文件放置在要目录下则会对整个网站产生影响,如果放置在其它目录之下,则只会对当前目录产生影响。 无奈人生安全网
通过web.config文件,我们可以对以下网站属性进行控制:
Database connection strings. (数据库连接字符串)
Error behavior.(错误操作)
Security.(安全性)
由于web.config文件是XML文本,不像‘.html’ 或 ‘.txt等特殊后缀格式,所以,我想尝试来上传个web.config看看,这一传可不得了,竟然没返回任何错误响应消息页面,而且这个web.config被成功上传到了目标服务器网站的某个目录下了。
利用web.config
好吧,现在我们想办法来利用这条途径,经过一番研究,我发现在这篇文章中有安全人员提到过,在web.config文件中添加代码实现了ASP代码运行的方式,于是,我经过改装,在其中添加了执行系统CMD命令的代码,如下:
1.0″ encoding=”UTF-8″?>
”)
Response.write(“
”)
Set wShell1 = CreateObject(“WScript.Shell”)
Set cmd1 = wShell1.Exec(“whoami”)
output1 = cmd1.StdOut.Readall()
set cmd1 = nothing: Set wShell1 = nothing
Response.write(output1)
Response.write(“
–>
以上代码在web.config中添加了一个可读可写权限的处理句柄程序,然后我们在之内写入了服务器端命令执行代码。当把这个web.config文件上传成功之后,浏览访问它,就会执行系统命令whoami命令,之后可成功返回 ‘nt authority\system,这样就获得了一个远程代码执行权限!是不是很屌。剩下的就是好好写一份渗透测试报告,对这个漏洞进行上报了。 www.wnhack.com
  本文来自无奈人生安全网

。 (责任编辑:admin)
【声明】:无奈人生安全网(http://www.wnhack.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱472701013@qq.com,我们会在最短的时间内进行处理。