bbot 2.3.0.5370rc0__py3-none-any.whl → 2.3.0.5382rc0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of bbot might be problematic. Click here for more details.

Files changed (157) hide show
  1. bbot/__init__.py +1 -1
  2. bbot/cli.py +2 -6
  3. bbot/core/config/files.py +0 -1
  4. bbot/core/config/logger.py +1 -1
  5. bbot/core/core.py +1 -1
  6. bbot/core/event/base.py +13 -16
  7. bbot/core/helpers/command.py +4 -4
  8. bbot/core/helpers/depsinstaller/installer.py +5 -5
  9. bbot/core/helpers/diff.py +7 -7
  10. bbot/core/helpers/dns/brute.py +1 -1
  11. bbot/core/helpers/dns/dns.py +1 -2
  12. bbot/core/helpers/dns/engine.py +4 -6
  13. bbot/core/helpers/dns/mock.py +0 -1
  14. bbot/core/helpers/files.py +1 -1
  15. bbot/core/helpers/helper.py +3 -1
  16. bbot/core/helpers/interactsh.py +3 -3
  17. bbot/core/helpers/libmagic.py +0 -1
  18. bbot/core/helpers/misc.py +11 -11
  19. bbot/core/helpers/process.py +0 -2
  20. bbot/core/helpers/regex.py +1 -1
  21. bbot/core/helpers/regexes.py +3 -3
  22. bbot/core/helpers/validators.py +1 -2
  23. bbot/core/helpers/web/client.py +1 -1
  24. bbot/core/helpers/web/engine.py +1 -2
  25. bbot/core/helpers/web/web.py +2 -3
  26. bbot/core/helpers/wordcloud.py +5 -5
  27. bbot/core/modules.py +21 -22
  28. bbot/db/sql/models.py +0 -1
  29. bbot/modules/azure_tenant.py +2 -2
  30. bbot/modules/baddns.py +0 -2
  31. bbot/modules/baddns_direct.py +0 -1
  32. bbot/modules/base.py +16 -16
  33. bbot/modules/bypass403.py +5 -5
  34. bbot/modules/c99.py +1 -1
  35. bbot/modules/columbus.py +1 -1
  36. bbot/modules/deadly/ffuf.py +8 -8
  37. bbot/modules/deadly/nuclei.py +1 -1
  38. bbot/modules/deadly/vhost.py +3 -3
  39. bbot/modules/dnsbimi.py +1 -1
  40. bbot/modules/dnsdumpster.py +2 -2
  41. bbot/modules/dockerhub.py +1 -1
  42. bbot/modules/dotnetnuke.py +0 -2
  43. bbot/modules/extractous.py +1 -1
  44. bbot/modules/filedownload.py +1 -1
  45. bbot/modules/generic_ssrf.py +3 -3
  46. bbot/modules/github_workflows.py +1 -1
  47. bbot/modules/gowitness.py +7 -7
  48. bbot/modules/host_header.py +5 -5
  49. bbot/modules/httpx.py +1 -1
  50. bbot/modules/iis_shortnames.py +6 -6
  51. bbot/modules/internal/cloudcheck.py +5 -5
  52. bbot/modules/internal/dnsresolve.py +7 -7
  53. bbot/modules/internal/excavate.py +23 -26
  54. bbot/modules/internal/speculate.py +4 -4
  55. bbot/modules/ipneighbor.py +1 -1
  56. bbot/modules/jadx.py +1 -1
  57. bbot/modules/newsletters.py +2 -2
  58. bbot/modules/output/asset_inventory.py +6 -6
  59. bbot/modules/output/base.py +1 -1
  60. bbot/modules/output/csv.py +1 -1
  61. bbot/modules/output/stdout.py +2 -2
  62. bbot/modules/paramminer_headers.py +4 -7
  63. bbot/modules/portscan.py +3 -3
  64. bbot/modules/report/asn.py +11 -11
  65. bbot/modules/robots.py +3 -3
  66. bbot/modules/securitytxt.py +1 -1
  67. bbot/modules/sitedossier.py +1 -1
  68. bbot/modules/social.py +1 -1
  69. bbot/modules/subdomainradar.py +1 -1
  70. bbot/modules/telerik.py +7 -7
  71. bbot/modules/templates/bucket.py +1 -1
  72. bbot/modules/templates/github.py +1 -1
  73. bbot/modules/templates/shodan.py +1 -1
  74. bbot/modules/templates/subdomain_enum.py +1 -1
  75. bbot/modules/templates/webhook.py +1 -1
  76. bbot/modules/trufflehog.py +2 -2
  77. bbot/modules/url_manipulation.py +3 -3
  78. bbot/modules/urlscan.py +1 -1
  79. bbot/modules/viewdns.py +1 -1
  80. bbot/modules/wafw00f.py +1 -1
  81. bbot/scanner/preset/args.py +10 -11
  82. bbot/scanner/preset/environ.py +0 -1
  83. bbot/scanner/preset/preset.py +9 -9
  84. bbot/scanner/scanner.py +17 -17
  85. bbot/scanner/target.py +1 -1
  86. bbot/scripts/docs.py +1 -1
  87. bbot/test/bbot_fixtures.py +1 -1
  88. bbot/test/conftest.py +1 -1
  89. bbot/test/run_tests.sh +4 -4
  90. bbot/test/test_step_1/test_bbot_fastapi.py +2 -2
  91. bbot/test/test_step_1/test_cli.py +56 -56
  92. bbot/test/test_step_1/test_dns.py +15 -15
  93. bbot/test/test_step_1/test_engine.py +17 -17
  94. bbot/test/test_step_1/test_events.py +22 -22
  95. bbot/test/test_step_1/test_helpers.py +26 -26
  96. bbot/test/test_step_1/test_manager_scope_accuracy.py +306 -306
  97. bbot/test/test_step_1/test_modules_basic.py +52 -53
  98. bbot/test/test_step_1/test_presets.py +81 -81
  99. bbot/test/test_step_1/test_regexes.py +5 -5
  100. bbot/test/test_step_1/test_scan.py +4 -4
  101. bbot/test/test_step_1/test_target.py +25 -25
  102. bbot/test/test_step_1/test_web.py +5 -5
  103. bbot/test/test_step_2/module_tests/base.py +6 -6
  104. bbot/test/test_step_2/module_tests/test_module_anubisdb.py +1 -1
  105. bbot/test/test_step_2/module_tests/test_module_asset_inventory.py +0 -1
  106. bbot/test/test_step_2/module_tests/test_module_azure_realm.py +1 -1
  107. bbot/test/test_step_2/module_tests/test_module_baddns.py +6 -6
  108. bbot/test/test_step_2/module_tests/test_module_baddns_direct.py +2 -4
  109. bbot/test/test_step_2/module_tests/test_module_bevigil.py +4 -4
  110. bbot/test/test_step_2/module_tests/test_module_binaryedge.py +2 -2
  111. bbot/test/test_step_2/module_tests/test_module_bucket_amazon.py +2 -2
  112. bbot/test/test_step_2/module_tests/test_module_bucket_azure.py +1 -1
  113. bbot/test/test_step_2/module_tests/test_module_builtwith.py +2 -2
  114. bbot/test/test_step_2/module_tests/test_module_c99.py +9 -9
  115. bbot/test/test_step_2/module_tests/test_module_columbus.py +1 -1
  116. bbot/test/test_step_2/module_tests/test_module_credshed.py +2 -2
  117. bbot/test/test_step_2/module_tests/test_module_dehashed.py +1 -1
  118. bbot/test/test_step_2/module_tests/test_module_digitorus.py +1 -1
  119. bbot/test/test_step_2/module_tests/test_module_dnsbrute.py +8 -9
  120. bbot/test/test_step_2/module_tests/test_module_dnsbrute_mutations.py +0 -1
  121. bbot/test/test_step_2/module_tests/test_module_dnscommonsrv.py +0 -1
  122. bbot/test/test_step_2/module_tests/test_module_dnsdumpster.py +2 -2
  123. bbot/test/test_step_2/module_tests/test_module_dotnetnuke.py +0 -2
  124. bbot/test/test_step_2/module_tests/test_module_excavate.py +10 -30
  125. bbot/test/test_step_2/module_tests/test_module_extractous.py +9 -9
  126. bbot/test/test_step_2/module_tests/test_module_filedownload.py +14 -14
  127. bbot/test/test_step_2/module_tests/test_module_git_clone.py +2 -2
  128. bbot/test/test_step_2/module_tests/test_module_gowitness.py +4 -4
  129. bbot/test/test_step_2/module_tests/test_module_host_header.py +1 -1
  130. bbot/test/test_step_2/module_tests/test_module_http.py +4 -4
  131. bbot/test/test_step_2/module_tests/test_module_httpx.py +7 -7
  132. bbot/test/test_step_2/module_tests/test_module_leakix.py +2 -2
  133. bbot/test/test_step_2/module_tests/test_module_myssl.py +1 -1
  134. bbot/test/test_step_2/module_tests/test_module_neo4j.py +1 -1
  135. bbot/test/test_step_2/module_tests/test_module_newsletters.py +6 -6
  136. bbot/test/test_step_2/module_tests/test_module_ntlm.py +7 -7
  137. bbot/test/test_step_2/module_tests/test_module_oauth.py +1 -1
  138. bbot/test/test_step_2/module_tests/test_module_otx.py +1 -1
  139. bbot/test/test_step_2/module_tests/test_module_paramminer_cookies.py +1 -2
  140. bbot/test/test_step_2/module_tests/test_module_paramminer_getparams.py +0 -6
  141. bbot/test/test_step_2/module_tests/test_module_paramminer_headers.py +2 -9
  142. bbot/test/test_step_2/module_tests/test_module_portscan.py +3 -4
  143. bbot/test/test_step_2/module_tests/test_module_postgres.py +1 -1
  144. bbot/test/test_step_2/module_tests/test_module_rapiddns.py +9 -9
  145. bbot/test/test_step_2/module_tests/test_module_sitedossier.py +2 -2
  146. bbot/test/test_step_2/module_tests/test_module_smuggler.py +1 -1
  147. bbot/test/test_step_2/module_tests/test_module_speculate.py +2 -6
  148. bbot/test/test_step_2/module_tests/test_module_splunk.py +4 -4
  149. bbot/test/test_step_2/module_tests/test_module_subdomaincenter.py +1 -1
  150. bbot/test/test_step_2/module_tests/test_module_subdomains.py +1 -1
  151. bbot/test/test_step_2/module_tests/test_module_trufflehog.py +2 -2
  152. bbot/test/test_step_2/module_tests/test_module_wayback.py +1 -1
  153. {bbot-2.3.0.5370rc0.dist-info → bbot-2.3.0.5382rc0.dist-info}/METADATA +2 -2
  154. {bbot-2.3.0.5370rc0.dist-info → bbot-2.3.0.5382rc0.dist-info}/RECORD +157 -157
  155. {bbot-2.3.0.5370rc0.dist-info → bbot-2.3.0.5382rc0.dist-info}/LICENSE +0 -0
  156. {bbot-2.3.0.5370rc0.dist-info → bbot-2.3.0.5382rc0.dist-info}/WHEEL +0 -0
  157. {bbot-2.3.0.5370rc0.dist-info → bbot-2.3.0.5382rc0.dist-info}/entry_points.txt +0 -0
@@ -81,8 +81,8 @@ async def test_events(events, helpers):
81
81
  assert "fsocie.ty" not in events.subdomain
82
82
  assert events.subdomain in events.domain
83
83
  assert events.domain not in events.subdomain
84
- assert not events.ipv4 in events.domain
85
- assert not events.netv6 in events.domain
84
+ assert events.ipv4 not in events.domain
85
+ assert events.netv6 not in events.domain
86
86
  assert events.emoji not in events.domain
87
87
  assert events.domain not in events.emoji
88
88
  open_port_event = scan.make_event(" eViLcorp.COM.:88", "DNS_NAME", dummy=True)
@@ -207,7 +207,7 @@ async def test_events(events, helpers):
207
207
 
208
208
  # scope distance
209
209
  event1 = scan.make_event("1.2.3.4", dummy=True)
210
- assert event1._scope_distance == None
210
+ assert event1._scope_distance is None
211
211
  event1.scope_distance = 0
212
212
  assert event1._scope_distance == 0
213
213
  event2 = scan.make_event("2.3.4.5", parent=event1)
@@ -228,7 +228,7 @@ async def test_events(events, helpers):
228
228
 
229
229
  org_stub_1 = scan.make_event("STUB1", "ORG_STUB", parent=scan.root_event)
230
230
  org_stub_1.scope_distance == 1
231
- assert org_stub_1.netloc == None
231
+ assert org_stub_1.netloc is None
232
232
  assert "netloc" not in org_stub_1.json()
233
233
  org_stub_2 = scan.make_event("STUB2", "ORG_STUB", parent=org_stub_1)
234
234
  org_stub_2.scope_distance == 2
@@ -237,7 +237,7 @@ async def test_events(events, helpers):
237
237
  root_event = scan.make_event("0.0.0.0", dummy=True)
238
238
  root_event.scope_distance = 0
239
239
  internal_event1 = scan.make_event("1.2.3.4", parent=root_event, internal=True)
240
- assert internal_event1._internal == True
240
+ assert internal_event1._internal is True
241
241
  assert "internal" in internal_event1.tags
242
242
 
243
243
  # tag inheritance
@@ -269,8 +269,8 @@ async def test_events(events, helpers):
269
269
  # updating module
270
270
  event3 = scan.make_event("127.0.0.1", parent=scan.root_event)
271
271
  updated_event = scan.make_event(event3, internal=True)
272
- assert event3.internal == False
273
- assert updated_event.internal == True
272
+ assert event3.internal is False
273
+ assert updated_event.internal is True
274
274
 
275
275
  # event sorting
276
276
  parent1 = scan.make_event("127.0.0.1", parent=scan.root_event)
@@ -490,7 +490,7 @@ async def test_events(events, helpers):
490
490
  assert db_event.discovery_context == "test context"
491
491
  assert db_event.discovery_path == ["test context"]
492
492
  assert len(db_event.parent_chain) == 1
493
- assert all([event_uuid_regex.match(u) for u in db_event.parent_chain])
493
+ assert all(event_uuid_regex.match(u) for u in db_event.parent_chain)
494
494
  assert db_event.parent_chain[0] == str(db_event.uuid)
495
495
  assert db_event.parent.uuid == scan.root_event.uuid
496
496
  assert db_event.parent_uuid == scan.root_event.uuid
@@ -527,7 +527,7 @@ async def test_events(events, helpers):
527
527
  hostless_event_json = hostless_event.json()
528
528
  assert hostless_event_json["type"] == "ASDF"
529
529
  assert hostless_event_json["data"] == "asdf"
530
- assert not "host" in hostless_event_json
530
+ assert "host" not in hostless_event_json
531
531
 
532
532
  # SIEM-friendly serialize/deserialize
533
533
  json_event_siemfriendly = db_event.json(siem_friendly=True)
@@ -805,7 +805,7 @@ async def test_event_web_spider_distance(bbot_scanner):
805
805
  )
806
806
  assert url_event_3.web_spider_distance == 1
807
807
  assert "spider-danger" in url_event_3.tags
808
- assert not "spider-max" in url_event_3.tags
808
+ assert "spider-max" not in url_event_3.tags
809
809
  social_event = scan.make_event(
810
810
  {"platform": "github", "url": "http://www.evilcorp.com/test4"}, "SOCIAL", parent=url_event_3
811
811
  )
@@ -828,42 +828,42 @@ async def test_event_web_spider_distance(bbot_scanner):
828
828
 
829
829
  url_event = scan.make_event("http://www.evilcorp.com", "URL_UNVERIFIED", parent=scan.root_event)
830
830
  assert url_event.web_spider_distance == 0
831
- assert not "spider-danger" in url_event.tags
832
- assert not "spider-max" in url_event.tags
831
+ assert "spider-danger" not in url_event.tags
832
+ assert "spider-max" not in url_event.tags
833
833
  url_event_2 = scan.make_event(
834
834
  "http://www.evilcorp.com", "URL_UNVERIFIED", parent=scan.root_event, tags="spider-danger"
835
835
  )
836
836
  # spider distance shouldn't increment because it's not the same host
837
837
  assert url_event_2.web_spider_distance == 0
838
838
  assert "spider-danger" in url_event_2.tags
839
- assert not "spider-max" in url_event_2.tags
839
+ assert "spider-max" not in url_event_2.tags
840
840
  url_event_3 = scan.make_event(
841
841
  "http://www.evilcorp.com/3", "URL_UNVERIFIED", parent=url_event_2, tags="spider-danger"
842
842
  )
843
843
  assert url_event_3.web_spider_distance == 1
844
844
  assert "spider-danger" in url_event_3.tags
845
- assert not "spider-max" in url_event_3.tags
845
+ assert "spider-max" not in url_event_3.tags
846
846
  url_event_4 = scan.make_event("http://evilcorp.com", "URL_UNVERIFIED", parent=url_event_3)
847
847
  assert url_event_4.web_spider_distance == 0
848
- assert not "spider-danger" in url_event_4.tags
849
- assert not "spider-max" in url_event_4.tags
848
+ assert "spider-danger" not in url_event_4.tags
849
+ assert "spider-max" not in url_event_4.tags
850
850
  url_event_4.add_tag("spider-danger")
851
851
  assert url_event_4.web_spider_distance == 0
852
852
  assert "spider-danger" in url_event_4.tags
853
- assert not "spider-max" in url_event_4.tags
853
+ assert "spider-max" not in url_event_4.tags
854
854
  url_event_4.remove_tag("spider-danger")
855
855
  assert url_event_4.web_spider_distance == 0
856
- assert not "spider-danger" in url_event_4.tags
857
- assert not "spider-max" in url_event_4.tags
856
+ assert "spider-danger" not in url_event_4.tags
857
+ assert "spider-max" not in url_event_4.tags
858
858
  url_event_5 = scan.make_event("http://evilcorp.com/5", "URL_UNVERIFIED", parent=url_event_4)
859
859
  assert url_event_5.web_spider_distance == 0
860
- assert not "spider-danger" in url_event_5.tags
861
- assert not "spider-max" in url_event_5.tags
860
+ assert "spider-danger" not in url_event_5.tags
861
+ assert "spider-max" not in url_event_5.tags
862
862
  url_event_5.add_tag("spider-danger")
863
863
  # if host is the same as parent, web spider distance should auto-increment after adding spider-danger tag
864
864
  assert url_event_5.web_spider_distance == 1
865
865
  assert "spider-danger" in url_event_5.tags
866
- assert not "spider-max" in url_event_5.tags
866
+ assert "spider-max" not in url_event_5.tags
867
867
 
868
868
 
869
869
  def test_event_confidence():
@@ -64,8 +64,8 @@ async def test_helpers_misc(helpers, scan, bbot_scanner, bbot_httpserver):
64
64
  assert not helpers.is_subdomain("notreal")
65
65
  assert helpers.is_url("http://evilcorp.co.uk/asdf?a=b&c=d#asdf")
66
66
  assert helpers.is_url("https://evilcorp.co.uk/asdf?a=b&c=d#asdf")
67
- assert helpers.is_uri("ftp://evilcorp.co.uk") == True
68
- assert helpers.is_uri("http://evilcorp.co.uk") == True
67
+ assert helpers.is_uri("ftp://evilcorp.co.uk") is True
68
+ assert helpers.is_uri("http://evilcorp.co.uk") is True
69
69
  assert helpers.is_uri("evilcorp.co.uk", return_scheme=True) == ""
70
70
  assert helpers.is_uri("ftp://evilcorp.co.uk", return_scheme=True) == "ftp"
71
71
  assert helpers.is_uri("FTP://evilcorp.co.uk", return_scheme=True) == "ftp"
@@ -283,7 +283,7 @@ async def test_helpers_misc(helpers, scan, bbot_scanner, bbot_httpserver):
283
283
  replaced = helpers.search_format_dict(
284
284
  {"asdf": [{"wat": {"here": "#{replaceme}!"}}, {500: True}]}, replaceme="asdf"
285
285
  )
286
- assert replaced["asdf"][1][500] == True
286
+ assert replaced["asdf"][1][500] is True
287
287
  assert replaced["asdf"][0]["wat"]["here"] == "asdf!"
288
288
 
289
289
  filtered_dict = helpers.filter_dict(
@@ -315,7 +315,7 @@ async def test_helpers_misc(helpers, scan, bbot_scanner, bbot_httpserver):
315
315
  fuzzy=True,
316
316
  exclude_keys="modules",
317
317
  )
318
- assert not "secrets_db" in filtered_dict4["modules"]
318
+ assert "secrets_db" not in filtered_dict4["modules"]
319
319
  assert "ipneighbor" in filtered_dict4["modules"]
320
320
  assert "secret" in filtered_dict4["modules"]["ipneighbor"]
321
321
  assert "asdf" not in filtered_dict4["modules"]["ipneighbor"]
@@ -408,15 +408,15 @@ async def test_helpers_misc(helpers, scan, bbot_scanner, bbot_httpserver):
408
408
  assert helpers.validators.validate_host("LOCALHOST ") == "localhost"
409
409
  assert helpers.validators.validate_host(" 192.168.1.1") == "192.168.1.1"
410
410
  assert helpers.validators.validate_host(" Dead::c0dE ") == "dead::c0de"
411
- assert helpers.validators.soft_validate(" evilCorp.COM", "host") == True
412
- assert helpers.validators.soft_validate("!@#$", "host") == False
411
+ assert helpers.validators.soft_validate(" evilCorp.COM", "host") is True
412
+ assert helpers.validators.soft_validate("!@#$", "host") is False
413
413
  with pytest.raises(ValueError):
414
414
  assert helpers.validators.validate_host("!@#$")
415
415
  # ports
416
416
  assert helpers.validators.validate_port(666) == 666
417
417
  assert helpers.validators.validate_port(666666) == 65535
418
- assert helpers.validators.soft_validate(666, "port") == True
419
- assert helpers.validators.soft_validate("!@#$", "port") == False
418
+ assert helpers.validators.soft_validate(666, "port") is True
419
+ assert helpers.validators.soft_validate("!@#$", "port") is False
420
420
  with pytest.raises(ValueError):
421
421
  helpers.validators.validate_port("asdf")
422
422
  # top tcp ports
@@ -428,7 +428,7 @@ async def test_helpers_misc(helpers, scan, bbot_scanner, bbot_httpserver):
428
428
  assert top_tcp_ports[-10:] == [65526, 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, 65535]
429
429
  assert len(top_tcp_ports) == 65535
430
430
  assert len(set(top_tcp_ports)) == 65535
431
- assert all([isinstance(i, int) for i in top_tcp_ports])
431
+ assert all(isinstance(i, int) for i in top_tcp_ports)
432
432
  top_tcp_ports = helpers.top_tcp_ports(10, as_string=True)
433
433
  assert top_tcp_ports == "80,23,443,21,22,25,3389,110,445,139"
434
434
  # urls
@@ -437,20 +437,20 @@ async def test_helpers_misc(helpers, scan, bbot_scanner, bbot_httpserver):
437
437
  helpers.validators.validate_url_parsed(" httP://evilcorP.com/asdf?a=b&c=d#e").geturl()
438
438
  == "http://evilcorp.com/asdf"
439
439
  )
440
- assert helpers.validators.soft_validate(" httP://evilcorP.com/asdf?a=b&c=d#e", "url") == True
441
- assert helpers.validators.soft_validate("!@#$", "url") == False
440
+ assert helpers.validators.soft_validate(" httP://evilcorP.com/asdf?a=b&c=d#e", "url") is True
441
+ assert helpers.validators.soft_validate("!@#$", "url") is False
442
442
  with pytest.raises(ValueError):
443
443
  helpers.validators.validate_url("!@#$")
444
444
  # severities
445
445
  assert helpers.validators.validate_severity(" iNfo") == "INFO"
446
- assert helpers.validators.soft_validate(" iNfo", "severity") == True
447
- assert helpers.validators.soft_validate("NOPE", "severity") == False
446
+ assert helpers.validators.soft_validate(" iNfo", "severity") is True
447
+ assert helpers.validators.soft_validate("NOPE", "severity") is False
448
448
  with pytest.raises(ValueError):
449
449
  helpers.validators.validate_severity("NOPE")
450
450
  # emails
451
451
  assert helpers.validators.validate_email(" bOb@eViLcorp.COM") == "bob@evilcorp.com"
452
- assert helpers.validators.soft_validate(" bOb@eViLcorp.COM", "email") == True
453
- assert helpers.validators.soft_validate("!@#$", "email") == False
452
+ assert helpers.validators.soft_validate(" bOb@eViLcorp.COM", "email") is True
453
+ assert helpers.validators.soft_validate("!@#$", "email") is False
454
454
  with pytest.raises(ValueError):
455
455
  helpers.validators.validate_email("!@#$")
456
456
 
@@ -533,9 +533,9 @@ async def test_helpers_misc(helpers, scan, bbot_scanner, bbot_httpserver):
533
533
  truncated_filename.unlink()
534
534
 
535
535
  # misc DNS helpers
536
- assert helpers.is_ptr("wsc-11-22-33-44-wat.evilcorp.com") == True
537
- assert helpers.is_ptr("wsc-11-22-33-wat.evilcorp.com") == False
538
- assert helpers.is_ptr("11wat.evilcorp.com") == False
536
+ assert helpers.is_ptr("wsc-11-22-33-44-wat.evilcorp.com") is True
537
+ assert helpers.is_ptr("wsc-11-22-33-wat.evilcorp.com") is False
538
+ assert helpers.is_ptr("11wat.evilcorp.com") is False
539
539
 
540
540
  ## NTLM
541
541
  testheader = "TlRMTVNTUAACAAAAHgAeADgAAAAVgorilwL+bvnVipUAAAAAAAAAAJgAmABWAAAACgBjRQAAAA9XAEkATgAtAFMANAAyAE4ATwBCAEQAVgBUAEsAOAACAB4AVwBJAE4ALQBTADQAMgBOAE8AQgBEAFYAVABLADgAAQAeAFcASQBOAC0AUwA0ADIATgBPAEIARABWAFQASwA4AAQAHgBXAEkATgAtAFMANAAyAE4ATwBCAEQAVgBUAEsAOAADAB4AVwBJAE4ALQBTADQAMgBOAE8AQgBEAFYAVABLADgABwAIAHUwOZlfoNgBAAAAAA=="
@@ -613,8 +613,8 @@ async def test_helpers_misc(helpers, scan, bbot_scanner, bbot_httpserver):
613
613
  assert len(helpers.get_exception_chain(e)) == 2
614
614
  assert len([_ for _ in helpers.get_exception_chain(e) if isinstance(_, KeyboardInterrupt)]) == 1
615
615
  assert len([_ for _ in helpers.get_exception_chain(e) if isinstance(_, ValueError)]) == 1
616
- assert helpers.in_exception_chain(e, (KeyboardInterrupt, asyncio.CancelledError)) == True
617
- assert helpers.in_exception_chain(e, (TypeError, OSError)) == False
616
+ assert helpers.in_exception_chain(e, (KeyboardInterrupt, asyncio.CancelledError)) is True
617
+ assert helpers.in_exception_chain(e, (TypeError, OSError)) is False
618
618
  test_ran = True
619
619
  assert test_ran
620
620
  test_ran = False
@@ -627,9 +627,9 @@ async def test_helpers_misc(helpers, scan, bbot_scanner, bbot_httpserver):
627
627
  assert len(helpers.get_exception_chain(e)) == 2
628
628
  assert len([_ for _ in helpers.get_exception_chain(e) if isinstance(_, AttributeError)]) == 1
629
629
  assert len([_ for _ in helpers.get_exception_chain(e) if isinstance(_, ValueError)]) == 1
630
- assert helpers.in_exception_chain(e, (KeyboardInterrupt, asyncio.CancelledError)) == False
631
- assert helpers.in_exception_chain(e, (KeyboardInterrupt, AttributeError)) == True
632
- assert helpers.in_exception_chain(e, (AttributeError,)) == True
630
+ assert helpers.in_exception_chain(e, (KeyboardInterrupt, asyncio.CancelledError)) is False
631
+ assert helpers.in_exception_chain(e, (KeyboardInterrupt, AttributeError)) is True
632
+ assert helpers.in_exception_chain(e, (AttributeError,)) is True
633
633
  test_ran = True
634
634
  assert test_ran
635
635
 
@@ -886,7 +886,7 @@ async def test_parameter_validation(helpers):
886
886
  if helpers.validate_parameter(p, "getparam"):
887
887
  assert p in getparam_valid_params and p not in getparam_invalid_params
888
888
  else:
889
- assert p in getparam_invalid_params and not p in getparam_valid_params
889
+ assert p in getparam_invalid_params and p not in getparam_valid_params
890
890
 
891
891
  header_valid_params = {
892
892
  "name",
@@ -917,7 +917,7 @@ async def test_parameter_validation(helpers):
917
917
  if helpers.validate_parameter(p, "header"):
918
918
  assert p in header_valid_params and p not in header_invalid_params
919
919
  else:
920
- assert p in header_invalid_params and not p in header_valid_params
920
+ assert p in header_invalid_params and p not in header_valid_params
921
921
 
922
922
  cookie_valid_params = {
923
923
  "name",
@@ -947,4 +947,4 @@ async def test_parameter_validation(helpers):
947
947
  if helpers.validate_parameter(p, "cookie"):
948
948
  assert p in cookie_valid_params and p not in cookie_invalid_params
949
949
  else:
950
- assert p in cookie_invalid_params and not p in cookie_valid_params
950
+ assert p in cookie_invalid_params and p not in cookie_valid_params