翻译软件劫持攻击
你相信你的鼠标吗?
有没有想过,当你的鼠标在选取一段话,通过翻译软件的平面取词功能进行翻译,然后就被躲在角落的某个家伙给hack了。
–xeye hack team。
假如我们要完成以上的攻击,需要满足的条件:
1.找到翻译软件的漏洞,而且是remote的。
2.假设1成立,那么remote可以借助浏览器来搭桥,所以浏览器必须可以被翻译软件取词等等。
那么就来找找一些翻译软件的问题吧。。。
最常见的莫属金山词霸和GOOGLE的合作版,接着是灵格斯,有道。
由于翻译软件没有和浏览器直接存在ACTIVE接口之类的调用,他们之间的关联就只有取词了。
那么,从取词这里下手。先看看软件对于内置浏览器有没有做保护:
灵格斯:
假如直接在软件查词里搜索<iframe width=10 height=10 src=http://www.baidu.com></iframe>之类的语句,没有被执行,会看到它自动进行智能取词去翻译,因 为当前的《符号没有在词典里找到。
但是假如构造只有一个符号在词典里能找到的,那么它会识别为一个语句,进行全文翻译,这时候问题就来了:
分析网络数据包可以发现。其他调用的是GOOGLE的在线翻译,然后在返回的数据里进行出来,也就是用google的全文翻译功能。那个白色的东西就是一个框架了。但这个框架可能由于软件内部的一些限制,没能读取到百度的数据并显示。
但至少可以执行代码了。
现在看看词霸的:
不需要任何构造,直接就完美跨站了。
但是使用脚本标签的时候,会发现没有被执行,因为找到翻译了。那怎办?
上其他标签,然后加Js伪协议:
<img onerror=”javascript:alert();” src =g.cn></img>
好吧。但由于输入框的长度限制,其实也做不了什么事情。你可以把词霸变成浏览器,在里面用百度,或者你可以试试在里面访问到挂马网站会不会被溢出等等……也许会发现一个简陋的安全浏览器……
另外还有有道翻译。它是调用它自己网站的搜索服务,然后在客户端显示,显然它自己网站的过滤做的不错。没什么明显问题。就不找它茬了。
但是!我们要remote!
再来看看那2个出问题的软件,提供了什么样的功能可以被利用。通过本地的测试,已经可以大概想到怎么构造语句来触发有问题的功能了,因为已经知道在哪个地方出问题,并且有什么限制,有什么过滤。
灵格斯的屏幕取词功能:通过鼠标选取指定的字符数目,然后进行全文翻译。
词霸的屏幕取词功能:假如你开启了分词功能,那就可以实现和灵格斯一样的功能了。要不然只是单词翻译。
通过抓包可以看到,灵格斯是通过链接网络来实现全文翻译的,它发送类似字符串到:
还有
然后尝试在返回结果里找到翻译结果。但一般只能找到google的全文翻译结果。
经过测试发现,灵格斯在处理全文翻译的时候,对于GOOGLE返回的数据处理出现问题,在屏幕取词时假如包含HTML代码,软件会进行解析。那只要构造一个简单的字符串让灵格斯进行翻译就可以实现本文开头所说的效果。
测试字符串<img onerror=”javascript:document.write(‘<iframe width=10 height=10 src=http://www.baidu.com></iframe>’);” src = http://www.g.cn></img>
只要使用灵格斯对全部字符进行选择,屏幕取词会进行全文翻译,就可以打开百度的首页了。
关于各种利用技巧,大家可以留言一起讨论。
淫荡的一天又开始了!
Just for fun !
作者真会找茬~~
虽然没怎么看懂,但是我的谷歌金山合作版用那个代码搜不出百度,奇怪中
不好意思发重复了。我以为文本框上面那个“修改”是改原贴。
刚才大意了,没注意宽和高都是10,改成300*160。果然很好玩。
很无耻很淫荡的方法