/
mailto_scan.go
23 lines (20 loc) · 802 Bytes
/
mailto_scan.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package deanonymization
import (
"github.com/s-rah/onionscan/config"
"github.com/s-rah/onionscan/report"
"strings"
)
// MailtoScan Extracts any email addresses linked via mailto targets.
func MailtoScan(osreport *report.OnionScanReport, anonreport *report.AnonymityReport, osc *config.OnionScanConfig) {
for _, id := range osreport.Crawls {
crawlRecord, _ := osc.Database.GetCrawlRecord(id)
if strings.Contains(crawlRecord.Page.Headers.Get("Content-Type"), "text/html") {
for _, anchor := range crawlRecord.Page.Anchors {
if strings.HasPrefix(anchor.Target, "mailto:") {
anonreport.EmailAddresses = append(anonreport.EmailAddresses, anchor.Target[7:])
osc.Database.InsertRelationship(osreport.HiddenService, "mailto", "email-address", anchor.Target[7:])
}
}
}
}
}