mirror of
https://github.com/moonD4rk/HackBrowserData.git
synced 2026-06-02 19:41:36 +02:00
feat: add yandex password and creditcard
This commit is contained in:
@@ -50,6 +50,10 @@ func (d *Data) addSource(Sources []item.Item) {
|
|||||||
d.Sources[source] = &ChromiumDownload{}
|
d.Sources[source] = &ChromiumDownload{}
|
||||||
case item.ChromiumCreditCard:
|
case item.ChromiumCreditCard:
|
||||||
d.Sources[source] = &ChromiumCreditCard{}
|
d.Sources[source] = &ChromiumCreditCard{}
|
||||||
|
case item.YandexPassword:
|
||||||
|
d.Sources[source] = &YandexPassword{}
|
||||||
|
case item.YandexCreditCard:
|
||||||
|
d.Sources[source] = &YandexCreditCard{}
|
||||||
case item.FirefoxPassword:
|
case item.FirefoxPassword:
|
||||||
d.Sources[source] = &FirefoxPassword{}
|
d.Sources[source] = &FirefoxPassword{}
|
||||||
case item.FirefoxCookie:
|
case item.FirefoxCookie:
|
||||||
|
|||||||
@@ -58,3 +58,51 @@ func (c *ChromiumCreditCard) Parse(masterKey []byte) error {
|
|||||||
func (c *ChromiumCreditCard) Name() string {
|
func (c *ChromiumCreditCard) Name() string {
|
||||||
return "creditcard"
|
return "creditcard"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type YandexCreditCard []card
|
||||||
|
|
||||||
|
func (c *YandexCreditCard) Parse(masterKey []byte) error {
|
||||||
|
creditDB, err := sql.Open("sqlite3", item.TempYandexCreditCard)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer os.Remove(item.TempYandexCreditCard)
|
||||||
|
defer creditDB.Close()
|
||||||
|
rows, err := creditDB.Query(queryChromiumCredit)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
for rows.Next() {
|
||||||
|
var (
|
||||||
|
name, month, year, guid string
|
||||||
|
value, encryptValue []byte
|
||||||
|
)
|
||||||
|
if err := rows.Scan(&guid, &name, &month, &year, &encryptValue); err != nil {
|
||||||
|
log.Warn(err)
|
||||||
|
}
|
||||||
|
creditCardInfo := card{
|
||||||
|
GUID: guid,
|
||||||
|
Name: name,
|
||||||
|
ExpirationMonth: month,
|
||||||
|
ExpirationYear: year,
|
||||||
|
}
|
||||||
|
if masterKey == nil {
|
||||||
|
value, err = decrypter.DPApi(encryptValue)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
value, err = decrypter.ChromePass(masterKey, encryptValue)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
creditCardInfo.CardNumber = string(value)
|
||||||
|
*c = append(*c, creditCardInfo)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func (c *YandexCreditCard) Name() string {
|
||||||
|
return "creditcard"
|
||||||
|
}
|
||||||
|
|||||||
@@ -77,6 +77,65 @@ func (c *ChromiumPassword) Name() string {
|
|||||||
return "password"
|
return "password"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type YandexPassword []loginData
|
||||||
|
|
||||||
|
func (c *YandexPassword) Parse(masterKey []byte) error {
|
||||||
|
loginDB, err := sql.Open("sqlite3", item.TempYandexPassword)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer os.Remove(item.TempYandexPassword)
|
||||||
|
defer loginDB.Close()
|
||||||
|
rows, err := loginDB.Query(queryChromiumLogin)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
|
for rows.Next() {
|
||||||
|
var (
|
||||||
|
url, username string
|
||||||
|
pwd, password []byte
|
||||||
|
create int64
|
||||||
|
)
|
||||||
|
if err := rows.Scan(&url, &username, &pwd, &create); err != nil {
|
||||||
|
log.Warn(err)
|
||||||
|
}
|
||||||
|
login := loginData{
|
||||||
|
UserName: username,
|
||||||
|
encryptPass: pwd,
|
||||||
|
LoginUrl: url,
|
||||||
|
}
|
||||||
|
if len(pwd) > 0 {
|
||||||
|
var err error
|
||||||
|
if masterKey == nil {
|
||||||
|
password, err = decrypter.DPApi(pwd)
|
||||||
|
} else {
|
||||||
|
password, err = decrypter.ChromePass(masterKey, pwd)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
log.Error(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if create > time.Now().Unix() {
|
||||||
|
login.CreateDate = utils.TimeEpochFormat(create)
|
||||||
|
} else {
|
||||||
|
login.CreateDate = utils.TimeStampFormat(create)
|
||||||
|
}
|
||||||
|
login.Password = string(password)
|
||||||
|
*c = append(*c, login)
|
||||||
|
}
|
||||||
|
// sort with create date
|
||||||
|
sort.Slice(*c, func(i, j int) bool {
|
||||||
|
return (*c)[i].CreateDate.After((*c)[j].CreateDate)
|
||||||
|
})
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *YandexPassword) Name() string {
|
||||||
|
return "password"
|
||||||
|
}
|
||||||
|
|
||||||
type FirefoxPassword []loginData
|
type FirefoxPassword []loginData
|
||||||
|
|
||||||
func (f *FirefoxPassword) Parse(masterKey []byte) error {
|
func (f *FirefoxPassword) Parse(masterKey []byte) error {
|
||||||
|
|||||||
@@ -98,9 +98,9 @@ var (
|
|||||||
qqBrowserProfilePath = homeDir + "/AppData/Local/Tencent/QQBrowser/User Data/"
|
qqBrowserProfilePath = homeDir + "/AppData/Local/Tencent/QQBrowser/User Data/"
|
||||||
operaProfilePath = homeDir + "/AppData/Roaming/Opera Software/Opera Stable/"
|
operaProfilePath = homeDir + "/AppData/Roaming/Opera Software/Opera Stable/"
|
||||||
operaGXProfilePath = homeDir + "/AppData/Roaming/Opera Software/Opera GX Stable/"
|
operaGXProfilePath = homeDir + "/AppData/Roaming/Opera Software/Opera GX Stable/"
|
||||||
vivaldiProfilePath = homeDir + "/AppData/Local/Vivaldi/User Data/Default/"
|
vivaldiProfilePath = homeDir + "/AppData/Local/Vivaldi/User Data/"
|
||||||
coccocProfilePath = homeDir + "/AppData/Local/CocCoc/Browser/User Data/Default/"
|
coccocProfilePath = homeDir + "/AppData/Local/CocCoc/Browser/User Data/"
|
||||||
yandexProfilePath = homeDir + "/AppData/Local/Yandex/YandexBrowser/User Data/Default"
|
yandexProfilePath = homeDir + "/AppData/Local/Yandex/YandexBrowser/User Data/"
|
||||||
|
|
||||||
firefoxProfilePath = homeDir + "/AppData/Roaming/Mozilla/Firefox/Profiles/"
|
firefoxProfilePath = homeDir + "/AppData/Roaming/Mozilla/Firefox/Profiles/"
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user