一种被忽视的攻击方式-padding oracle

简介:

 来源:http://t00ls.net/thread-15293-1-1.html
之前搞一个目标站的时候用WVS扫描,出现”asp.net padding oracle ”这么一条高危漏洞,由于之前没听说过,便到网上查了一下资料。这技术其实是去年被发现的,还有一个称呼是ms10-070,不过目前国内研究的人好像还不多,查到的资料几乎都是国外的,其实这技术的危害性还是很巨大的,就拿针对asp.net来说,可以读出web.config等一些敏感文件的内容,具体原理大家可以去
http://www.gdssecurity.com/l/b...oracle-attacks-with-padbuster/
查看,跟我一样英文不好的同学可以去
http://blog.zhaojie.me/2010/10...g-oracle-attack-in-detail.html
看译文。
这个GDS安全组织还开发了一款针对padding oracle攻击的工具padbuster.pl,并且在http://www.gdssecurity.com/l/b/2 ... ding-oracle-attack/给出了一个使用此工具针对asp.net攻击的简单介绍。
这里本人发一个自己测试asp.net的实例演示,由于本人对此技术研究尚浅,发此文只希望起到一个抛砖引玉的作用,希望更多的人关注它。
  首先访问目标站www.xxx.com/default.aspx,通过源码查找WebResource.axd,这里注意一下,通过WebResource.axd调用文件可能在任意的.net文件中,因此首页没有的话大家也可以去其他页面找找



复制&符号前面这一段WebResource.axd?d=9MBwmxN6TLKjC8S3CdFGyw2,加在url后面就变成www.xxx.com/WebResource.axd?d=9MBwmxN6TLKjC8S3CdFGyw2,运行工具padbuster.pl输入如下命令
Padbuster.pl http://www.xxx.com/WebResource.axd?d=9MBwmxN6TLKjC8S3CdFGyw2 9MBwmxN6TLKjC8S3CdFGyw2 16 -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为例,运行后 如图所示



经过一段时间的运行,程序会给出这样一个界面,



这里是让我们选择一个相应模式,并且**表示程序推荐的,那么这里就选择程序推荐的2号模式,经过较长时间的等待之后,出现如下结果




这 里产生的字符串就是我们要读取的文件web.config加密后和一些填充字符组成,因为此时我们不知道密钥,但是.net的加密方式是开源的,所以我们 可以生成出一个加密后的web.config字符串,其他部分先用字符填充,当应用程序接受到加密后的值以后,它将返回三种情况:
•        接受到正确的密文之后(填充正确且包含合法的值),应用程序正常返回(200 - OK)。
•        接受到非法的密文之后(解密后发现填充不正确),应用程序抛出一个解密异常(500 - Internal Server Error)。
•        接受到合法的密文(填充正确)但解密后得到一个非法的值,应用程序显示自定义错误消息(200 - OK)。
这就是产生padding oracle(填充提示)攻击的关键,正是因为状态码的值,使我们可以对填充的数据进行暴力破解,也正是由于涉及到暴力,使得这种攻击方式也很费时(不过一天内基本都可以搞定)。
接下来我们就进行爆破的步骤,输入命令
padBuster.pl http://www.xxx.com/ScriptResourc ... AAAAAAAAAAAAAAAAAA1 IzMwcbUWEeU5zdlKo7JhGwAAAAAAAAAAAAAAAAAAAAA1 16 -encoding 3 -bruteforce –log
继续进行一个响应模式的选择后,就会看到不断变换填充的数值来进行探测




同 时会在程序目录下生成一个log文件夹,不管404和200的提交结果都会作为记录,而且有很多状态为200的文件其实并不是真正的 web.config,访问后会发现是空白,不过这里告诉大家一个快速查找的方法,因为错误的404页面和空白的200页面返回字节数不会很多,本人测试 的这个例子中都在4k以下,因此我们可以在当前目录查找所有小于4k的文件,然后全选删除掉就OK了



经过大半天的爆破,我们发现了大小13k的log文件,访问后结果如图



按照所给的url访问如图



看 到这一步,我想这是什么文件大家就都应该明白了,按照网上的说法,padding oracle跟注入的存在一样普遍,本人在此没有讲太多关于原理的东西实在是因为没有特别深入的了解,讲多了反而怕误导大家,所以希望大家去我前面引用到 的文章自己看一下原理,按照我最粗俗的理解,asp.net padding oracle其实就是一个解密字符串,同时爆破到密钥,然后在加密我们想得到的文件,以便进行一次正确格式的提交来读取到我们想看到的文件内容。
这里我也在网上找到了一个国外的演示视频
http://www.youtube.com/watch?v=tlCRivo8Sis
希望能加深大家的认识,最后希望各位大牛能通过本人的这篇文章去关注这个漏洞,同时写出一些更加完整的资料以便大家更好的学习,也欢迎对此漏洞感兴趣的朋友与我共同探讨,本人的msn:alwaystest@hotmail.com
有同学说英文不好找不到程序的下载,这里我也提供出来吧,因为是开源的,所以也希望有大牛能开发出更好更方便的工具















本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/538399,如需转载请自行联系原作者

相关文章
|
安全 算法 Oracle
2010年度最有技术含量攻击:Padding Oracle Attack
本文目的 向非安全方向的技术人员,特别是软件架构师介绍Padding Oracle的基本原理及其危害,以避免无意中在软件设计和技术选型过程里留下安全隐患。 Padding Oracle Attack的一些背景资料 这个攻击引起广泛关注是在今年5月的ekoparty安全会议上,两位安全工程师Julinao Rizzo和Thai Duong共同发表了一篇名为Practical Padding Oracle Attacks的论文。
1409 0
|
Oracle 关系型数据库 Ruby
【转】 一种被忽视的攻击方式-padding oracle
 http://hi.baidu.com/hackxiaolong/blog/item/88b7397e71d0021d29388a13.
646 0
|
Oracle 安全 关系型数据库
详解ASP.NET的最新安全漏洞,Padding Oracle攻击原理及其他
微软在9月17日中午正式对外公布了ASP.NET平台下的安全漏洞,即Microsoft Security Advisory (2416728)。 SecurityFocus上已将此漏洞定义成了"Design Error",那么微软一开始的设计就是错误的,为什么这么说呢?且待我们慢慢来分析。
1124 0
|
Oracle 关系型数据库 API
POET : Padding Oracle Exploit Tool
Practical Padding Oracle Attacks At Eurocrypt 2002, Vaudenay introduced a powerful side-channel ...
909 0
|
6天前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
172 93
|
2月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
18天前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
76 8
|
2月前
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
110 11
|
2月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—服务器异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库没有备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。

推荐镜像

更多