wpscan 3.8.28 → 4.0.0

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.
Files changed (252) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +104 -30
  3. data/app/app.rb +26 -0
  4. data/app/controllers/aliases.rb +2 -2
  5. data/app/controllers/authenticated_inventory.rb +43 -0
  6. data/app/controllers/core/cli_options.rb +151 -0
  7. data/app/controllers/core.rb +200 -25
  8. data/app/controllers/custom_directories.rb +1 -1
  9. data/app/controllers/enumeration/cli_options.rb +21 -31
  10. data/app/controllers/enumeration/enum_methods.rb +145 -38
  11. data/app/controllers/enumeration.rb +26 -3
  12. data/app/controllers/interesting_findings.rb +25 -0
  13. data/app/controllers/main_theme.rb +1 -1
  14. data/app/controllers/password_attack.rb +14 -6
  15. data/app/controllers/vuln_api.rb +9 -3
  16. data/app/controllers/wp_version.rb +1 -1
  17. data/app/controllers.rb +1 -0
  18. data/app/finders/backup_folders/known_locations.rb +66 -0
  19. data/app/finders/backup_folders.rb +19 -0
  20. data/app/finders/config_backups/known_filenames.rb +6 -4
  21. data/app/finders/config_backups.rb +1 -1
  22. data/app/finders/db_exports/known_locations.rb +16 -14
  23. data/app/finders/db_exports.rb +1 -1
  24. data/app/finders/interesting_findings/backup_db.rb +1 -1
  25. data/app/finders/interesting_findings/debug_log.rb +1 -1
  26. data/app/finders/interesting_findings/duplicator_installer_log.rb +1 -1
  27. data/app/finders/interesting_findings/emergency_pwd_reset_script.rb +1 -1
  28. data/app/finders/interesting_findings/fantastico_fileslist.rb +21 -0
  29. data/app/finders/interesting_findings/full_path_disclosure.rb +1 -1
  30. data/app/finders/interesting_findings/headers.rb +17 -0
  31. data/app/finders/interesting_findings/mu_plugins.rb +1 -1
  32. data/app/finders/interesting_findings/multisite.rb +1 -1
  33. data/app/finders/interesting_findings/php_disabled.rb +2 -2
  34. data/app/finders/interesting_findings/readme.rb +1 -1
  35. data/app/finders/interesting_findings/registration.rb +1 -1
  36. data/app/finders/interesting_findings/robots_txt.rb +20 -0
  37. data/app/finders/interesting_findings/search_replace_db_2.rb +19 -0
  38. data/app/finders/interesting_findings/tmm_db_migrate.rb +1 -1
  39. data/app/finders/interesting_findings/upload_directory_listing.rb +1 -1
  40. data/app/finders/interesting_findings/upload_sql_dump.rb +2 -2
  41. data/app/finders/interesting_findings/wp_cron.rb +1 -1
  42. data/app/finders/interesting_findings/xml_rpc.rb +61 -0
  43. data/app/finders/interesting_findings.rb +13 -4
  44. data/app/finders/main_theme/css_style_in_homepage.rb +1 -1
  45. data/app/finders/main_theme/urls_in_homepage.rb +3 -7
  46. data/app/finders/main_theme/woo_framework_meta_generator.rb +4 -4
  47. data/app/finders/main_theme.rb +1 -1
  48. data/app/finders/medias/attachment_brute_forcing.rb +2 -2
  49. data/app/finders/medias.rb +1 -1
  50. data/app/finders/passwords/wp_login.rb +2 -2
  51. data/app/finders/passwords/xml_rpc.rb +2 -2
  52. data/app/finders/passwords/xml_rpc_multicall.rb +1 -1
  53. data/app/finders/plugin_version/readme.rb +1 -1
  54. data/app/finders/plugin_version.rb +1 -1
  55. data/app/finders/plugins/known_locations.rb +17 -7
  56. data/app/finders/plugins/urls_in_homepage.rb +3 -7
  57. data/app/finders/plugins/wp_json_api.rb +85 -0
  58. data/app/finders/plugins.rb +2 -1
  59. data/app/finders/theme_version/style.rb +1 -1
  60. data/app/finders/theme_version/woo_framework_meta_generator.rb +1 -1
  61. data/app/finders/theme_version.rb +1 -1
  62. data/app/finders/themes/known_locations.rb +12 -6
  63. data/app/finders/themes/urls_in_homepage.rb +3 -7
  64. data/app/finders/themes/wp_json_api.rb +74 -0
  65. data/app/finders/themes.rb +2 -1
  66. data/app/finders/timthumb_version/bad_request.rb +1 -1
  67. data/app/finders/timthumb_version.rb +1 -1
  68. data/app/finders/timthumbs/known_locations.rb +6 -4
  69. data/app/finders/timthumbs.rb +1 -1
  70. data/app/finders/users/author_id_brute_forcing.rb +11 -7
  71. data/app/finders/users/author_posts.rb +1 -1
  72. data/app/finders/users/author_sitemap.rb +1 -1
  73. data/app/finders/users/login_error_messages.rb +1 -1
  74. data/app/finders/users/oembed_api.rb +3 -1
  75. data/app/finders/users/wp_json_api.rb +11 -7
  76. data/app/finders/users.rb +1 -1
  77. data/app/finders/wp_version/atom_generator.rb +1 -1
  78. data/app/finders/wp_version/rdf_generator.rb +1 -1
  79. data/app/finders/wp_version/readme.rb +1 -1
  80. data/app/finders/wp_version/rss_generator.rb +1 -1
  81. data/app/finders/wp_version/unique_fingerprinting.rb +2 -2
  82. data/app/finders/wp_version.rb +1 -1
  83. data/app/finders.rb +1 -0
  84. data/app/formatters/cli.rb +79 -0
  85. data/app/formatters/cli_no_color.rb +9 -0
  86. data/app/formatters/cli_no_colour.rb +17 -0
  87. data/app/formatters/json.rb +14 -0
  88. data/app/formatters/jsonl.rb +29 -0
  89. data/app/formatters/sarif.rb +311 -0
  90. data/app/models/backup_folder.rb +39 -0
  91. data/app/models/fantastico_fileslist.rb +34 -0
  92. data/app/models/headers.rb +44 -0
  93. data/app/models/interesting_finding.rb +41 -2
  94. data/app/models/plugin.rb +8 -2
  95. data/app/models/robots_txt.rb +31 -0
  96. data/app/models/search_replace_db_2.rb +17 -0
  97. data/app/models/theme.rb +9 -2
  98. data/app/models/timthumb.rb +2 -2
  99. data/app/models/user.rb +35 -0
  100. data/app/models/version.rb +49 -0
  101. data/app/models/wp_item/wordpress_org_data.rb +55 -0
  102. data/app/models/wp_item.rb +109 -9
  103. data/app/models/wp_version.rb +2 -2
  104. data/app/models/xml_rpc.rb +73 -3
  105. data/app/models.rb +2 -1
  106. data/app/user_agents.txt +46 -0
  107. data/app/views/cli/core/banner.erb +3 -3
  108. data/app/views/cli/core/finished.erb +15 -0
  109. data/app/views/cli/core/help.erb +4 -0
  110. data/app/views/cli/core/started.erb +11 -0
  111. data/app/views/cli/enumeration/backup_folders.erb +11 -0
  112. data/app/views/cli/enumeration/plugin.erb +13 -0
  113. data/app/views/cli/enumeration/plugins.erb +1 -12
  114. data/app/views/cli/enumeration/theme.erb +4 -0
  115. data/app/views/cli/enumeration/themes.erb +1 -3
  116. data/app/views/cli/enumeration/user.erb +4 -0
  117. data/app/views/cli/enumeration/users.erb +1 -3
  118. data/app/views/cli/finding.erb +1 -1
  119. data/app/views/cli/interesting_findings/_array.erb +10 -0
  120. data/app/views/cli/interesting_findings/findings.erb +23 -0
  121. data/app/views/cli/scan_aborted.erb +5 -0
  122. data/app/views/cli/update_aborted.erb +5 -0
  123. data/app/views/cli/vuln_api/status.erb +2 -0
  124. data/app/views/cli/vulnerability.erb +6 -0
  125. data/app/views/cli/wp_item.erb +4 -1
  126. data/app/views/json/core/banner.erb +2 -8
  127. data/app/views/json/core/finished.erb +13 -0
  128. data/app/views/json/core/help.erb +4 -0
  129. data/app/views/json/core/started.erb +10 -0
  130. data/app/views/json/enumeration/backup_folders.erb +11 -0
  131. data/app/views/json/enumeration/plugin.erb +15 -0
  132. data/app/views/json/enumeration/theme.erb +5 -0
  133. data/app/views/json/enumeration/user.erb +6 -0
  134. data/app/views/json/finding.erb +8 -2
  135. data/app/views/json/interesting_findings/findings.erb +24 -0
  136. data/app/views/json/notice.erb +1 -0
  137. data/app/views/json/scan_aborted.erb +5 -0
  138. data/app/views/json/update_aborted.erb +5 -0
  139. data/app/views/json/vuln_api/status.erb +2 -0
  140. data/app/views/json/wp_item.erb +4 -1
  141. data/bin/wpscan +1 -0
  142. data/lib/opt_parse_validator/config_files_loader_merger/base.rb +26 -0
  143. data/lib/opt_parse_validator/config_files_loader_merger/json.rb +17 -0
  144. data/lib/opt_parse_validator/config_files_loader_merger/yml.rb +17 -0
  145. data/lib/opt_parse_validator/config_files_loader_merger.rb +62 -0
  146. data/lib/opt_parse_validator/errors.rb +9 -0
  147. data/lib/opt_parse_validator/hacks.rb +19 -0
  148. data/lib/opt_parse_validator/opts/alias.rb +28 -0
  149. data/lib/opt_parse_validator/opts/array.rb +34 -0
  150. data/lib/opt_parse_validator/opts/base.rb +142 -0
  151. data/lib/opt_parse_validator/opts/boolean.rb +19 -0
  152. data/lib/opt_parse_validator/opts/choice.rb +43 -0
  153. data/lib/opt_parse_validator/opts/credentials.rb +15 -0
  154. data/lib/opt_parse_validator/opts/directory_path.rb +17 -0
  155. data/lib/opt_parse_validator/opts/file_path.rb +34 -0
  156. data/lib/opt_parse_validator/opts/headers.rb +33 -0
  157. data/lib/opt_parse_validator/opts/integer.rb +15 -0
  158. data/lib/opt_parse_validator/opts/integer_range.rb +37 -0
  159. data/lib/opt_parse_validator/opts/multi_choices.rb +135 -0
  160. data/lib/opt_parse_validator/opts/path.rb +78 -0
  161. data/lib/opt_parse_validator/opts/positive_integer.rb +16 -0
  162. data/lib/opt_parse_validator/opts/proxy.rb +7 -0
  163. data/lib/opt_parse_validator/opts/regexp.rb +14 -0
  164. data/lib/opt_parse_validator/opts/smart_list.rb +30 -0
  165. data/lib/opt_parse_validator/opts/string.rb +8 -0
  166. data/lib/opt_parse_validator/opts/uri.rb +41 -0
  167. data/lib/opt_parse_validator/opts/url.rb +11 -0
  168. data/lib/opt_parse_validator/opts.rb +9 -0
  169. data/lib/opt_parse_validator/version.rb +6 -0
  170. data/lib/opt_parse_validator.rb +161 -0
  171. data/lib/wpscan/browser/actions.rb +48 -0
  172. data/lib/wpscan/browser/options.rb +92 -0
  173. data/lib/wpscan/browser.rb +87 -2
  174. data/lib/wpscan/browser_authenticator.rb +64 -0
  175. data/lib/wpscan/cache/file_store.rb +77 -0
  176. data/lib/wpscan/cache/typhoeus.rb +25 -0
  177. data/lib/wpscan/controller.rb +100 -4
  178. data/lib/wpscan/controllers.rb +78 -3
  179. data/lib/wpscan/db/dynamic_finders/base.rb +3 -7
  180. data/lib/wpscan/db/dynamic_finders/plugin.rb +2 -2
  181. data/lib/wpscan/db/dynamic_finders/wordpress.rb +1 -1
  182. data/lib/wpscan/db/fingerprints.rb +2 -2
  183. data/lib/wpscan/db/updater.rb +23 -13
  184. data/lib/wpscan/db/vuln_api.rb +19 -7
  185. data/lib/wpscan/db/wp_item.rb +2 -2
  186. data/lib/wpscan/errors/enumeration.rb +4 -4
  187. data/lib/wpscan/errors/http.rb +82 -3
  188. data/lib/wpscan/errors/saml.rb +28 -0
  189. data/lib/wpscan/errors/scan.rb +14 -0
  190. data/lib/wpscan/errors/update.rb +11 -3
  191. data/lib/wpscan/errors/vuln_api.rb +24 -0
  192. data/lib/wpscan/errors/wordpress.rb +2 -2
  193. data/lib/wpscan/errors/wp_auth.rb +37 -0
  194. data/lib/wpscan/errors.rb +4 -3
  195. data/lib/wpscan/exit_code.rb +25 -0
  196. data/lib/wpscan/finders/base_finders.rb +45 -0
  197. data/lib/wpscan/finders/dynamic_finder/finder.rb +1 -1
  198. data/lib/wpscan/finders/dynamic_finder/version/body_pattern.rb +1 -1
  199. data/lib/wpscan/finders/dynamic_finder/version/comment.rb +1 -1
  200. data/lib/wpscan/finders/dynamic_finder/version/header_pattern.rb +1 -1
  201. data/lib/wpscan/finders/dynamic_finder/version/javascript_var.rb +1 -1
  202. data/lib/wpscan/finders/dynamic_finder/version/query_parameter.rb +3 -5
  203. data/lib/wpscan/finders/dynamic_finder/version/xpath.rb +1 -1
  204. data/lib/wpscan/finders/dynamic_finder/wp_items/finder.rb +3 -3
  205. data/lib/wpscan/finders/dynamic_finder/wp_version.rb +1 -1
  206. data/lib/wpscan/finders/finder/breadth_first_dictionary_attack.rb +257 -0
  207. data/lib/wpscan/finders/finder/enumerator.rb +77 -0
  208. data/lib/wpscan/finders/finder/fingerprinter.rb +48 -0
  209. data/lib/wpscan/finders/finder/smart_url_checker/findings.rb +33 -0
  210. data/lib/wpscan/finders/finder/smart_url_checker.rb +60 -0
  211. data/lib/wpscan/finders/finder/wp_version/smart_url_checker.rb +1 -1
  212. data/lib/wpscan/finders/finder.rb +78 -0
  213. data/lib/wpscan/finders/finding.rb +54 -0
  214. data/lib/wpscan/finders/findings.rb +33 -0
  215. data/lib/wpscan/finders/independent_finder.rb +33 -0
  216. data/lib/wpscan/finders/independent_finders.rb +26 -0
  217. data/lib/wpscan/finders/same_type_finder.rb +19 -0
  218. data/lib/wpscan/finders/same_type_finders.rb +28 -0
  219. data/lib/wpscan/finders/unique_finder.rb +19 -0
  220. data/lib/wpscan/finders/unique_finders.rb +47 -0
  221. data/lib/wpscan/finders.rb +11 -12
  222. data/lib/wpscan/formatter/buffer.rb +17 -0
  223. data/lib/wpscan/formatter.rb +152 -0
  224. data/lib/wpscan/helper.rb +7 -1
  225. data/lib/wpscan/http_status_tracking.rb +128 -0
  226. data/lib/wpscan/numeric.rb +13 -0
  227. data/lib/wpscan/parsed_cli.rb +31 -2
  228. data/lib/wpscan/progressbar_null_output.rb +23 -0
  229. data/lib/wpscan/public_suffix/domain.rb +44 -0
  230. data/lib/wpscan/references.rb +118 -4
  231. data/lib/wpscan/scan.rb +127 -0
  232. data/lib/wpscan/target/hashes.rb +45 -0
  233. data/lib/wpscan/target/platform/php.rb +124 -0
  234. data/lib/wpscan/target/platform/wordpress/custom_directories.rb +3 -3
  235. data/lib/wpscan/target/platform/wordpress.rb +7 -8
  236. data/lib/wpscan/target/platform.rb +3 -0
  237. data/lib/wpscan/target/scope.rb +103 -0
  238. data/lib/wpscan/target/server/apache.rb +27 -0
  239. data/lib/wpscan/target/server/generic.rb +72 -0
  240. data/lib/wpscan/target/server/iis.rb +29 -0
  241. data/lib/wpscan/target/server/nginx.rb +27 -0
  242. data/lib/wpscan/target/server.rb +6 -0
  243. data/lib/wpscan/target.rb +129 -9
  244. data/lib/wpscan/typhoeus/hydra.rb +12 -0
  245. data/lib/wpscan/typhoeus/response.rb +24 -1
  246. data/lib/wpscan/version.rb +1 -1
  247. data/lib/wpscan/vulnerability.rb +49 -3
  248. data/lib/wpscan/vulnerability_filter.rb +68 -0
  249. data/lib/wpscan/vulnerable.rb +13 -1
  250. data/lib/wpscan/web_site.rb +152 -0
  251. data/lib/wpscan.rb +126 -29
  252. metadata +362 -20
