|
1 | 1 | # -*- coding: binary -*-
|
2 | 2 |
|
3 | 3 | module Msf::HTTP::Wordpress::Version
|
| 4 | + |
| 5 | + # Used to check if the version is correct: must contain at least one dot |
| 6 | + WORDPRESS_VERSION_PATTERN = '([^\r\n"\']+\.[^\r\n"\']+)' |
| 7 | + |
4 | 8 | # Extracts the Wordpress version information from various sources
|
5 | 9 | #
|
6 | 10 | # @return [String,nil] Wordpress version if found, nil otherwise
|
7 | 11 | def wordpress_version
|
8 | 12 | # detect version from generator
|
9 |
| - version = wordpress_version_helper(normalize_uri(target_uri.path), /<meta name="generator" content="WordPress #{wordpress_version_pattern}" \/>/i) |
| 13 | + version = wordpress_version_helper(normalize_uri(target_uri.path), /<meta name="generator" content="WordPress #{WORDPRESS_VERSION_PATTERN}" \/>/i) |
10 | 14 | return version if version
|
11 | 15 |
|
12 | 16 | # detect version from readme
|
13 |
| - version = wordpress_version_helper(wordpress_url_readme, /<br \/>\sversion #{wordpress_version_pattern}/i) |
| 17 | + version = wordpress_version_helper(wordpress_url_readme, /<br \/>\sversion #{WORDPRESS_VERSION_PATTERN}/i) |
14 | 18 | return version if version
|
15 | 19 |
|
16 | 20 | # detect version from rss
|
17 |
| - version = wordpress_version_helper(wordpress_url_rss, /<generator>http:\/\/wordpress.org\/\?v=#{wordpress_version_pattern}<\/generator>/i) |
| 21 | + version = wordpress_version_helper(wordpress_url_rss, /<generator>http:\/\/wordpress.org\/\?v=#{WORDPRESS_VERSION_PATTERN}<\/generator>/i) |
18 | 22 | return version if version
|
19 | 23 |
|
20 | 24 | # detect version from rdf
|
21 |
| - version = wordpress_version_helper(wordpress_url_rdf, /<admin:generatorAgent rdf:resource="http:\/\/wordpress.org\/\?v=#{wordpress_version_pattern}" \/>/i) |
| 25 | + version = wordpress_version_helper(wordpress_url_rdf, /<admin:generatorAgent rdf:resource="http:\/\/wordpress.org\/\?v=#{WORDPRESS_VERSION_PATTERN}" \/>/i) |
22 | 26 | return version if version
|
23 | 27 |
|
24 | 28 | # detect version from atom
|
25 |
| - version = wordpress_version_helper(wordpress_url_atom, /<generator uri="http:\/\/wordpress.org\/" version="#{wordpress_version_pattern}">WordPress<\/generator>/i) |
| 29 | + version = wordpress_version_helper(wordpress_url_atom, /<generator uri="http:\/\/wordpress.org\/" version="#{WORDPRESS_VERSION_PATTERN}">WordPress<\/generator>/i) |
26 | 30 | return version if version
|
27 | 31 |
|
28 | 32 | # detect version from sitemap
|
29 |
| - version = wordpress_version_helper(wordpress_url_sitemap, /generator="wordpress\/#{wordpress_version_pattern}"/i) |
| 33 | + version = wordpress_version_helper(wordpress_url_sitemap, /generator="wordpress\/#{WORDPRESS_VERSION_PATTERN}"/i) |
30 | 34 | return version if version
|
31 | 35 |
|
32 | 36 | # detect version from opml
|
33 |
| - version = wordpress_version_helper(wordpress_url_opml, /generator="wordpress\/#{wordpress_version_pattern}"/i) |
| 37 | + version = wordpress_version_helper(wordpress_url_opml, /generator="wordpress\/#{WORDPRESS_VERSION_PATTERN}"/i) |
34 | 38 | return version if version
|
35 | 39 |
|
36 | 40 | nil
|
@@ -60,13 +64,6 @@ def check_theme_version_from_readme(theme_name, fixed_version, vuln_introduced_v
|
60 | 64 |
|
61 | 65 | private
|
62 | 66 |
|
63 |
| - # Used to check if the version is correct: must contain at least one dot |
64 |
| - # |
65 |
| - # @return [ String ] |
66 |
| - def wordpress_version_pattern |
67 |
| - '([^\r\n"\']+\.[^\r\n"\']+)' |
68 |
| - end |
69 |
| - |
70 | 67 | def wordpress_version_helper(url, regex)
|
71 | 68 | res = send_request_cgi(
|
72 | 69 | 'method' => 'GET',
|
|
0 commit comments