查看网站localstorage

时间:2016-04-29 14:43:50

标签: javascript html5 google-chrome local-storage

我想从我的桌面运行一个Javascript脚本,可以从提供的google chrome .localstorage文件中提取信息,我很好奇如何做到这一点。我知道有localstorage,但这是在浏览器中。我希望能够指定'\ .config \ google-chrome \ Default \ Local Storage \ Default \ http_asite.com_0.localstorage',然后在其中返回k,v对。我知道它可以读取某些容量,因为您可以使用DB Browser之类的工具来执行此操作。

1 个答案:

答案 0 :(得分:0)

SOOOO,如果有其他人想要这样做,我写了这项工作正在进行中。它是UAF但是将所有k,v对连接成一个字符串然后被解析出来。由于没有非常好的格式来与sqlite3进行交互,因此表格不容易找到,并且值存储为blob,它只是PITA要做的。索引用于包含通常会被删除的字符(因此,如果需要,可以添加更多字符)。注意:这是一个mac目录,ubuntu和Window用户需要考虑到这一点。

function get_storage() {
    var arrayBuffer;
    var file_path = '/Users/you/Library/Application\ Support/Google/Chrome/Default/Local\ Storage/asite.com.localstorage';
    fs = require('fs');
    fs.readFile(file_path, 'utf8', function (err, data) {
        if (err) {
            return console.log(err);
        } else {
            data = data.toString();
            // Weed out garbage
            data = data.replace(/[^\x00-\x7F]/g, "").replace(/\0/g, '').replace(/\3/g, '').replace('FAIL)', '').split(" ");
            var user_credentials = data[data.length - 1].split("");
            var my_result = [];
            // Account for js keywords 
            for (var i = 0; i < user_credentials.length; i++) {
                if (/\r|\n|\t|\b/.exec(user_credentials[i]) != null ||
                    user_credentials[i].indexOf("@") > -1 ||
                    user_credentials[i].indexOf("!") > -1 ||
                    user_credentials[i].indexOf(".") > -1) {
                    my_result.push(user_credentials[i]);
                }
            }
            // final sweep because some will get missed
            my_result = my_result.join("").split("\n")[0].split("\r")[1];
            // a site's local storage
            console.log(my_result)

        }
    });
}

get_storage();