webview 的漏洞让浏览器公开的 API 火了一把,不过时间如白驹过隙般“咻”的一下就过去了,webview 的代码执行漏洞是修了,可是 API 的安全问题貌似没有被关注啊。
1、反编译 QQ 浏览器的 apk,然后通过老办法,搜索关键字“addJavascriptInterface”来查找都有哪些公开哪些接口给 JavsScript 调用。如下:
2、根据上面的跟进代码去看看接口都有些什么方法,这些方法都做了些什么?看到这个函数名 readFileByJS ,额,有戏呀,然后看代码
整个代码的逻辑是需要受这句代码 while(!checkQQDomain() || s == null || l < 0L || i < 0); 限制的,看checkQQDomain应该是判断是不是腾讯的域名,在其他代码中找到这个函数的定义:
差不差,懂半拉。
整个流程就是判断是不是 qq.com 或者 soso.com 的域名,如果是就读取文件,可以指定读取的开始位置以及指定的长度。
3、手机上修改 hosts 文件随便解析一个 qq.com 的二级域名测试下(我找个xss估计也不会多给我分的),poc 代码如下:
/sdcard/x5mtt.txt 是我自己测试生成的文件,然后我本地解析 victim.qq.com 域名,访问后如下图: