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

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

 来源: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的论文。
1374 0
|
Oracle 关系型数据库 Ruby
【转】 一种被忽视的攻击方式-padding oracle
 http://hi.baidu.com/hackxiaolong/blog/item/88b7397e71d0021d29388a13.
622 0
|
Oracle 安全 关系型数据库
详解ASP.NET的最新安全漏洞,Padding Oracle攻击原理及其他
微软在9月17日中午正式对外公布了ASP.NET平台下的安全漏洞,即Microsoft Security Advisory (2416728)。 SecurityFocus上已将此漏洞定义成了"Design Error",那么微软一开始的设计就是错误的,为什么这么说呢?且待我们慢慢来分析。
1051 0
|
Oracle 关系型数据库 API
POET : Padding Oracle Exploit Tool
Practical Padding Oracle Attacks At Eurocrypt 2002, Vaudenay introduced a powerful side-channel ...
876 0
|
2月前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
200 64
|
16天前
|
存储 Oracle 关系型数据库
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
62 11
|
29天前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
1月前
|
存储 Oracle 关系型数据库
oracle数据恢复—Oracle数据库文件大小变为0kb的数据恢复案例
存储掉盘超过上限,lun无法识别。管理员重组存储的位图信息并导出lun,发现linux操作系统上部署的oracle数据库中有上百个数据文件的大小变为0kb。数据库的大小缩水了80%以上。 取出&并分析oracle数据库的控制文件。重组存储位图信息,重新导出控制文件中记录的数据文件,发现这些文件的大小依然为0kb。
|
22天前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。