rdoc
This commit is contained in:
@@ -262,7 +262,7 @@
|
||||
|
||||
<div class="method-heading">
|
||||
<span class="method-name">find</span><span
|
||||
class="method-args">(target_uri)</span>
|
||||
class="method-args">(target_uri, wp_content_dir)</span>
|
||||
<span class="method-click-advice">click to toggle source</span>
|
||||
</div>
|
||||
|
||||
@@ -287,9 +287,13 @@ etc)</p>
|
||||
<div class="method-source-code" id="find-source">
|
||||
<pre>
|
||||
<span class="ruby-comment"># File lib/wpscan/wp_version.rb, line 39</span>
|
||||
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">target_uri</span>)
|
||||
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">target_uri</span>, <span class="ruby-identifier">wp_content_dir</span>)
|
||||
<span class="ruby-identifier">options</span> = {
|
||||
<span class="ruby-value">:url</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">target_uri</span>,
|
||||
<span class="ruby-value">:wp_content_dir</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">wp_content_dir</span>
|
||||
}
|
||||
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">methods</span>.<span class="ruby-identifier">grep</span>(<span class="ruby-regexp">/find_from_/</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">method_to_call</span><span class="ruby-operator">|</span>
|
||||
<span class="ruby-identifier">version</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">method_to_call</span>, <span class="ruby-identifier">target_uri</span>)
|
||||
<span class="ruby-identifier">version</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">method_to_call</span>, <span class="ruby-identifier">options</span>)
|
||||
|
||||
<span class="ruby-keyword">if</span> <span class="ruby-identifier">version</span>
|
||||
<span class="ruby-keyword">return</span> <span class="ruby-identifier">new</span>(<span class="ruby-identifier">version</span>, <span class="ruby-value">:discovery_method</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">method_to_call</span>[<span class="ruby-regexp">%{find_from_(.*)}</span>, <span class="ruby-value">1</span>].<span class="ruby-identifier">gsub</span>(<span class="ruby-string">'_'</span>, <span class="ruby-string">' '</span>))
|
||||
@@ -355,7 +359,7 @@ etc)</p>
|
||||
|
||||
<div class="method-heading">
|
||||
<span class="method-name">find_from_advanced_fingerprinting</span><span
|
||||
class="method-args">(target_uri)</span>
|
||||
class="method-args">(options)</span>
|
||||
<span class="method-click-advice">click to toggle source</span>
|
||||
</div>
|
||||
|
||||
@@ -383,14 +387,18 @@ file across all versions of wordpress.</p>
|
||||
|
||||
<div class="method-source-code" id="find_from_advanced_fingerprinting-source">
|
||||
<pre>
|
||||
<span class="ruby-comment"># File lib/wpscan/wp_version.rb, line 88</span>
|
||||
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">find_from_advanced_fingerprinting</span>(<span class="ruby-identifier">target_uri</span>)
|
||||
<span class="ruby-comment"># File lib/wpscan/wp_version.rb, line 94</span>
|
||||
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">find_from_advanced_fingerprinting</span>(<span class="ruby-identifier">options</span>)
|
||||
<span class="ruby-identifier">target_uri</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>]
|
||||
<span class="ruby-identifier">xml</span> = <span class="ruby-constant">Nokogiri</span><span class="ruby-operator">::</span><span class="ruby-constant">XML</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-constant">DATA_DIR</span> <span class="ruby-operator">+</span> <span class="ruby-string">'/wp_versions.xml'</span>)) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">config</span><span class="ruby-operator">|</span>
|
||||
<span class="ruby-identifier">config</span>.<span class="ruby-identifier">noblanks</span>
|
||||
<span class="ruby-keyword">end</span>
|
||||
|
||||
<span class="ruby-identifier">xml</span>.<span class="ruby-identifier">xpath</span>(<span class="ruby-string">"//file"</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">node</span><span class="ruby-operator">|</span>
|
||||
<span class="ruby-identifier">wp_content</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:wp_content_dir</span>]
|
||||
<span class="ruby-identifier">wp_plugins</span> = <span class="ruby-node">"#{wp_content}/plugins"</span>
|
||||
<span class="ruby-identifier">file_url</span> = <span class="ruby-identifier">target_uri</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">node</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-string">'src'</span>).<span class="ruby-identifier">text</span>).<span class="ruby-identifier">to_s</span>
|
||||
<span class="ruby-identifier">file_url</span> = <span class="ruby-identifier">file_url</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/\$wp-plugins\$/</span>, <span class="ruby-identifier">wp_plugins</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/\$wp-content\$/</span>, <span class="ruby-identifier">wp_content</span>)
|
||||
<span class="ruby-identifier">response</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">file_url</span>)
|
||||
<span class="ruby-identifier">md5sum</span> = <span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">MD5</span>.<span class="ruby-identifier">hexdigest</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>)
|
||||
|
||||
@@ -418,7 +426,7 @@ file across all versions of wordpress.</p>
|
||||
|
||||
<div class="method-heading">
|
||||
<span class="method-name">find_from_meta_generator</span><span
|
||||
class="method-args">(target_uri)</span>
|
||||
class="method-args">(options)</span>
|
||||
<span class="method-click-advice">click to toggle source</span>
|
||||
</div>
|
||||
|
||||
@@ -435,8 +443,9 @@ upgrade.</p>
|
||||
|
||||
<div class="method-source-code" id="find_from_meta_generator-source">
|
||||
<pre>
|
||||
<span class="ruby-comment"># File lib/wpscan/wp_version.rb, line 57</span>
|
||||
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">find_from_meta_generator</span>(<span class="ruby-identifier">target_uri</span>)
|
||||
<span class="ruby-comment"># File lib/wpscan/wp_version.rb, line 61</span>
|
||||
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">find_from_meta_generator</span>(<span class="ruby-identifier">options</span>)
|
||||
<span class="ruby-identifier">target_uri</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>]
|
||||
<span class="ruby-identifier">response</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">target_uri</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-value">:follow_location</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:max_redirects</span> =<span class="ruby-operator">></span> <span class="ruby-value">2</span>)
|
||||
|
||||
<span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>[<span class="ruby-regexp">%{name="generator" content="wordpress ([^"]+)"}</span>, <span class="ruby-value">1</span>]
|
||||
@@ -457,7 +466,7 @@ upgrade.</p>
|
||||
|
||||
<div class="method-heading">
|
||||
<span class="method-name">find_from_readme</span><span
|
||||
class="method-args">(target_uri)</span>
|
||||
class="method-args">(options)</span>
|
||||
<span class="method-click-advice">click to toggle source</span>
|
||||
</div>
|
||||
|
||||
@@ -470,8 +479,9 @@ upgrade.</p>
|
||||
|
||||
<div class="method-source-code" id="find_from_readme-source">
|
||||
<pre>
|
||||
<span class="ruby-comment"># File lib/wpscan/wp_version.rb, line 107</span>
|
||||
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">find_from_readme</span>(<span class="ruby-identifier">target_uri</span>)
|
||||
<span class="ruby-comment"># File lib/wpscan/wp_version.rb, line 117</span>
|
||||
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">find_from_readme</span>(<span class="ruby-identifier">options</span>)
|
||||
<span class="ruby-identifier">target_uri</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>]
|
||||
<span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">target_uri</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-string">"readme.html"</span>).<span class="ruby-identifier">to_s</span>).<span class="ruby-identifier">body</span>[<span class="ruby-node">%{<br />\sversion #{WpVersion.version_pattern}}</span>, <span class="ruby-value">1</span>]
|
||||
<span class="ruby-keyword">end</span></pre>
|
||||
</div><!-- find_from_readme-source -->
|
||||
@@ -490,7 +500,7 @@ upgrade.</p>
|
||||
|
||||
<div class="method-heading">
|
||||
<span class="method-name">find_from_rss_generator</span><span
|
||||
class="method-args">(target_uri)</span>
|
||||
class="method-args">(options)</span>
|
||||
<span class="method-click-advice">click to toggle source</span>
|
||||
</div>
|
||||
|
||||
@@ -503,8 +513,9 @@ upgrade.</p>
|
||||
|
||||
<div class="method-source-code" id="find_from_rss_generator-source">
|
||||
<pre>
|
||||
<span class="ruby-comment"># File lib/wpscan/wp_version.rb, line 63</span>
|
||||
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">find_from_rss_generator</span>(<span class="ruby-identifier">target_uri</span>)
|
||||
<span class="ruby-comment"># File lib/wpscan/wp_version.rb, line 68</span>
|
||||
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">find_from_rss_generator</span>(<span class="ruby-identifier">options</span>)
|
||||
<span class="ruby-identifier">target_uri</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>]
|
||||
<span class="ruby-identifier">response</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">target_uri</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-string">"feed/"</span>).<span class="ruby-identifier">to_s</span>, <span class="ruby-value">:follow_location</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:max_redirects</span> =<span class="ruby-operator">></span> <span class="ruby-value">2</span>)
|
||||
|
||||
<span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>[<span class="ruby-regexp">%{<generator>http://wordpress.org/\?v=([^<]+)</generator>}</span>, <span class="ruby-value">1</span>]
|
||||
@@ -525,7 +536,7 @@ upgrade.</p>
|
||||
|
||||
<div class="method-heading">
|
||||
<span class="method-name">find_from_sitemap_generator</span><span
|
||||
class="method-args">(target_uri)</span>
|
||||
class="method-args">(options)</span>
|
||||
<span class="method-click-advice">click to toggle source</span>
|
||||
</div>
|
||||
|
||||
@@ -539,8 +550,9 @@ href="http://code.google.com/p/wpscan/issues/detail?id=109">code.google.com/p/wp
|
||||
|
||||
<div class="method-source-code" id="find_from_sitemap_generator-source">
|
||||
<pre>
|
||||
<span class="ruby-comment"># File lib/wpscan/wp_version.rb, line 112</span>
|
||||
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">find_from_sitemap_generator</span>(<span class="ruby-identifier">target_uri</span>)
|
||||
<span class="ruby-comment"># File lib/wpscan/wp_version.rb, line 123</span>
|
||||
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">find_from_sitemap_generator</span>(<span class="ruby-identifier">options</span>)
|
||||
<span class="ruby-identifier">target_uri</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>]
|
||||
<span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">target_uri</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-string">"sitemap.xml"</span>).<span class="ruby-identifier">to_s</span>).<span class="ruby-identifier">body</span>[<span class="ruby-node">%{generator="wordpress/#{WpVersion.version_pattern}"}</span>, <span class="ruby-value">1</span>]
|
||||
<span class="ruby-keyword">end</span></pre>
|
||||
</div><!-- find_from_sitemap_generator-source -->
|
||||
@@ -573,7 +585,7 @@ one ‘.’</p>
|
||||
|
||||
<div class="method-source-code" id="version_pattern-source">
|
||||
<pre>
|
||||
<span class="ruby-comment"># File lib/wpscan/wp_version.rb, line 117</span>
|
||||
<span class="ruby-comment"># File lib/wpscan/wp_version.rb, line 129</span>
|
||||
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">version_pattern</span>
|
||||
<span class="ruby-string">'(.*(?=.)(?=.*\d)(?=.*[.]).*)'</span>
|
||||
<span class="ruby-keyword">end</span></pre>
|
||||
|
||||
Reference in New Issue
Block a user