漏洞信息
WordPress特制字符串URL重定向限制绕过漏洞
CVE-2013-4339
WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设自己的网志
WordPress在处理特制的字符串时存在重定向漏洞,允许远程攻击者利用漏洞构建恶意URI,诱使用户解析,来绕过重定向限制,对目标用户进行网络钓鱼等攻击。
探测脚本
原理很简单,如果跳转了,响应信息中一定包含跳转网站信息。
payload = "/wp-content/plugins/wp-noexternallinks/goto.php?www.baidu.com"
if code == 200 and "www.baidu.com" in content:
判断漏洞存在
核查误报
效果测试并查看响应信息
使用payload访问站点,并没有跳转到指定站点。
打开报告漏洞的网站,查看payload的响应信息如下。
<!-- Open Graph -->
<meta property="og:url" content="https://domain/wp-content/plugins/wp-noexternallinks/goto.php?www.baidu.com">
<meta property="og:type" content="website">
对比测试-不同payload:直接访问https://domain,正常信息如下,推断站点把 URL 打印在了meta属性中,并没有执行重定向访问操作。
<!-- Open Graph -->
<meta property="og:url" content="https://domain/">
<meta property="og:type" content="website">
误报分析
漏洞存在的判断条件:使用 burpsuite 抓包访问 www.baidu.com,发现判断条件 www.baidu.com
不存在于 meta 属性,多存在于 link 标签中。可以考虑更改判断条件,比如进行一个属性的匹配,又或者把判断条件修改成必然存在的响应信息 www.baidu.com/img
。
误报原因,在于 <!-- Open Graph -->
的 meta 属性,该属性会声明并打印所访问的 URL,导致检测出现预期外的错误。
从HTML中寻找答案
meta标签
META标签:是HTML语言HEAD区的一个辅助性标签,通常用来为搜索引擎robots定义页面主题,或者是定义用户浏览器上的cookie;它可以用于鉴别作者,设定页面格式,标注内容提要和关键字;还可以设置页面使其可以根据你定义的时间间隔刷新自己,以及设置RASC内容等级。
新的HTTP头部标记 og
Meta Property=og标签是什么呢?
<!-- Open Graph -->
<meta property="og:url" content="https://domain">
og是一种新的HTTP头部标记,即Open Graph Protocol:The Open Graph Protocol enables any web page to become a rich object in a social graph.+ n3 },即这种协议可以让网页成为一个"富媒体对象"。
用了Meta Property=og标签,就是你同意了网页内容可以被其他社会化网站引用等,目前这种协议被SNS网站如Fackbook、renren采用。
SNS(Social Networking Services,即社会性网络服务)已经成为网络上的一大热门应用,优质的内容通过分享在好友间迅速传播。为了提高站外内容的传播效率,2010年F8会议上Facebook公布 了一套开放内容协议(Open Graph Protocol),任何网页只要遵守该协议,SNS就能从页面上提取最有效的信息并呈现给用户。