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