metadata CHANGED
@@ -1,29 +1,252 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wpscan
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.8.28
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - WPScanTeam
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-02-24 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: cms_scanner
13
+ name: activesupport
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '7.1'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '8.2'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '7.1'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '8.2'
32
+ - !ruby/object:Gem::Dependency
33
+ name: addressable
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - "~>"
37
+ - !ruby/object:Gem::Version
38
+ version: '2.9'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - "~>"
44
+ - !ruby/object:Gem::Version
45
+ version: '2.9'
46
+ - !ruby/object:Gem::Dependency
47
+ name: ethon
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0.14'
53
+ - - "<"
54
+ - !ruby/object:Gem::Version
55
+ version: '0.19'
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0.14'
63
+ - - "<"
64
+ - !ruby/object:Gem::Version
65
+ version: '0.19'
66
+ - !ruby/object:Gem::Dependency
67
+ name: get_process_mem
68
+ requirement: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 0.2.5
73
+ - - "<"
74
+ - !ruby/object:Gem::Version
75
+ version: 1.1.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 0.2.5
83
+ - - "<"
84
+ - !ruby/object:Gem::Version
85
+ version: 1.1.0
86
+ - !ruby/object:Gem::Dependency
87
+ name: nokogiri
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '1.16'
93
+ type: :runtime
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '1.16'
100
+ - !ruby/object:Gem::Dependency
101
+ name: public_suffix
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 4.0.3
107
+ - - "<"
108
+ - !ruby/object:Gem::Version
109
+ version: '7.1'
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 4.0.3
117
+ - - "<"
118
+ - !ruby/object:Gem::Version
119
+ version: '7.1'
120
+ - !ruby/object:Gem::Dependency
121
+ name: ruby-progressbar
122
+ requirement: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '1.10'
127
+ - - "<"
128
+ - !ruby/object:Gem::Version
129
+ version: '1.14'
130
+ type: :runtime
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '1.10'
137
+ - - "<"
138
+ - !ruby/object:Gem::Version
139
+ version: '1.14'
140
+ - !ruby/object:Gem::Dependency
141
+ name: sys-proctable
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: 1.2.2
147
+ - - "<"
148
+ - !ruby/object:Gem::Version
149
+ version: 1.4.0
150
+ type: :runtime
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: 1.2.2
157
+ - - "<"
158
+ - !ruby/object:Gem::Version
159
+ version: 1.4.0
160
+ - !ruby/object:Gem::Dependency
161
+ name: typhoeus
162
+ requirement: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '1.3'
167
+ - - "<"
168
+ - !ruby/object:Gem::Version
169
+ version: '1.7'
170
+ type: :runtime
171
+ prerelease: false
172
+ version_requirements: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '1.3'
177
+ - - "<"
178
+ - !ruby/object:Gem::Version
179
+ version: '1.7'
180
+ - !ruby/object:Gem::Dependency
181
+ name: xmlrpc
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '0.3'
187
+ type: :runtime
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: '0.3'
194
+ - !ruby/object:Gem::Dependency
195
+ name: yajl-ruby
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: 1.4.1
201
+ type: :runtime
202
+ prerelease: false
203
+ version_requirements: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: 1.4.1
208
+ - !ruby/object:Gem::Dependency
209
+ name: ostruct
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: '0.6'
215
+ type: :runtime
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: '0.6'
222
+ - !ruby/object:Gem::Dependency
223
+ name: fiddle
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: '1.1'
229
+ type: :runtime
230
+ prerelease: false
231
+ version_requirements: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - "~>"
234
+ - !ruby/object:Gem::Version
235
+ version: '1.1'
236
+ - !ruby/object:Gem::Dependency
237
+ name: ferrum
15
238
  requirement: !ruby/object:Gem::Requirement
