开发者社区> 余二五> 正文

浏览器安全与MSAA

简介:
+关注继续查看
      对于互联网应用而言,安全是一个不可忽视的问题。特别是电子商务类应用,更是重中之重。由于目前国内电子商务发展越来越迅猛,很多木马开始把注意力转到它上面来。这些木马往往有一个很重要的特点就是具有明显的经济利益性目的。
 
        根据分析和研究表明,这类木马通常并没有使用很高深的技术手段,主要原因就是浏览器自身的脆弱性。从OS角度来说,浏览器是一个很普通的应用程序,没有任何保护措施。木马可以很方便的通过某些方式来篡改浏览器数据。

        比较常见的一种就是利用MSAA技术来直接修改浏览器页面,这种修改只发生在内存中,这就是说即使我们查看当前页面源码,也不会发现任何异常。而实际上页面已经被修改了。值得关注的是,目前大部分安全防护软件都不会监视这块的应用。
MSAA是基于COM的技术,一般的调用模式首先是向浏览器窗口发送WM_HTML_GETOBJECT消息,然后通过MSAA的特有API即ObjectFromLresult()来取得对应页面的IHTMLDocument2接口。为了方便,一般顺便也一起获取IWebBrowser接口。剩下的工作就比较简单(但是很繁杂),查询MSDN文档来获取这两个接口所支持的操作即可。

下面演示一个DEMO,这个DEMO会将当前浏览器窗口中的百度首页的Logo换成Tomcat,如下图:

完整代码就不贴出了,关键性代码如下(C代码):
  CComBSTR domain(100); 
  CComPtr<IHTMLElement> htmBody; 
  CComPtr<IDispatch> bodyChildren; 
  CComPtr<IHTMLElementCollection> imgColl; 
  CComQIPtr<IHTMLWindow2> htmWin; 
  CComVariant v; 

  dom->get_domain(&domain); 
  if(domain == L"www.baidu.com") { 
    MessageBox(NULL, L"target detected~\n now have a look...", L"msg", 0); 
    dom->get_body(&htmBody); 
    //Execute js 
    CComBSTR jsToExecute =    
      L"document.getElementById('lg').innerHTML=\ 
        '<img src=\"http://tomcat.apache.org/images/tomcat.gif\"\ 
        width=\"270\" height=\"129\" usemap=\"#mp\"/>';"; 
    dom->get_parentWindow(&htmWin); 
    hr = htmWin->execScript(jsToExecute, L"javascript", &v); 
  }
其中,dom是一个已经获取的  IHTMLDocument2接口。
 
请勿将以上代码用于非法用途。这段代码的execScript方法调用后可能返回非S_OK的奇怪结果,原因是ATL相关类库的问题。

通过这个DEMO可以看到,从某种程度上说互联网应用的安全是一个比较严峻的问题。我们无法改变浏览器脆弱的事实,能改变的是用户的安全防护意识。如何培养起这个意识,是每个互联网从业者都应该思考的问题。









本文转自 kevx 51CTO博客,原文链接:http://blog.51cto.com/spinlock/569038,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
浏览器行为
浏览器行为
10 0
一文带你详细了解浏览器安全
1.同源策略 浏览器的同源策略,限制了来自不同源的“document”或脚本,对当前“document”读取或设置某些属性。 为了不让浏览器的页面行为发生混乱,浏览器提出了“Origin”(源)这一概念,来自不同Origin的对象无法互相干扰。 对于JavaScript来说,以下情况被认为是同源与不同源的:
41 0
浏览器突然好用多了。。。
我一向不掩饰对对浏览器插件的推崇。 首先,浏览器是日常工作中频繁接触的工具,借助浏览器这个平台,让插件触手可及,使用更加方便。 其次,插件普遍在几十KB或者上百KB,对比于动辄几十上百MB的桌面应用要轻量很多。
61 0
关于网页浏览器的一些实用小技巧
关于网页浏览器的一些实用小技巧
72 0
再见IE浏览器
再见IE浏览器
68 0
常见浏览器 | 学习笔记
快速学习常见浏览器
66 0
+关注
余二五
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
基于浏览器的实时构建探索之路
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载