private static DomainIgnore DictionaryToDomainIgnore(Dictionary <string, Object> vals) { DomainIgnore ignore = new DomainIgnore(); ignore.DomainIgnoreId = DatabaseUtilities.SafeMapToInt32(vals, "domain_ignore_id"); ignore.DomainToIgnore = DatabaseUtilities.SafeMapToString(vals, "domain_to_ignore"); ignore.DomainId = DatabaseUtilities.SafeMapToInt32(vals, "domain_id"); return(ignore); }
private DomainIgnore DataRowToDomain(DataRowView row) { DomainIgnore ignore = new DomainIgnore(); ignore.DomainIgnoreId = DatabaseUtilities.SafeMapToInt32(row["domain_ignore_id"], "domain_ignore_id"); ignore.DomainToIgnore = DatabaseUtilities.SafeMapToString(row["domain_to_ignore"]); ignore.DomainId = DatabaseUtilities.SafeMapToInt32(row["domain_id"], "domain_id"); return(ignore); }
private static void BindUpdateParameters(DomainIgnore domainIgnore, DbUpdater updater, bool includeId = true) { if (includeId) { updater.BindParameter("domain_ignore_id", System.Data.DbType.Int32, domainIgnore.DomainIgnoreId); } updater.BindParameter("domain_to_ignore", System.Data.DbType.String, domainIgnore.DomainToIgnore); updater.BindParameter("domain_id", System.Data.DbType.Int32, domainIgnore.DomainId); }
public UpdateResult Insert(DomainIgnore ignore) { var result = new UpdateResult(); try { DbUpdater updater = new DbUpdater(); BindUpdateParameters(ignore, updater, false); result.Id = updater.Insert("domain_ignore"); } catch (Exception ex) { result.Error = true; result.Message = ex.Message; if (ex.InnerException != null) { result.Message += " Inner: " + ex.InnerException.Message; } } return(result); }
private DomainIgnoreFindResult GenericFind(string whereClause, List <DbField> parameters) { DomainIgnoreFindResult result = new DomainIgnoreFindResult(); try { DbAccessor connection = new DbAccessor(); AddAccessorSelectors(connection); if (!String.IsNullOrEmpty(whereClause)) { connection.SetWhereClause(whereClause, parameters); } List <string> tables = new List <string>(); tables.Add("domain_ignore"); DataView dataView = connection.FindWhere(tables); foreach (DataRowView row in dataView) { DomainIgnore ignore = DataRowToDomain(row); result.Items.Add(ignore); } } catch (Exception ex) { result.Error = true; result.Message = ex.Message; if (ex.InnerException != null) { result.Message += " Inner: " + ex.InnerException.Message; } } return(result); }
private void _btnProgramLoad_Click(object sender, EventArgs e) { List <HackingTarget> items = JsonLoader.Load(@"C:\Alternative\Source\doc.json"); DomainController domainController = new DomainController(); DomainIgnoreController ignoreController = new DomainIgnoreController(); foreach (HackingTarget item in items) { foreach (Target target in item.Targets.in_scope) { string platform = ""; if (item.URL.Contains("hackerone")) { if (!target.asset_type.Equals("URL")) { continue; } platform = "hackerone"; } if (item.URL.Contains("bugcrowd")) { //if (!target.type.Equals("website")) if (!target.target.Contains("http")) { continue; } platform = "bugcrowd"; } string domaintext = target.asset_identifier; if (String.IsNullOrEmpty(domaintext)) { domaintext = target.target; } domaintext = domaintext.Replace("*.", "").Replace("https://", "").Replace("http://", "").Replace("(", "").Replace(")", "").Split('?')[0].Split('/')[0]; string regex = "(\\[.*\\])|(\".*\")|('.*')|(\\(.*\\))|(<.*>)"; domaintext = Regex.Replace(domaintext, regex, ""); string[] parts = domaintext.Split('.'); if (parts.Length >= 2) { int count = parts.Length - 1; domaintext = parts[count - 1] + "." + parts[count]; } Clark.Domain.Data.Domain domain = domainController.FindByDomain(domaintext); if (domain == null) { domain = new Domain(); domain.Platform = platform; domain.BountyURL = item.URL; domain.BountyEndDate = new DateTime(2999, 12, 31); domain.Private = false; domain.DomainName = domaintext; UpdateResult res = domainController.Insert(domain); if (res.Error) { MessageBox.Show(target.asset_identifier + " error"); } } } foreach (Target target in item.Targets.out_of_scope) { if (!target.asset_type.Equals("URL")) { continue; } DomainIgnore ignore = ignoreController.FindByIgnoreDomain(target.asset_identifier.Replace("*.", "")); if (ignore == null) { ignore = new DomainIgnore(); string domain2Ignore = target.asset_identifier; domain2Ignore = domain2Ignore.Replace("*.", "").Replace("https://", "").Replace("http://", "").Replace("(", "").Replace(")", "").Split('?')[0].Split('/')[0]; string regex = "(\\[.*\\])|(\".*\")|('.*')|(\\(.*\\))|(<.*>)"; domain2Ignore = Regex.Replace(domain2Ignore, regex, ""); ignore.DomainToIgnore = domain2Ignore; UpdateResult res = ignoreController.Insert(ignore); if (res.Error) { MessageBox.Show(target.asset_identifier + " error"); } } } } }