16
239
  requirements:
17
240
  - - "~>"
18
241
  - !ruby/object:Gem::Version
19
- version: 0.15.0
242
+ version: '0.8'
20
243
  type: :runtime
21
244
  prerelease: false
22
245
  version_requirements: !ruby/object:Gem::Requirement
23
246
  requirements:
24
247
  - - "~>"
25
248
  - !ruby/object:Gem::Version
26
- version: 0.15.0
249
+ version: '0.8'
27
250
  - !ruby/object:Gem::Dependency
28
251
  name: bundler
29
252
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +267,14 @@ dependencies:
44
267
  requirements:
45
268
  - - "~>"
46
269
  - !ruby/object:Gem::Version
47
- version: 1.0.0
270
+ version: 1.1.0
48
271
  type: :development
49
272
  prerelease: false
50
273
  version_requirements: !ruby/object:Gem::Requirement
51
274
  requirements:
52
275
  - - "~>"
53
276
  - !ruby/object:Gem::Version
54
- version: 1.0.0
277
+ version: 1.1.0
55
278
  - !ruby/object:Gem::Dependency
56
279
  name: rake
57
280
  requirement: !ruby/object:Gem::Requirement
@@ -100,28 +323,28 @@ dependencies:
100
323
  requirements:
101
324
  - - "~>"
102
325
  - !ruby/object:Gem::Version
103
- version: 1.26.0
326
+ version: '1.82'
104
327
  type: :development
105
328
  prerelease: false
106
329
  version_requirements: !ruby/object:Gem::Requirement
107
330
  requirements:
108
331
  - - "~>"
109
332
  - !ruby/object:Gem::Version
110
- version: 1.26.0
333
+ version: '1.82'
111
334
  - !ruby/object:Gem::Dependency
112
335
  name: rubocop-performance
113
336
  requirement: !ruby/object:Gem::Requirement
114
337
  requirements:
115
338
  - - "~>"
116
339
  - !ruby/object:Gem::Version
117
- version: 1.13.0
340
+ version: '1.26'
118
341
  type: :development
119
342
  prerelease: false
120
343
  version_requirements: !ruby/object:Gem::Requirement
121
344
  requirements:
122
345
  - - "~>"
123
346
  - !ruby/object:Gem::Version
124
- version: 1.13.0
347
+ version: '1.26'
125
348
  - !ruby/object:Gem::Dependency
126
349
  name: simplecov
127
350
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +365,14 @@ dependencies:
142
365
  requirements:
143
366
  - - "~>"
144
367
  - !ruby/object:Gem::Version
145
- version: 0.8.0
368
+ version: 0.9.0
146
369
  type: :development
147
370
  prerelease: false
148
371
  version_requirements: !ruby/object:Gem::Requirement
149
372
  requirements:
150
373
  - - "~>"
151
374
  - !ruby/object:Gem::Version
152
- version: 0.8.0
375
+ version: 0.9.0
153
376
  - !ruby/object:Gem::Dependency
154
377
  name: stackprof
155
378
  requirement: !ruby/object:Gem::Requirement
@@ -170,14 +393,14 @@ dependencies:
170
393
  requirements:
171
394
  - - "~>"
172
395
  - !ruby/object:Gem::Version
173
- version: 3.23.1
396
+ version: 3.26.2
174
397
  type: :development
175
398
  prerelease: false
176
399
  version_requirements: !ruby/object:Gem::Requirement
177
400
  requirements:
178
401
  - - "~>"
179
402
  - !ruby/object:Gem::Version
180
- version: 3.23.1
403
+ version: 3.26.2
181
404
  description: WPScan is a black box WordPress vulnerability scanner.
182
405
  email:
183
406
  - contact@wpscan.com
@@ -191,16 +414,21 @@ files:
191
414
  - app/app.rb
192
415
  - app/controllers.rb
193
416
  - app/controllers/aliases.rb
417
+ - app/controllers/authenticated_inventory.rb
194
418
  - app/controllers/core.rb
419
+ - app/controllers/core/cli_options.rb
195
420
  - app/controllers/custom_directories.rb
196
421
  - app/controllers/enumeration.rb
197
422
  - app/controllers/enumeration/cli_options.rb
198
423
  - app/controllers/enumeration/enum_methods.rb
424
+ - app/controllers/interesting_findings.rb
199
425
  - app/controllers/main_theme.rb
200
426
  - app/controllers/password_attack.rb
201
427
  - app/controllers/vuln_api.rb
202
428
  - app/controllers/wp_version.rb
203
429
  - app/finders.rb
430
+ - app/finders/backup_folders.rb
431
+ - app/finders/backup_folders/known_locations.rb
204
432
  - app/finders/config_backups.rb
205
433
  - app/finders/config_backups/known_filenames.rb
206
434
  - app/finders/db_exports.rb
@@ -210,16 +438,21 @@ files:
210
438
  - app/finders/interesting_findings/debug_log.rb
211
439
  - app/finders/interesting_findings/duplicator_installer_log.rb
212
440
  - app/finders/interesting_findings/emergency_pwd_reset_script.rb
441
+ - app/finders/interesting_findings/fantastico_fileslist.rb
213
442
  - app/finders/interesting_findings/full_path_disclosure.rb
443
+ - app/finders/interesting_findings/headers.rb
214
444
  - app/finders/interesting_findings/mu_plugins.rb
215
445
  - app/finders/interesting_findings/multisite.rb
216
446
  - app/finders/interesting_findings/php_disabled.rb
217
447
  - app/finders/interesting_findings/readme.rb
218
448
  - app/finders/interesting_findings/registration.rb
449
+ - app/finders/interesting_findings/robots_txt.rb
450
+ - app/finders/interesting_findings/search_replace_db_2.rb
219
451
  - app/finders/interesting_findings/tmm_db_migrate.rb
220
452
  - app/finders/interesting_findings/upload_directory_listing.rb
221
453
  - app/finders/interesting_findings/upload_sql_dump.rb
222
454
  - app/finders/interesting_findings/wp_cron.rb
455
+ - app/finders/interesting_findings/xml_rpc.rb
223
456
  - app/finders/main_theme.rb
224
457
  - app/finders/main_theme/css_style_in_404_page.rb
225
458
  - app/finders/main_theme/css_style_in_homepage.rb
@@ -244,6 +477,7 @@ files:
244
477
  - app/finders/plugins/query_parameter.rb
245
478
  - app/finders/plugins/urls_in_404_page.rb
246
479
  - app/finders/plugins/urls_in_homepage.rb
480
+ - app/finders/plugins/wp_json_api.rb
247
481
  - app/finders/plugins/xpath.rb
248
482
  - app/finders/theme_version.rb
249
483
  - app/finders/theme_version/style.rb
@@ -252,6 +486,7 @@ files:
252
486
  - app/finders/themes/known_locations.rb
253
487
  - app/finders/themes/urls_in_404_page.rb
254
488
  - app/finders/themes/urls_in_homepage.rb
489
+ - app/finders/themes/wp_json_api.rb
255
490
  - app/finders/timthumb_version.rb
256
491
  - app/finders/timthumb_version/bad_request.rb
257
492
  - app/finders/timthumbs.rb
@@ -273,35 +508,61 @@ files:
273
508
  - app/finders/wp_version/readme.rb
274
509
  - app/finders/wp_version/rss_generator.rb
275
510
  - app/finders/wp_version/unique_fingerprinting.rb
511
+ - app/formatters/cli.rb
512
+ - app/formatters/cli_no_color.rb
513
+ - app/formatters/cli_no_colour.rb
514
+ - app/formatters/json.rb
515
+ - app/formatters/jsonl.rb
516
+ - app/formatters/sarif.rb
276
517
  - app/models.rb
518
+ - app/models/backup_folder.rb
277
519
  - app/models/config_backup.rb
278
520
  - app/models/db_export.rb
521
+ - app/models/fantastico_fileslist.rb
522
+ - app/models/headers.rb
279
523
  - app/models/interesting_finding.rb
280
524
  - app/models/media.rb
281
525
  - app/models/plugin.rb
526
+ - app/models/robots_txt.rb
527
+ - app/models/search_replace_db_2.rb
282
528
  - app/models/theme.rb
283
529
  - app/models/timthumb.rb
530
+ - app/models/user.rb
531
+ - app/models/version.rb
284
532
  - app/models/wp_item.rb
533
+ - app/models/wp_item/wordpress_org_data.rb
285
534
  - app/models/wp_version.rb
286
535
  - app/models/xml_rpc.rb
536
+ - app/user_agents.txt
287
537
  - app/views/cli/core/banner.erb
288
538
  - app/views/cli/core/db_update_finished.erb
289
539
  - app/views/cli/core/db_update_started.erb
540
+ - app/views/cli/core/finished.erb
541
+ - app/views/cli/core/help.erb
290
542
  - app/views/cli/core/not_fully_configured.erb
543
+ - app/views/cli/core/started.erb
291
544
  - app/views/cli/core/version.erb
545
+ - app/views/cli/enumeration/backup_folders.erb
292
546
  - app/views/cli/enumeration/config_backups.erb
293
547
  - app/views/cli/enumeration/db_exports.erb
294
548
  - app/views/cli/enumeration/medias.erb
549
+ - app/views/cli/enumeration/plugin.erb
295
550
  - app/views/cli/enumeration/plugins.erb
551
+ - app/views/cli/enumeration/theme.erb
296
552
  - app/views/cli/enumeration/themes.erb
297
553
  - app/views/cli/enumeration/timthumbs.erb
554
+ - app/views/cli/enumeration/user.erb
298
555
  - app/views/cli/enumeration/users.erb
299
556
  - app/views/cli/finding.erb
300
557
  - app/views/cli/info.erb
558
+ - app/views/cli/interesting_findings/_array.erb
559
+ - app/views/cli/interesting_findings/findings.erb
301
560
  - app/views/cli/main_theme/theme.erb
302
561
  - app/views/cli/notice.erb
303
562
  - app/views/cli/password_attack/users.erb
563
+ - app/views/cli/scan_aborted.erb
304
564
  - app/views/cli/theme.erb
565
+ - app/views/cli/update_aborted.erb
305
566
  - app/views/cli/usage.erb
306
567
  - app/views/cli/vuln_api/status.erb
307
568
  - app/views/cli/vulnerability.erb
@@ -310,25 +571,70 @@ files:
310
571
  - app/views/json/core/banner.erb
311
572
  - app/views/json/core/db_update_finished.erb
312
573
  - app/views/json/core/db_update_started.erb
574
+ - app/views/json/core/finished.erb
575
+ - app/views/json/core/help.erb
313
576
  - app/views/json/core/not_fully_configured.erb
577
+ - app/views/json/core/started.erb
314
578
  - app/views/json/core/version.erb
579
+ - app/views/json/enumeration/backup_folders.erb
315
580
  - app/views/json/enumeration/config_backups.erb
316
581
  - app/views/json/enumeration/db_exports.erb
317
582
  - app/views/json/enumeration/medias.erb
583
+ - app/views/json/enumeration/plugin.erb
318
584
  - app/views/json/enumeration/plugins.erb
585
+ - app/views/json/enumeration/theme.erb
319
586
  - app/views/json/enumeration/themes.erb
320
587
  - app/views/json/enumeration/timthumbs.erb
588
+ - app/views/json/enumeration/user.erb
321
589
  - app/views/json/enumeration/users.erb
322
590
  - app/views/json/finding.erb
591
+ - app/views/json/interesting_findings/findings.erb
323
592
  - app/views/json/main_theme/theme.erb
593
+ - app/views/json/notice.erb
324
594
  - app/views/json/password_attack/users.erb
595
+ - app/views/json/scan_aborted.erb
325
596
  - app/views/json/theme.erb
597
+ - app/views/json/update_aborted.erb
326
598
  - app/views/json/vuln_api/status.erb
327
599
  - app/views/json/wp_item.erb
328
600
  - app/views/json/wp_version/version.erb
329
601
  - bin/wpscan
602
+ - lib/opt_parse_validator.rb
603
+ - lib/opt_parse_validator/config_files_loader_merger.rb
604
+ - lib/opt_parse_validator/config_files_loader_merger/base.rb
605
+ - lib/opt_parse_validator/config_files_loader_merger/json.rb
606
+ - lib/opt_parse_validator/config_files_loader_merger/yml.rb
607
+ - lib/opt_parse_validator/errors.rb
608
+ - lib/opt_parse_validator/hacks.rb
609
+ - lib/opt_parse_validator/opts.rb
610
+ - lib/opt_parse_validator/opts/alias.rb
611
+ - lib/opt_parse_validator/opts/array.rb
612
+ - lib/opt_parse_validator/opts/base.rb
613
+ - lib/opt_parse_validator/opts/boolean.rb
614
+ - lib/opt_parse_validator/opts/choice.rb
615
+ - lib/opt_parse_validator/opts/credentials.rb
616
+ - lib/opt_parse_validator/opts/directory_path.rb
617
+ - lib/opt_parse_validator/opts/file_path.rb
618
+ - lib/opt_parse_validator/opts/headers.rb
619
+ - lib/opt_parse_validator/opts/integer.rb
620
+ - lib/opt_parse_validator/opts/integer_range.rb
621
+ - lib/opt_parse_validator/opts/multi_choices.rb
622
+ - lib/opt_parse_validator/opts/path.rb
623
+ - lib/opt_parse_validator/opts/positive_integer.rb
624
+ - lib/opt_parse_validator/opts/proxy.rb
625
+ - lib/opt_parse_validator/opts/regexp.rb
626
+ - lib/opt_parse_validator/opts/smart_list.rb
627
+ - lib/opt_parse_validator/opts/string.rb
628
+ - lib/opt_parse_validator/opts/uri.rb
629
+ - lib/opt_parse_validator/opts/url.rb
630
+ - lib/opt_parse_validator/version.rb
330
631
  - lib/wpscan.rb
331
632
  - lib/wpscan/browser.rb
633
+ - lib/wpscan/browser/actions.rb
634
+ - lib/wpscan/browser/options.rb
635
+ - lib/wpscan/browser_authenticator.rb
636
+ - lib/wpscan/cache/file_store.rb
637
+ - lib/wpscan/cache/typhoeus.rb
332
638
  - lib/wpscan/controller.rb
333
639
  - lib/wpscan/controllers.rb
334
640
  - lib/wpscan/db.rb
@@ -350,11 +656,16 @@ files:
350
656
  - lib/wpscan/errors.rb
351
657
  - lib/wpscan/errors/enumeration.rb
352
658
  - lib/wpscan/errors/http.rb
659
+ - lib/wpscan/errors/saml.rb
660
+ - lib/wpscan/errors/scan.rb
353
661
  - lib/wpscan/errors/update.rb
354
662
  - lib/wpscan/errors/vuln_api.rb
355
663
  - lib/wpscan/errors/wordpress.rb
664
+ - lib/wpscan/errors/wp_auth.rb
356
665
  - lib/wpscan/errors/xmlrpc.rb
666
+ - lib/wpscan/exit_code.rb
357
667
  - lib/wpscan/finders.rb
668
+ - lib/wpscan/finders/base_finders.rb
358
669
  - lib/wpscan/finders/dynamic_finder/finder.rb
359
670
  - lib/wpscan/finders/dynamic_finder/version/body_pattern.rb
360
671
  - lib/wpscan/finders/dynamic_finder/version/comment.rb
@@ -367,22 +678,54 @@ files:
367
678
  - lib/wpscan/finders/dynamic_finder/wp_item_version.rb
368
679
  - lib/wpscan/finders/dynamic_finder/wp_items/finder.rb
369
680
  - lib/wpscan/finders/dynamic_finder/wp_version.rb
681
+ - lib/wpscan/finders/finder.rb
682
+ - lib/wpscan/finders/finder/breadth_first_dictionary_attack.rb
683
+ - lib/wpscan/finders/finder/enumerator.rb
684
+ - lib/wpscan/finders/finder/fingerprinter.rb
685
+ - lib/wpscan/finders/finder/smart_url_checker.rb
686
+ - lib/wpscan/finders/finder/smart_url_checker/findings.rb
370
687
  - lib/wpscan/finders/finder/wp_version/smart_url_checker.rb
688
+ - lib/wpscan/finders/finding.rb
689
+ - lib/wpscan/finders/findings.rb
690
+ - lib/wpscan/finders/independent_finder.rb
691
+ - lib/wpscan/finders/independent_finders.rb
692
+ - lib/wpscan/finders/same_type_finder.rb
693
+ - lib/wpscan/finders/same_type_finders.rb
694
+ - lib/wpscan/finders/unique_finder.rb
695
+ - lib/wpscan/finders/unique_finders.rb
696
+ - lib/wpscan/formatter.rb
697
+ - lib/wpscan/formatter/buffer.rb
371
698
  - lib/wpscan/helper.rb
699
+ - lib/wpscan/http_status_tracking.rb
700
+ - lib/wpscan/numeric.rb
372
701
  - lib/wpscan/parsed_cli.rb
702
+ - lib/wpscan/progressbar_null_output.rb
703
+ - lib/wpscan/public_suffix/domain.rb
373
704
  - lib/wpscan/references.rb
705
+ - lib/wpscan/scan.rb
374
706
  - lib/wpscan/target.rb
707
+ - lib/wpscan/target/hashes.rb
708
+ - lib/wpscan/target/platform.rb
709
+ - lib/wpscan/target/platform/php.rb
375
710
  - lib/wpscan/target/platform/wordpress.rb
376
711
  - lib/wpscan/target/platform/wordpress/custom_directories.rb
712
+ - lib/wpscan/target/scope.rb
713
+ - lib/wpscan/target/server.rb
714
+ - lib/wpscan/target/server/apache.rb
715
+ - lib/wpscan/target/server/generic.rb
716
+ - lib/wpscan/target/server/iis.rb
717
+ - lib/wpscan/target/server/nginx.rb
718
+ - lib/wpscan/typhoeus/hydra.rb
377
719
  - lib/wpscan/typhoeus/response.rb
378
720
  - lib/wpscan/version.rb
379
721
  - lib/wpscan/vulnerability.rb
722
+ - lib/wpscan/vulnerability_filter.rb
380
723
  - lib/wpscan/vulnerable.rb
724
+ - lib/wpscan/web_site.rb
381
725
  homepage: https://wpscan.com/wordpress-security-scanner
382
726
  licenses:
383
727
  - Dual
384
728
  metadata: {}
385
- post_install_message:
386
729
  rdoc_options: []
387
730
  require_paths:
388
731
  - lib
@@ -390,15 +733,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
390
733
  requirements:
391
734
  - - ">="
392
735
  - !ruby/object:Gem::Version
393
- version: '3.0'
736
+ version: '3.3'
394
737
  required_rubygems_version: !ruby/object:Gem::Requirement
395
738
  requirements:
396
739
  - - ">="
397
740
  - !ruby/object:Gem::Version
398
741
  version: '0'
399
742
  requirements: []
400
- rubygems_version: 3.2.33
401
- signing_key:
743
+ rubygems_version: 4.0.10
402
744
  specification_version: 4
403
745
  summary: WPScan - WordPress Vulnerability Scanner
404
746
  test_files: []