This commit is contained in:
Christian Mehlmauer
2012-09-19 22:43:34 +02:00
parent b73c1a6422
commit 1073da25c1
52 changed files with 589 additions and 167 deletions

View File

@@ -148,6 +148,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -164,6 +164,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -140,6 +140,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>
@@ -217,7 +219,7 @@ on large wordlists, although bareable.</p>
<div class="method-source-code" id="lines_in_file-source"> <div class="method-source-code" id="lines_in_file-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/modules/brute_force.rb, line 109</span> <span class="ruby-comment"># File lib/wpscan/modules/brute_force.rb, line 111</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">lines_in_file</span>(<span class="ruby-identifier">file_path</span>) <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">lines_in_file</span>(<span class="ruby-identifier">file_path</span>)
<span class="ruby-identifier">lines</span> = <span class="ruby-value">0</span> <span class="ruby-identifier">lines</span> = <span class="ruby-value">0</span>
<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file_path</span>, <span class="ruby-string">'r'</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span> <span class="ruby-identifier">lines</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> } <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file_path</span>, <span class="ruby-string">'r'</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span> <span class="ruby-identifier">lines</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> }
@@ -284,9 +286,11 @@ on large wordlists, although bareable.</p>
<span class="ruby-comment"># the request object</span> <span class="ruby-comment"># the request object</span>
<span class="ruby-identifier">request</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">forge_request</span>(<span class="ruby-identifier">login_url</span>, <span class="ruby-identifier">request</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">forge_request</span>(<span class="ruby-identifier">login_url</span>,
{
<span class="ruby-value">:method</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:post</span>, <span class="ruby-value">:method</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:post</span>,
<span class="ruby-value">:params</span> =<span class="ruby-operator">&gt;</span> {<span class="ruby-value">:log</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">username</span>, <span class="ruby-value">:pwd</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">password</span>}, <span class="ruby-value">:params</span> =<span class="ruby-operator">&gt;</span> {<span class="ruby-value">:log</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">username</span>, <span class="ruby-value">:pwd</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">password</span>},
<span class="ruby-value">:cache_timeout</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-value">:cache_timeout</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
}
) )
<span class="ruby-comment"># tell hydra what to do when the request completes</span> <span class="ruby-comment"># tell hydra what to do when the request completes</span>

View File

@@ -104,6 +104,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -154,6 +154,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -172,6 +172,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -154,6 +154,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -152,6 +152,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -144,6 +144,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -162,6 +162,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -104,6 +104,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -172,6 +172,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -150,6 +150,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -148,6 +148,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -154,6 +154,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -148,6 +148,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -146,6 +146,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>
@@ -270,9 +272,9 @@ be empty)</p>
<span class="ruby-identifier">xml</span>.<span class="ruby-identifier">xpath</span>(<span class="ruby-ivar">@vulns_xpath</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">xml</span>.<span class="ruby-identifier">xpath</span>(<span class="ruby-ivar">@vulns_xpath</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">vulnerabilities</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">WpVulnerability</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">vulnerabilities</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">WpVulnerability</span>.<span class="ruby-identifier">new</span>(
<span class="ruby-identifier">node</span>.<span class="ruby-identifier">search</span>(<span class="ruby-string">'title'</span>).<span class="ruby-identifier">text</span>, <span class="ruby-identifier">node</span>.<span class="ruby-identifier">search</span>(<span class="ruby-string">&quot;title&quot;</span>).<span class="ruby-identifier">text</span>,
<span class="ruby-identifier">node</span>.<span class="ruby-identifier">search</span>(<span class="ruby-string">'reference'</span>).<span class="ruby-identifier">text</span>, <span class="ruby-identifier">node</span>.<span class="ruby-identifier">search</span>(<span class="ruby-string">&quot;reference&quot;</span>).<span class="ruby-identifier">text</span>,
<span class="ruby-identifier">node</span>.<span class="ruby-identifier">search</span>(<span class="ruby-string">'type'</span>).<span class="ruby-identifier">text</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">search</span>(<span class="ruby-string">&quot;type&quot;</span>).<span class="ruby-identifier">text</span>
) )
<span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span>
<span class="ruby-identifier">vulnerabilities</span> <span class="ruby-identifier">vulnerabilities</span>

View File

@@ -144,6 +144,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>
@@ -220,7 +222,7 @@
<div class="method-source-code" id="is_online-3F-source"> <div class="method-source-code" id="is_online-3F-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/modules/web_site.rb, line 52</span> <span class="ruby-comment"># File lib/wpscan/modules/web_site.rb, line 50</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">is_online?</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">is_online?</span>
<span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">to_s</span>).<span class="ruby-identifier">code</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">to_s</span>).<span class="ruby-identifier">code</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
<span class="ruby-keyword">end</span></pre> <span class="ruby-keyword">end</span></pre>
@@ -258,16 +260,14 @@
<span class="ruby-identifier">wordpress</span> = <span class="ruby-keyword">false</span> <span class="ruby-identifier">wordpress</span> = <span class="ruby-keyword">false</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">login_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">login_url</span>(),
<span class="ruby-value">:follow_location</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, { <span class="ruby-value">:follow_location</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:max_redirects</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span> }
<span class="ruby-value">:max_redirects</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span>
) )
<span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">%{WordPress}</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">%{WordPress}</span>
<span class="ruby-identifier">wordpress</span> = <span class="ruby-keyword">true</span> <span class="ruby-identifier">wordpress</span> = <span class="ruby-keyword">true</span>
<span class="ruby-keyword">else</span> <span class="ruby-keyword">else</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">xmlrpc_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">xmlrpc_url</span>(),
<span class="ruby-value">:follow_location</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, { <span class="ruby-value">:follow_location</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:max_redirects</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span> }
<span class="ruby-value">:max_redirects</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span>
) )
<span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">%{XML-RPC server accepts POST requests only}</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">%{XML-RPC server accepts POST requests only}</span>
@@ -307,7 +307,7 @@ redirection or nil</p>
<div class="method-source-code" id="redirection-source"> <div class="method-source-code" id="redirection-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/modules/web_site.rb, line 58</span> <span class="ruby-comment"># File lib/wpscan/modules/web_site.rb, line 56</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">redirection</span>(<span class="ruby-identifier">url</span> = <span class="ruby-keyword">nil</span>) <span class="ruby-keyword">def</span> <span class="ruby-identifier">redirection</span>(<span class="ruby-identifier">url</span> = <span class="ruby-keyword">nil</span>)
<span class="ruby-identifier">url</span> <span class="ruby-operator">||=</span> <span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-identifier">url</span> <span class="ruby-operator">||=</span> <span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">to_s</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">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">url</span>)
@@ -347,7 +347,7 @@ redirection or nil</p>
<div class="method-source-code" id="xmlrpc_url-source"> <div class="method-source-code" id="xmlrpc_url-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/modules/web_site.rb, line 47</span> <span class="ruby-comment"># File lib/wpscan/modules/web_site.rb, line 45</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">xmlrpc_url</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">xmlrpc_url</span>
<span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-string">&quot;xmlrpc.php&quot;</span>).<span class="ruby-identifier">to_s</span> <span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-string">&quot;xmlrpc.php&quot;</span>).<span class="ruby-identifier">to_s</span>
<span class="ruby-keyword">end</span></pre> <span class="ruby-keyword">end</span></pre>

View File

@@ -140,6 +140,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -148,6 +148,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -67,6 +67,8 @@
<li><a href="#method-c-enumerate">::enumerate</a></li> <li><a href="#method-c-enumerate">::enumerate</a></li>
<li><a href="#method-c-generate_items">::generate_items</a></li>
</ul> </ul>
</div> </div>
@@ -146,6 +148,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>
@@ -271,7 +275,7 @@
<span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span>
<span class="ruby-identifier">url</span> = <span class="ruby-node">&quot;#{target[:url]}#{target[:wp_content_dir]}/#{target[:path]}&quot;</span> <span class="ruby-identifier">url</span> = <span class="ruby-node">&quot;#{target[:url]}#{target[:wp_content_dir]}/#{target[:path]}&quot;</span>
<span class="ruby-identifier">request</span> = <span class="ruby-identifier">enum_browser</span>.<span class="ruby-identifier">forge_request</span>(<span class="ruby-identifier">url</span>, <span class="ruby-value">:cache_timeout</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>, <span class="ruby-value">:follow_location</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>) <span class="ruby-identifier">request</span> = <span class="ruby-identifier">enum_browser</span>.<span class="ruby-identifier">forge_request</span>(<span class="ruby-identifier">url</span>, { <span class="ruby-value">:cache_timeout</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>, <span class="ruby-value">:follow_location</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span> })
<span class="ruby-identifier">request_count</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-identifier">request_count</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
<span class="ruby-identifier">request</span>.<span class="ruby-identifier">on_complete</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span><span class="ruby-operator">|</span> <span class="ruby-identifier">request</span>.<span class="ruby-identifier">on_complete</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span><span class="ruby-operator">|</span>
@@ -309,6 +313,88 @@
</div><!-- public-class-method-details --> </div><!-- public-class-method-details -->
<div id="protected-class-method-details" class="method-section section">
<h3 class="section-header">Protected Class Methods</h3>
<div id="generate_items-method" class="method-detail ">
<a name="method-c-generate_items"></a>
<div class="method-heading">
<span class="method-name">generate_items</span><span
class="method-args">(options = {})</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="generate_items-source">
<pre>
<span class="ruby-comment"># File lib/wpscan/wp_enumerator.rb, line 88</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">generate_items</span>(<span class="ruby-identifier">options</span> = {})
<span class="ruby-identifier">only_vulnerable</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:only_vulnerable_ones</span>]
<span class="ruby-identifier">file</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:file</span>]
<span class="ruby-identifier">vulns_file</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_file</span>]
<span class="ruby-identifier">wp_content_dir</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:wp_content_dir</span>]
<span class="ruby-identifier">url</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>]
<span class="ruby-identifier">type</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:type</span>]
<span class="ruby-identifier">targets_url</span> = []
<span class="ruby-keyword">if</span> <span class="ruby-identifier">only_vulnerable</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>
<span class="ruby-comment"># Open and parse the 'most popular' plugin list...</span>
<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>, <span class="ruby-string">'r'</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">f</span>.<span class="ruby-identifier">readlines</span>.<span class="ruby-identifier">collect</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">targets_url</span> <span class="ruby-operator">&lt;&lt;</span> {
<span class="ruby-value">:url</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">url</span>,
<span class="ruby-value">:path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip</span>,
<span class="ruby-value">:wp_content_dir</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">wp_content_dir</span>,
<span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip</span>)
}
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span>
<span class="ruby-comment"># Timthumbs have no XML file</span>
<span class="ruby-keyword">unless</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/timthumbs/</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-identifier">vulns_file</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-comment"># We check if the plugin name from the plugin_vulns_file is already in targets, otherwise we add it</span>
<span class="ruby-identifier">xml</span>.<span class="ruby-identifier">xpath</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath_2</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">name</span> = <span class="ruby-identifier">node</span>.<span class="ruby-identifier">attribute</span>(<span class="ruby-string">&quot;name&quot;</span>).<span class="ruby-identifier">text</span>
<span class="ruby-identifier">targets_url</span> <span class="ruby-operator">&lt;&lt;</span> {
<span class="ruby-value">:url</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">url</span>,
<span class="ruby-value">:path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>,
<span class="ruby-value">:wp_content_dir</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">wp_content_dir</span>,
<span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>
}
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">targets_url</span>.<span class="ruby-identifier">flatten!</span>
<span class="ruby-identifier">targets_url</span>.<span class="ruby-identifier">uniq!</span>
<span class="ruby-comment"># randomize the plugins array to *maybe* help in some crappy IDS/IPS/WAF detection</span>
<span class="ruby-identifier">targets_url</span>.<span class="ruby-identifier">sort_by!</span> { <span class="ruby-identifier">rand</span> }
<span class="ruby-keyword">end</span></pre>
</div><!-- generate_items-source -->
</div>
</div><!-- generate_items-method -->
</div><!-- protected-class-method-details -->
</div><!-- 5Buntitled-5D --> </div><!-- 5Buntitled-5D -->

View File

@@ -140,6 +140,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -67,8 +67,12 @@
<li><a href="#method-c-new">::new</a></li> <li><a href="#method-c-new">::new</a></li>
<li><a href="#method-i-3C-3D-3E">#<=></a></li>
<li><a href="#method-i-3D-3D">#==</a></li> <li><a href="#method-i-3D-3D">#==</a></li>
<li><a href="#method-i-3D-3D-3D">#===</a></li>
<li><a href="#method-i-changelog_url">#changelog_url</a></li> <li><a href="#method-i-changelog_url">#changelog_url</a></li>
<li><a href="#method-i-directory_listing-3F">#directory_listing?</a></li> <li><a href="#method-i-directory_listing-3F">#directory_listing?</a></li>
@@ -168,6 +172,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>
@@ -355,12 +361,12 @@
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_item.rb, line 25</span> <span class="ruby-comment"># File lib/wpscan/wp_item.rb, line 25</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {}) <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {})
<span class="ruby-ivar">@wp_content_dir</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:wp_content_dir</span>] <span class="ruby-ivar">@wp_content_dir</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:wp_content_dir</span>] <span class="ruby-operator">||</span> <span class="ruby-string">&quot;wp-content&quot;</span>
<span class="ruby-ivar">@url</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>] <span class="ruby-ivar">@url</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>]
<span class="ruby-ivar">@path</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:path</span>] <span class="ruby-ivar">@path</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:path</span>]
<span class="ruby-ivar">@name</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:name</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">extract_name_from_url</span> <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:name</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">extract_name_from_url</span>
<span class="ruby-ivar">@vulns_xml</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xml</span>] <span class="ruby-ivar">@vulns_xml</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xml</span>]
<span class="ruby-ivar">@vulns_xpath</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath</span>] <span class="ruby-ivar">@vulns_xpath</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath</span>].<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/\$name\$/</span>, <span class="ruby-ivar">@name</span>)
<span class="ruby-identifier">raise</span>(<span class="ruby-string">&quot;url not set&quot;</span>) <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@url</span> <span class="ruby-identifier">raise</span>(<span class="ruby-string">&quot;url not set&quot;</span>) <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@url</span>
<span class="ruby-identifier">raise</span>(<span class="ruby-string">&quot;path not set&quot;</span>) <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@path</span> <span class="ruby-identifier">raise</span>(<span class="ruby-string">&quot;path not set&quot;</span>) <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@path</span>
@@ -384,28 +390,61 @@
<h3 class="section-header">Public Instance Methods</h3> <h3 class="section-header">Public Instance Methods</h3>
<div id="3D-3D-method" class="method-detail "> <div id="3C-3D-3E-method" class="method-detail ">
<a name="method-i-3D-3D"></a> <a name="method-i-3C-3D-3E"></a>
<div class="method-heading"> <div class="method-heading">
<span class="method-name">==</span><span <span class="method-name">&lt;=&gt;</span><span
class="method-args">(item)</span> class="method-args">(other)</span>
<span class="method-click-advice">click to toggle source</span> <span class="method-click-advice">click to toggle source</span>
</div> </div>
<div class="method-description"> <div class="method-description">
<p><a href="Object.html">Object</a> comparer</p> <p>Compare</p>
<div class="method-source-code" id="3C-3D-3E-source">
<pre>
<span class="ruby-comment"># File lib/wpscan/wp_item.rb, line 97</span>
<span class="ruby-keyword">def</span> <span class="ruby-operator">&lt;=&gt;</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-identifier">other</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">name</span>
<span class="ruby-keyword">end</span></pre>
</div><!-- 3C-3D-3E-source -->
</div>
</div><!-- 3C-3D-3E-method -->
<div id="3D-3D-method" class="method-detail ">
<a name="method-i-3D-3D"></a>
<div class="method-heading">
<span class="method-name">==</span><span
class="method-args">(other)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>Compare</p>
<div class="method-source-code" id="3D-3D-source"> <div class="method-source-code" id="3D-3D-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_item.rb, line 87</span> <span class="ruby-comment"># File lib/wpscan/wp_item.rb, line 87</span>
<span class="ruby-keyword">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">item</span>) <span class="ruby-keyword">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-identifier">item</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@name</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">name</span>
<span class="ruby-keyword">end</span></pre> <span class="ruby-keyword">end</span></pre>
</div><!-- 3D-3D-source --> </div><!-- 3D-3D-source -->
@@ -417,6 +456,39 @@
</div><!-- 3D-3D-method --> </div><!-- 3D-3D-method -->
<div id="3D-3D-3D-method" class="method-detail ">
<a name="method-i-3D-3D-3D"></a>
<div class="method-heading">
<span class="method-name">===</span><span
class="method-args">(other)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>Compare</p>
<div class="method-source-code" id="3D-3D-3D-source">
<pre>
<span class="ruby-comment"># File lib/wpscan/wp_item.rb, line 92</span>
<span class="ruby-keyword">def</span> <span class="ruby-operator">===</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-identifier">other</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">name</span>
<span class="ruby-keyword">end</span></pre>
</div><!-- 3D-3D-3D-source -->
</div>
</div><!-- 3D-3D-3D-method -->
<div id="changelog_url-method" class="method-detail "> <div id="changelog_url-method" class="method-detail ">
<a name="method-i-changelog_url"></a> <a name="method-i-changelog_url"></a>
@@ -436,7 +508,7 @@
<div class="method-source-code" id="changelog_url-source"> <div class="method-source-code" id="changelog_url-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_item.rb, line 97</span> <span class="ruby-comment"># File lib/wpscan/wp_item.rb, line 107</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">changelog_url</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">changelog_url</span>
<span class="ruby-identifier">get_url_without_filename</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-string">&quot;changelog.txt&quot;</span>) <span class="ruby-identifier">get_url_without_filename</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-string">&quot;changelog.txt&quot;</span>)
<span class="ruby-keyword">end</span></pre> <span class="ruby-keyword">end</span></pre>
@@ -612,7 +684,7 @@
<div class="method-source-code" id="has_changelog-3F-source"> <div class="method-source-code" id="has_changelog-3F-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_item.rb, line 111</span> <span class="ruby-comment"># File lib/wpscan/wp_item.rb, line 121</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">has_changelog?</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">has_changelog?</span>
<span class="ruby-keyword">unless</span> <span class="ruby-ivar">@changelog</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@changelog</span>
<span class="ruby-identifier">status</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">changelog_url</span>).<span class="ruby-identifier">code</span> <span class="ruby-identifier">status</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">changelog_url</span>).<span class="ruby-identifier">code</span>
@@ -649,7 +721,7 @@
<div class="method-source-code" id="has_readme-3F-source"> <div class="method-source-code" id="has_readme-3F-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_item.rb, line 102</span> <span class="ruby-comment"># File lib/wpscan/wp_item.rb, line 112</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">has_readme?</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">has_readme?</span>
<span class="ruby-keyword">unless</span> <span class="ruby-ivar">@readme</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@readme</span>
<span class="ruby-identifier">status</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">readme_url</span>).<span class="ruby-identifier">code</span> <span class="ruby-identifier">status</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">readme_url</span>).<span class="ruby-identifier">code</span>
@@ -686,7 +758,7 @@
<div class="method-source-code" id="readme_url-source"> <div class="method-source-code" id="readme_url-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_item.rb, line 92</span> <span class="ruby-comment"># File lib/wpscan/wp_item.rb, line 102</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">readme_url</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">readme_url</span>
<span class="ruby-identifier">get_url_without_filename</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-string">&quot;readme.txt&quot;</span>) <span class="ruby-identifier">get_url_without_filename</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-string">&quot;readme.txt&quot;</span>)
<span class="ruby-keyword">end</span></pre> <span class="ruby-keyword">end</span></pre>

View File

@@ -67,8 +67,6 @@
<li><a href="#method-c-check_options">::check_options</a></li> <li><a href="#method-c-check_options">::check_options</a></li>
<li><a href="#method-c-get_empty_options">::get_empty_options</a></li>
</ul> </ul>
</div> </div>
@@ -148,6 +146,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>
@@ -249,7 +249,7 @@
<div class="method-source-code" id="check_options-source"> <div class="method-source-code" id="check_options-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_options.rb, line 50</span> <span class="ruby-comment"># File lib/wpscan/wp_options.rb, line 34</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">check_options</span>(<span class="ruby-identifier">options</span>) <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">check_options</span>(<span class="ruby-identifier">options</span>)
<span class="ruby-identifier">raise</span>(<span class="ruby-string">&quot;url must be set&quot;</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-identifier">raise</span>(<span class="ruby-string">&quot;url must be set&quot;</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
<span class="ruby-identifier">raise</span>(<span class="ruby-string">&quot;only_vulnerable_ones must be set&quot;</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:only_vulnerable_ones</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span> <span class="ruby-identifier">raise</span>(<span class="ruby-string">&quot;only_vulnerable_ones must be set&quot;</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:only_vulnerable_ones</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span>
@@ -276,51 +276,6 @@
</div><!-- check_options-method --> </div><!-- check_options-method -->
<div id="get_empty_options-method" class="method-detail ">
<a name="method-c-get_empty_options"></a>
<div class="method-heading">
<span class="method-name">get_empty_options</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="get_empty_options-source">
<pre>
<span class="ruby-comment"># File lib/wpscan/wp_options.rb, line 34</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">get_empty_options</span>
<span class="ruby-identifier">options</span> = {
<span class="ruby-value">:url</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;&quot;</span>,
<span class="ruby-value">:only_vulnerable_ones</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>,
<span class="ruby-value">:file</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;&quot;</span>,
<span class="ruby-value">:vulns_file</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;&quot;</span>,
<span class="ruby-value">:vulns_xpath</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;&quot;</span>,
<span class="ruby-value">:vulns_xpath_2</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;&quot;</span>,
<span class="ruby-value">:wp_content_dir</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;&quot;</span>,
<span class="ruby-value">:show_progress_bar</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>,
<span class="ruby-value">:error_404_hash</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;&quot;</span>,
<span class="ruby-value">:type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;&quot;</span>
}
<span class="ruby-identifier">options</span>
<span class="ruby-keyword">end</span></pre>
</div><!-- get_empty_options-source -->
</div>
</div><!-- get_empty_options-method -->
</div><!-- public-class-method-details --> </div><!-- public-class-method-details -->
</div><!-- 5Buntitled-5D --> </div><!-- 5Buntitled-5D -->

View File

@@ -150,6 +150,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>
@@ -229,7 +231,9 @@
<span class="ruby-comment"># File lib/wpscan/wp_plugin.rb, line 20</span> <span class="ruby-comment"># File lib/wpscan/wp_plugin.rb, line 20</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {}) <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {})
<span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xml</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xml</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">DATA_DIR</span> <span class="ruby-operator">+</span> <span class="ruby-string">'/plugin_vulns.xml'</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xml</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xml</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">DATA_DIR</span> <span class="ruby-operator">+</span> <span class="ruby-string">'/plugin_vulns.xml'</span>
<span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath</span>] = <span class="ruby-node">&quot;//plugin[@name='#@name']/vulnerability&quot;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath</span>] = <span class="ruby-string">&quot;//plugin[@name='$name$']/vulnerability&quot;</span>
<span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath_2</span>] = <span class="ruby-string">&quot;//plugin&quot;</span>
<span class="ruby-identifier">options</span>[<span class="ruby-value">:type</span>] = <span class="ruby-string">&quot;plugins&quot;</span>
<span class="ruby-keyword">super</span>(<span class="ruby-identifier">options</span>) <span class="ruby-keyword">super</span>(<span class="ruby-identifier">options</span>)
<span class="ruby-keyword">end</span></pre> <span class="ruby-keyword">end</span></pre>
</div><!-- new-source --> </div><!-- new-source -->
@@ -270,7 +274,7 @@ href="http://www.exploit-db.com/ghdb/3714/">www.exploit-db.com/ghdb/3714/</a></p
<div class="method-source-code" id="error_log-3F-source"> <div class="method-source-code" id="error_log-3F-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_plugin.rb, line 31</span> <span class="ruby-comment"># File lib/wpscan/wp_plugin.rb, line 33</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">error_log?</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">error_log?</span>
<span class="ruby-identifier">response_body</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">error_log_url</span>(), <span class="ruby-value">:headers</span> =<span class="ruby-operator">&gt;</span> { <span class="ruby-string">&quot;range&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;bytes=0-700&quot;</span>}).<span class="ruby-identifier">body</span> <span class="ruby-identifier">response_body</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">error_log_url</span>(), <span class="ruby-value">:headers</span> =<span class="ruby-operator">&gt;</span> { <span class="ruby-string">&quot;range&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;bytes=0-700&quot;</span>}).<span class="ruby-identifier">body</span>
<span class="ruby-identifier">response_body</span>[<span class="ruby-regexp">%{PHP Fatal error}</span>] <span class="ruby-operator">?</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">false</span> <span class="ruby-identifier">response_body</span>[<span class="ruby-regexp">%{PHP Fatal error}</span>] <span class="ruby-operator">?</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">false</span>
@@ -304,7 +308,7 @@ href="http://www.exploit-db.com/ghdb/3714/">www.exploit-db.com/ghdb/3714/</a></p
<div class="method-source-code" id="error_log_url-source"> <div class="method-source-code" id="error_log_url-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_plugin.rb, line 36</span> <span class="ruby-comment"># File lib/wpscan/wp_plugin.rb, line 38</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">error_log_url</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">error_log_url</span>
<span class="ruby-identifier">get_url</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-string">&quot;error_log&quot;</span>).<span class="ruby-identifier">to_s</span> <span class="ruby-identifier">get_url</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-string">&quot;error_log&quot;</span>).<span class="ruby-identifier">to_s</span>
<span class="ruby-keyword">end</span></pre> <span class="ruby-keyword">end</span></pre>

View File

@@ -140,6 +140,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>
@@ -220,8 +222,8 @@
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/modules/wp_plugins.rb, line 24</span> <span class="ruby-comment"># File lib/wpscan/modules/wp_plugins.rb, line 24</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">plugins_from_aggressive_detection</span>(<span class="ruby-identifier">options</span>) <span class="ruby-keyword">def</span> <span class="ruby-identifier">plugins_from_aggressive_detection</span>(<span class="ruby-identifier">options</span>)
<span class="ruby-identifier">options</span>[<span class="ruby-value">:file</span>] = <span class="ruby-node">&quot;#{DATA_DIR}/plugins.txt&quot;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:file</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:file</span>] <span class="ruby-operator">||</span> <span class="ruby-node">&quot;#{DATA_DIR}/plugins.txt&quot;</span>
<span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_file</span>] = <span class="ruby-node">&quot;#{DATA_DIR}/plugin_vulns.xml&quot;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_file</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_file</span>] <span class="ruby-operator">||</span> <span class="ruby-node">&quot;#{DATA_DIR}/plugin_vulns.xml&quot;</span>
<span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath</span>] = <span class="ruby-node">&quot;//plugin[@name='#{@name}']/vulnerability&quot;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath</span>] = <span class="ruby-node">&quot;//plugin[@name='#{@name}']/vulnerability&quot;</span>
<span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath_2</span>] = <span class="ruby-string">&quot;//plugin&quot;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath_2</span>] = <span class="ruby-string">&quot;//plugin&quot;</span>
<span class="ruby-identifier">options</span>[<span class="ruby-value">:type</span>] = <span class="ruby-string">&quot;plugins&quot;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:type</span>] = <span class="ruby-string">&quot;plugins&quot;</span>
@@ -253,7 +255,7 @@
<div class="method-heading"> <div class="method-heading">
<span class="method-name">plugins_from_passive_detection</span><span <span class="method-name">plugins_from_passive_detection</span><span
class="method-args">(wp_content_dir)</span> class="method-args">(options)</span>
<span class="method-click-advice">click to toggle source</span> <span class="method-click-advice">click to toggle source</span>
</div> </div>
@@ -275,16 +277,16 @@ plugins can be found in the source code :</p>
<div class="method-source-code" id="plugins_from_passive_detection-source"> <div class="method-source-code" id="plugins_from_passive_detection-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/modules/wp_plugins.rb, line 49</span> <span class="ruby-comment"># File lib/wpscan/modules/wp_plugins.rb, line 49</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">plugins_from_passive_detection</span>(<span class="ruby-identifier">wp_content_dir</span>) <span class="ruby-keyword">def</span> <span class="ruby-identifier">plugins_from_passive_detection</span>(<span class="ruby-identifier">options</span>)
<span class="ruby-identifier">plugins</span> = [] <span class="ruby-identifier">plugins</span> = []
<span class="ruby-identifier">temp</span> = <span class="ruby-constant">WpDetector</span>.<span class="ruby-identifier">passive_detection</span>(<span class="ruby-identifier">url</span>(), <span class="ruby-string">&quot;plugins&quot;</span>, <span class="ruby-identifier">wp_content_dir</span>) <span class="ruby-identifier">temp</span> = <span class="ruby-constant">WpDetector</span>.<span class="ruby-identifier">passive_detection</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>], <span class="ruby-string">&quot;plugins&quot;</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:wp_content_dir</span>])
<span class="ruby-identifier">temp</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-identifier">temp</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">plugins</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">WpPlugin</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">plugins</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">WpPlugin</span>.<span class="ruby-identifier">new</span>(
<span class="ruby-value">:url</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">item</span>[<span class="ruby-value">:url</span>], <span class="ruby-value">:url</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">item</span>[<span class="ruby-value">:url</span>],
<span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">item</span>[<span class="ruby-value">:name</span>], <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">item</span>[<span class="ruby-value">:name</span>],
<span class="ruby-value">:path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">item</span>[<span class="ruby-value">:path</span>], <span class="ruby-value">:path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">item</span>[<span class="ruby-value">:path</span>],
<span class="ruby-value">:wp_content_dir</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">wp_content_dir</span> <span class="ruby-value">:wp_content_dir</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:wp_content_dir</span>]
) )
<span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span>
<span class="ruby-identifier">plugins</span>.<span class="ruby-identifier">sort_by</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">name</span> } <span class="ruby-identifier">plugins</span>.<span class="ruby-identifier">sort_by</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">name</span> }

View File

@@ -140,6 +140,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -77,6 +77,10 @@
<li><a href="#method-i-login_url">#login_url</a></li> <li><a href="#method-i-login_url">#login_url</a></li>
<li><a href="#method-i-registration_enabled-3F">#registration_enabled?</a></li>
<li><a href="#method-i-registration_url">#registration_url</a></li>
<li><a href="#method-i-theme">#theme</a></li> <li><a href="#method-i-theme">#theme</a></li>
<li><a href="#method-i-url">#url</a></li> <li><a href="#method-i-url">#url</a></li>
@@ -114,6 +118,10 @@
<li><a class="include" href="WpLoginProtection.html">WpLoginProtection</a></li>
<li><a class="include" href="Malwares.html">Malwares</a></li> <li><a class="include" href="Malwares.html">Malwares</a></li>
@@ -214,6 +222,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>
@@ -327,7 +337,7 @@
<div class="method-source-code" id="new-source"> <div class="method-source-code" id="new-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 35</span> <span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 36</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">target_url</span>, <span class="ruby-identifier">options</span> = {}) <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">target_url</span>, <span class="ruby-identifier">options</span> = {})
<span class="ruby-ivar">@uri</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">add_trailing_slash</span>(<span class="ruby-identifier">add_http_protocol</span>(<span class="ruby-identifier">target_url</span>))) <span class="ruby-ivar">@uri</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">add_trailing_slash</span>(<span class="ruby-identifier">add_http_protocol</span>(<span class="ruby-identifier">target_url</span>)))
<span class="ruby-ivar">@verbose</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:verbose</span>] <span class="ruby-ivar">@verbose</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:verbose</span>]
@@ -365,7 +375,7 @@
<div class="method-source-code" id="valid_response_codes-source"> <div class="method-source-code" id="valid_response_codes-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 75</span> <span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 76</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">valid_response_codes</span> <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">valid_response_codes</span>
[<span class="ruby-value">200</span>, <span class="ruby-value">403</span>, <span class="ruby-value">301</span>, <span class="ruby-value">302</span>, <span class="ruby-value">500</span>] [<span class="ruby-value">200</span>, <span class="ruby-value">403</span>, <span class="ruby-value">301</span>, <span class="ruby-value">302</span>, <span class="ruby-value">500</span>]
<span class="ruby-keyword">end</span></pre> <span class="ruby-keyword">end</span></pre>
@@ -404,7 +414,7 @@
<div class="method-source-code" id="debug_log_url-source"> <div class="method-source-code" id="debug_log_url-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 115</span> <span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 116</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">debug_log_url</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">debug_log_url</span>
<span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-node">&quot;#{wp_content_dir()}/debug.log&quot;</span>).<span class="ruby-identifier">to_s</span> <span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-node">&quot;#{wp_content_dir()}/debug.log&quot;</span>).<span class="ruby-identifier">to_s</span>
<span class="ruby-keyword">end</span></pre> <span class="ruby-keyword">end</span></pre>
@@ -437,7 +447,7 @@
<div class="method-source-code" id="error_404_hash-source"> <div class="method-source-code" id="error_404_hash-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 62</span> <span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 63</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">error_404_hash</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">error_404_hash</span>
<span class="ruby-keyword">unless</span> <span class="ruby-ivar">@error_404_hash</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@error_404_hash</span>
<span class="ruby-identifier">non_existant_page</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">rand</span>(<span class="ruby-value">9999999999</span>).<span class="ruby-identifier">to_s</span>) <span class="ruby-operator">+</span> <span class="ruby-string">&quot;.html&quot;</span> <span class="ruby-identifier">non_existant_page</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">rand</span>(<span class="ruby-value">9999999999</span>).<span class="ruby-identifier">to_s</span>) <span class="ruby-operator">+</span> <span class="ruby-string">&quot;.html&quot;</span>
@@ -478,7 +488,7 @@
<div class="method-source-code" id="has_debug_log-3F-source"> <div class="method-source-code" id="has_debug_log-3F-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 109</span> <span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 110</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">has_debug_log?</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">has_debug_log?</span>
<span class="ruby-comment"># We only get the first 700 bytes of the file to avoid loading huge file (like 2Go)</span> <span class="ruby-comment"># We only get the first 700 bytes of the file to avoid loading huge file (like 2Go)</span>
<span class="ruby-identifier">response_body</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">debug_log_url</span>(), <span class="ruby-value">:headers</span> =<span class="ruby-operator">&gt;</span> { <span class="ruby-string">&quot;range&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;bytes=0-700&quot;</span>}).<span class="ruby-identifier">body</span> <span class="ruby-identifier">response_body</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">debug_log_url</span>(), <span class="ruby-value">:headers</span> =<span class="ruby-operator">&gt;</span> { <span class="ruby-string">&quot;range&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;bytes=0-700&quot;</span>}).<span class="ruby-identifier">body</span>
@@ -513,7 +523,7 @@
<div class="method-source-code" id="login_url-source"> <div class="method-source-code" id="login_url-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 49</span> <span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 50</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">login_url</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">login_url</span>
<span class="ruby-identifier">url</span> = <span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-string">&quot;wp-login.php&quot;</span>).<span class="ruby-identifier">to_s</span> <span class="ruby-identifier">url</span> = <span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-string">&quot;wp-login.php&quot;</span>).<span class="ruby-identifier">to_s</span>
@@ -535,6 +545,72 @@
</div><!-- login_url-method --> </div><!-- login_url-method -->
<div id="registration_enabled-3F-method" class="method-detail ">
<a name="method-i-registration_enabled-3F"></a>
<div class="method-heading">
<span class="method-name">registration_enabled?</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>Should check wp-login.php if registration is enabled or not</p>
<div class="method-source-code" id="registration_enabled-3F-source">
<pre>
<span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 121</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">registration_enabled?</span>
<span class="ruby-comment"># TODO</span>
<span class="ruby-keyword">end</span></pre>
</div><!-- registration_enabled-3F-source -->
</div>
</div><!-- registration_enabled-3F-method -->
<div id="registration_url-method" class="method-detail ">
<a name="method-i-registration_url"></a>
<div class="method-heading">
<span class="method-name">registration_url</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="registration_url-source">
<pre>
<span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 125</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">registration_url</span>
<span class="ruby-comment"># TODO</span>
<span class="ruby-keyword">end</span></pre>
</div><!-- registration_url-source -->
</div>
</div><!-- registration_url-method -->
<div id="theme-method" class="method-detail "> <div id="theme-method" class="method-detail ">
<a name="method-i-theme"></a> <a name="method-i-theme"></a>
@@ -554,7 +630,7 @@
<div class="method-source-code" id="theme-source"> <div class="method-source-code" id="theme-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 80</span> <span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 81</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">theme</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">theme</span>
<span class="ruby-constant">WpTheme</span>.<span class="ruby-identifier">find</span>(<span class="ruby-ivar">@uri</span>) <span class="ruby-constant">WpTheme</span>.<span class="ruby-identifier">find</span>(<span class="ruby-ivar">@uri</span>)
<span class="ruby-keyword">end</span></pre> <span class="ruby-keyword">end</span></pre>
@@ -587,7 +663,7 @@
<div class="method-source-code" id="url-source"> <div class="method-source-code" id="url-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 45</span> <span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 46</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">url</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">url</span>
<span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">to_s</span>
<span class="ruby-keyword">end</span></pre> <span class="ruby-keyword">end</span></pre>
@@ -620,7 +696,7 @@
<div class="method-source-code" id="version-source"> <div class="method-source-code" id="version-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 85</span> <span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 86</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">version</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">version</span>
<span class="ruby-constant">WpVersion</span>.<span class="ruby-identifier">find</span>(<span class="ruby-ivar">@uri</span>, <span class="ruby-identifier">wp_content_dir</span>) <span class="ruby-constant">WpVersion</span>.<span class="ruby-identifier">find</span>(<span class="ruby-ivar">@uri</span>, <span class="ruby-identifier">wp_content_dir</span>)
<span class="ruby-keyword">end</span></pre> <span class="ruby-keyword">end</span></pre>
@@ -653,7 +729,7 @@
<div class="method-source-code" id="wp_content_dir-source"> <div class="method-source-code" id="wp_content_dir-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 89</span> <span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 90</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">wp_content_dir</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">wp_content_dir</span>
<span class="ruby-keyword">unless</span> <span class="ruby-ivar">@wp_content_dir</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@wp_content_dir</span>
<span class="ruby-identifier">index_body</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">to_s</span>).<span class="ruby-identifier">body</span> <span class="ruby-identifier">index_body</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">to_s</span>).<span class="ruby-identifier">body</span>
@@ -695,7 +771,7 @@
<div class="method-source-code" id="wp_plugins_dir-source"> <div class="method-source-code" id="wp_plugins_dir-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 102</span> <span class="ruby-comment"># File lib/wpscan/wp_target.rb, line 103</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">wp_plugins_dir</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">wp_plugins_dir</span>
<span class="ruby-keyword">unless</span> <span class="ruby-ivar">@wp_plugins_dir</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@wp_plugins_dir</span>
<span class="ruby-ivar">@wp_plugins_dir</span> = <span class="ruby-identifier">wp_content_dir</span>() <span class="ruby-operator">+</span> <span class="ruby-string">&quot;/plugins&quot;</span> <span class="ruby-ivar">@wp_plugins_dir</span> = <span class="ruby-identifier">wp_content_dir</span>() <span class="ruby-operator">+</span> <span class="ruby-string">&quot;/plugins&quot;</span>

View File

@@ -154,6 +154,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>
@@ -323,7 +325,7 @@
<span class="ruby-comment"># File lib/wpscan/wp_theme.rb, line 25</span> <span class="ruby-comment"># File lib/wpscan/wp_theme.rb, line 25</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {}) <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {})
<span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xml</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xml</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">DATA_DIR</span> <span class="ruby-operator">+</span> <span class="ruby-string">'/wp_theme_vulns.xml'</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xml</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xml</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">DATA_DIR</span> <span class="ruby-operator">+</span> <span class="ruby-string">'/wp_theme_vulns.xml'</span>
<span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath</span>] = <span class="ruby-node">&quot;//theme[@name='#{@name}']/vulnerability&quot;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath</span>] = <span class="ruby-string">&quot;//theme[@name='$name$']/vulnerability&quot;</span>
<span class="ruby-ivar">@version</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:version</span>] <span class="ruby-ivar">@version</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:version</span>]
<span class="ruby-ivar">@style_url</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:style_url</span>] <span class="ruby-ivar">@style_url</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:style_url</span>]
<span class="ruby-keyword">super</span>(<span class="ruby-identifier">options</span>) <span class="ruby-keyword">super</span>(<span class="ruby-identifier">options</span>)
@@ -365,7 +367,7 @@
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/wp_theme.rb, line 58</span> <span class="ruby-comment"># File lib/wpscan/wp_theme.rb, line 58</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">find_from_css_link</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_from_css_link</span>(<span class="ruby-identifier">target_uri</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">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:max_redirects</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</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">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:max_redirects</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span> })
<span class="ruby-keyword">if</span> <span class="ruby-identifier">matches</span> = <span class="ruby-regexp">%{https?://[^&quot;']+/themes/([^&quot;']+)/style.css}</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">matches</span> = <span class="ruby-regexp">%{https?://[^&quot;']+/themes/([^&quot;']+)/style.css}</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>)
<span class="ruby-identifier">style_url</span> = <span class="ruby-identifier">matches</span>[<span class="ruby-value">0</span>] <span class="ruby-identifier">style_url</span> = <span class="ruby-identifier">matches</span>[<span class="ruby-value">0</span>]

View File

@@ -142,6 +142,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>
@@ -256,7 +258,7 @@
<span class="ruby-keyword">if</span> <span class="ruby-ivar">@wp_timthumbs</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@wp_timthumbs</span>.<span class="ruby-identifier">nil?</span>
<span class="ruby-identifier">options</span>[<span class="ruby-value">:type</span>] = <span class="ruby-string">&quot;timthumbs&quot;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:type</span>] = <span class="ruby-string">&quot;timthumbs&quot;</span>
<span class="ruby-identifier">options</span>[<span class="ruby-value">:only_vulnerable_ones</span>] = <span class="ruby-keyword">false</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:only_vulnerable_ones</span>] = <span class="ruby-keyword">false</span>
<span class="ruby-identifier">options</span>[<span class="ruby-value">:file</span>] = <span class="ruby-constant">DATA_DIR</span> <span class="ruby-operator">+</span> <span class="ruby-string">&quot;/timthumbs.txt&quot;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:file</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:file</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">DATA_DIR</span> <span class="ruby-operator">+</span> <span class="ruby-string">&quot;/timthumbs.txt&quot;</span>
<span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_file</span>] = <span class="ruby-string">&quot;xxx&quot;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_file</span>] = <span class="ruby-string">&quot;xxx&quot;</span>
<span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath</span>] = <span class="ruby-string">&quot;xxx&quot;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath</span>] = <span class="ruby-string">&quot;xxx&quot;</span>
<span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath_2</span>] = <span class="ruby-string">&quot;xxx&quot;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:vulns_xpath_2</span>] = <span class="ruby-string">&quot;xxx&quot;</span>
@@ -311,10 +313,10 @@
<span class="ruby-identifier">targets</span> = [] <span class="ruby-identifier">targets</span> = []
<span class="ruby-identifier">theme_name</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-identifier">theme_name</span>) <span class="ruby-identifier">theme_name</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-identifier">theme_name</span>)
[ <span class="ruby-node">%{
<span class="ruby-string">'timthumb.php'</span>, <span class="ruby-string">'lib/timthumb.php'</span>, <span class="ruby-string">'inc/timthumb.php'</span>, <span class="ruby-string">'includes/timthumb.php'</span>, timthumb.php lib/timthumb.php inc/timthumb.php includes/timthumb.php
<span class="ruby-string">'scripts/timthumb.php'</span>, <span class="ruby-string">'tools/timthumb.php'</span>, <span class="ruby-string">'functions/timthumb.php'</span> scripts/timthumb.php tools/timthumb.php functions/timthumb.php
].<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span> }</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">targets</span> <span class="ruby-operator">&lt;&lt;</span> { <span class="ruby-identifier">targets</span> <span class="ruby-operator">&lt;&lt;</span> {
<span class="ruby-value">:url</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>], <span class="ruby-value">:url</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>],
<span class="ruby-value">:path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;themes/#{theme_name}/#{file}&quot;</span>, <span class="ruby-value">:path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;themes/#{theme_name}/#{file}&quot;</span>,

View File

@@ -59,6 +59,12 @@
<li><a href="#method-i-author_url">#author_url</a></li> <li><a href="#method-i-author_url">#author_url</a></li>
<li><a href="#method-i-extract_real_name_from_body">#extract_real_name_from_body</a></li>
<li><a href="#method-i-get_real_name_from_response">#get_real_name_from_response</a></li>
<li><a href="#method-i-get_real_name_from_url">#get_real_name_from_url</a></li>
<li><a href="#method-i-usernames">#usernames</a></li> <li><a href="#method-i-usernames">#usernames</a></li>
</ul> </ul>
@@ -140,6 +146,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>
@@ -216,7 +224,7 @@
<div class="method-source-code" id="author_url-source"> <div class="method-source-code" id="author_url-source">
<pre> <pre>
<span class="ruby-comment"># File lib/wpscan/modules/wp_usernames.rb, line 49</span> <span class="ruby-comment"># File lib/wpscan/modules/wp_usernames.rb, line 82</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">author_url</span>(<span class="ruby-identifier">author_id</span>) <span class="ruby-keyword">def</span> <span class="ruby-identifier">author_url</span>(<span class="ruby-identifier">author_id</span>)
<span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-node">&quot;?author=#{author_id}&quot;</span>).<span class="ruby-identifier">to_s</span> <span class="ruby-ivar">@uri</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-node">&quot;?author=#{author_id}&quot;</span>).<span class="ruby-identifier">to_s</span>
<span class="ruby-keyword">end</span></pre> <span class="ruby-keyword">end</span></pre>
@@ -230,6 +238,114 @@
</div><!-- author_url-method --> </div><!-- author_url-method -->
<div id="extract_real_name_from_body-method" class="method-detail ">
<a name="method-i-extract_real_name_from_body"></a>
<div class="method-heading">
<span class="method-name">extract_real_name_from_body</span><span
class="method-args">(body)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="extract_real_name_from_body-source">
<pre>
<span class="ruby-comment"># File lib/wpscan/modules/wp_usernames.rb, line 78</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">extract_real_name_from_body</span>(<span class="ruby-identifier">body</span>)
<span class="ruby-identifier">body</span>[<span class="ruby-regexp">%{&lt;title&gt;([^&lt;]*)&lt;/title&gt;}</span>, <span class="ruby-value">1</span>]
<span class="ruby-keyword">end</span></pre>
</div><!-- extract_real_name_from_body-source -->
</div>
</div><!-- extract_real_name_from_body-method -->
<div id="get_real_name_from_response-method" class="method-detail ">
<a name="method-i-get_real_name_from_response"></a>
<div class="method-heading">
<span class="method-name">get_real_name_from_response</span><span
class="method-args">(resp)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="get_real_name_from_response-source">
<pre>
<span class="ruby-comment"># File lib/wpscan/modules/wp_usernames.rb, line 70</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">get_real_name_from_response</span>(<span class="ruby-identifier">resp</span>)
<span class="ruby-identifier">real_name</span> = <span class="ruby-keyword">nil</span>
<span class="ruby-keyword">if</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-value">200</span>
<span class="ruby-identifier">real_name</span> = <span class="ruby-identifier">extract_real_name_from_body</span>(<span class="ruby-identifier">resp</span>.<span class="ruby-identifier">body</span>)
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">real_name</span>
<span class="ruby-keyword">end</span></pre>
</div><!-- get_real_name_from_response-source -->
</div>
</div><!-- get_real_name_from_response-method -->
<div id="get_real_name_from_url-method" class="method-detail ">
<a name="method-i-get_real_name_from_url"></a>
<div class="method-heading">
<span class="method-name">get_real_name_from_url</span><span
class="method-args">(url)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="get_real_name_from_url-source">
<pre>
<span class="ruby-comment"># File lib/wpscan/modules/wp_usernames.rb, line 61</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">get_real_name_from_url</span>(<span class="ruby-identifier">url</span>)
<span class="ruby-identifier">resp</span> = <span class="ruby-constant">Browser</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">url</span>, { <span class="ruby-value">:follow_location</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:max_redirects</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span> })
<span class="ruby-identifier">real_name</span> = <span class="ruby-keyword">nil</span>
<span class="ruby-keyword">if</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-value">200</span>
<span class="ruby-identifier">real_name</span> = <span class="ruby-identifier">extract_real_name_from_body</span>(<span class="ruby-identifier">resp</span>.<span class="ruby-identifier">body</span>)
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">real_name</span>
<span class="ruby-keyword">end</span></pre>
</div><!-- get_real_name_from_url-source -->
</div>
</div><!-- get_real_name_from_url-method -->
<div id="usernames-method" class="method-detail "> <div id="usernames-method" class="method-detail ">
<a name="method-i-usernames"></a> <a name="method-i-usernames"></a>
@@ -263,12 +379,24 @@ href="http://seclists.org/fulldisclosure/2011/May/493">seclists.org/fulldisclosu
<span class="ruby-identifier">usernames</span> = [] <span class="ruby-identifier">usernames</span> = []
<span class="ruby-identifier">range</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">author_id</span><span class="ruby-operator">|</span> <span class="ruby-identifier">range</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">author_id</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">response</span> = <span class="ruby-identifier">browser</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">author_url</span>(<span class="ruby-identifier">author_id</span>)) <span class="ruby-identifier">url</span> = <span class="ruby-identifier">author_url</span>(<span class="ruby-identifier">author_id</span>)
<span class="ruby-identifier">response</span> = <span class="ruby-identifier">browser</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">url</span>)
<span class="ruby-identifier">username</span> = <span class="ruby-keyword">nil</span>
<span class="ruby-identifier">real_name</span> = <span class="ruby-keyword">nil</span>
<span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-value">301</span> <span class="ruby-comment"># username in location?</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-value">301</span> <span class="ruby-comment"># username in location?</span>
<span class="ruby-identifier">usernames</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">headers_hash</span>[<span class="ruby-string">'location'</span>][<span class="ruby-regexp">%{/author/([^/]+)/}</span>, <span class="ruby-value">1</span>] <span class="ruby-identifier">username</span> = <span class="ruby-identifier">response</span>.<span class="ruby-identifier">headers_hash</span>[<span class="ruby-string">'location'</span>][<span class="ruby-regexp">%{/author/([^/]+)/}</span>, <span class="ruby-value">1</span>]
<span class="ruby-comment"># Get the real name from the redirect site</span>
<span class="ruby-identifier">real_name</span> = <span class="ruby-identifier">get_real_name_from_url</span>(<span class="ruby-identifier">url</span>)
<span class="ruby-keyword">elsif</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-value">200</span> <span class="ruby-comment"># username in body?</span> <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-value">200</span> <span class="ruby-comment"># username in body?</span>
<span class="ruby-identifier">usernames</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>[<span class="ruby-regexp">%{posts by (.*) feed}</span>, <span class="ruby-value">1</span>] <span class="ruby-identifier">username</span> = <span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>[<span class="ruby-regexp">%{posts by (.*) feed}</span>, <span class="ruby-value">1</span>]
<span class="ruby-identifier">real_name</span> = <span class="ruby-identifier">get_real_name_from_response</span>(<span class="ruby-identifier">response</span>)
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">unless</span> <span class="ruby-identifier">username</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">real_name</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">nil</span>
<span class="ruby-identifier">usernames</span> <span class="ruby-operator">&lt;&lt;</span> { <span class="ruby-value">:id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">author_id</span>,
<span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">username</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">username</span> <span class="ruby-operator">:</span> <span class="ruby-string">&quot;empty&quot;</span>,
<span class="ruby-value">:real_name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">real_name</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">real_name</span> <span class="ruby-operator">:</span> <span class="ruby-string">&quot;empty&quot;</span>}
<span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span>

View File

@@ -160,6 +160,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>
@@ -444,7 +446,7 @@ upgrade.</p>
<span class="ruby-comment"># File lib/wpscan/wp_version.rb, line 61</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-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">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">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:max_redirects</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</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">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:max_redirects</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span> })
<span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>[<span class="ruby-regexp">%{name=&quot;generator&quot; content=&quot;wordpress ([^&quot;]+)&quot;}</span>, <span class="ruby-value">1</span>] <span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>[<span class="ruby-regexp">%{name=&quot;generator&quot; content=&quot;wordpress ([^&quot;]+)&quot;}</span>, <span class="ruby-value">1</span>]
<span class="ruby-keyword">end</span></pre> <span class="ruby-keyword">end</span></pre>
@@ -514,7 +516,7 @@ upgrade.</p>
<span class="ruby-comment"># File lib/wpscan/wp_version.rb, line 68</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-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">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">&quot;feed/&quot;</span>).<span class="ruby-identifier">to_s</span>, <span class="ruby-value">:follow_location</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:max_redirects</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</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">&quot;feed/&quot;</span>).<span class="ruby-identifier">to_s</span>, { <span class="ruby-value">:follow_location</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:max_redirects</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span> })
<span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>[<span class="ruby-regexp">%{&lt;generator&gt;http://wordpress.org/\?v=([^&lt;]+)&lt;/generator&gt;}</span>, <span class="ruby-value">1</span>] <span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>[<span class="ruby-regexp">%{&lt;generator&gt;http://wordpress.org/\?v=([^&lt;]+)&lt;/generator&gt;}</span>, <span class="ruby-value">1</span>]
<span class="ruby-keyword">end</span></pre> <span class="ruby-keyword">end</span></pre>

View File

@@ -146,6 +146,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>

View File

@@ -180,6 +180,8 @@
<li><a href="./WpItem.html">WpItem</a></li> <li><a href="./WpItem.html">WpItem</a></li>
<li><a href="./WpLoginProtection.html">WpLoginProtection</a></li>
<li><a href="./WpOptions.html">WpOptions</a></li> <li><a href="./WpOptions.html">WpOptions</a></li>
<li><a href="./WpPlugin.html">WpPlugin</a></li> <li><a href="./WpPlugin.html">WpPlugin</a></li>
@@ -795,7 +797,7 @@ value</p>
) )
<span class="ruby-keyword">elsif</span> <span class="ruby-identifier">cli_option</span> <span class="ruby-operator">===</span> <span class="ruby-string">&quot;--enumerate&quot;</span> <span class="ruby-comment"># Special cases</span> <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">cli_option</span> <span class="ruby-operator">===</span> <span class="ruby-string">&quot;--enumerate&quot;</span> <span class="ruby-comment"># Special cases</span>
<span class="ruby-comment"># Default value if no argument is given</span> <span class="ruby-comment"># Default value if no argument is given</span>
<span class="ruby-identifier">cli_value</span> = <span class="ruby-string">&quot;Ttup&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">cli_value</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-identifier">cli_value</span> = <span class="ruby-string">&quot;T!tup!&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">cli_value</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
<span class="ruby-identifier">enumerate_options_from_string</span>(<span class="ruby-identifier">cli_value</span>) <span class="ruby-identifier">enumerate_options_from_string</span>(<span class="ruby-identifier">cli_value</span>)
<span class="ruby-keyword">else</span> <span class="ruby-keyword">else</span>

View File

@@ -1,40 +1,41 @@
Mon, 17 Sep 2012 23:33:41 +0200 Wed, 19 Sep 2012 22:43:09 +0200
./CREDITS Mon, 17 Sep 2012 20:18:24 +0200 ./CREDITS Mon, 17 Sep 2012 20:18:24 +0200
./lib/browser.rb Sun, 16 Sep 2012 15:18:58 +0200 ./lib/browser.rb Sun, 16 Sep 2012 15:18:58 +0200
./lib/cache_file_store.rb Sat, 15 Sep 2012 08:04:03 +0200 ./lib/cache_file_store.rb Sat, 15 Sep 2012 08:04:03 +0200
./lib/common_helper.rb Sat, 15 Sep 2012 08:04:08 +0200 ./lib/common_helper.rb Tue, 18 Sep 2012 20:09:48 +0200
./lib/environment.rb Sat, 15 Sep 2012 08:04:16 +0200 ./lib/environment.rb Sat, 15 Sep 2012 08:04:16 +0200
./lib/updater/git_updater.rb Sat, 15 Sep 2012 08:00:23 +0200 ./lib/updater/git_updater.rb Sat, 15 Sep 2012 08:00:23 +0200
./lib/updater/svn_updater.rb Sat, 15 Sep 2012 08:00:34 +0200 ./lib/updater/svn_updater.rb Sat, 15 Sep 2012 08:00:34 +0200
./lib/updater/updater.rb Sat, 15 Sep 2012 08:00:40 +0200 ./lib/updater/updater.rb Sat, 15 Sep 2012 08:00:40 +0200
./lib/updater/updater_factory.rb Sat, 15 Sep 2012 08:00:46 +0200 ./lib/updater/updater_factory.rb Sat, 15 Sep 2012 08:00:46 +0200
./lib/wpscan/exploit.rb Sat, 15 Sep 2012 08:02:16 +0200 ./lib/wpscan/exploit.rb Sat, 15 Sep 2012 08:02:16 +0200
./lib/wpscan/modules/brute_force.rb Sat, 15 Sep 2012 08:00:54 +0200 ./lib/wpscan/modules/brute_force.rb Wed, 19 Sep 2012 21:41:41 +0200
./lib/wpscan/modules/malwares.rb Sat, 15 Sep 2012 08:01:01 +0200 ./lib/wpscan/modules/malwares.rb Sat, 15 Sep 2012 08:01:01 +0200
./lib/wpscan/modules/web_site.rb Sat, 15 Sep 2012 08:01:06 +0200 ./lib/wpscan/modules/web_site.rb Wed, 19 Sep 2012 21:33:46 +0200
./lib/wpscan/modules/wp_config_backup.rb Sat, 15 Sep 2012 08:01:11 +0200 ./lib/wpscan/modules/wp_config_backup.rb Sat, 15 Sep 2012 08:01:11 +0200
./lib/wpscan/modules/wp_full_path_disclosure.rb Sat, 15 Sep 2012 08:01:17 +0200 ./lib/wpscan/modules/wp_full_path_disclosure.rb Sat, 15 Sep 2012 08:01:17 +0200
./lib/wpscan/modules/wp_plugins.rb Sun, 16 Sep 2012 12:02:47 +0200 ./lib/wpscan/modules/wp_login_protection.rb Tue, 18 Sep 2012 17:51:20 +0200
./lib/wpscan/modules/wp_plugins.rb Tue, 18 Sep 2012 22:27:43 +0200
./lib/wpscan/modules/wp_readme.rb Sat, 15 Sep 2012 08:01:52 +0200 ./lib/wpscan/modules/wp_readme.rb Sat, 15 Sep 2012 08:01:52 +0200
./lib/wpscan/modules/wp_themes.rb Sun, 16 Sep 2012 12:03:41 +0200 ./lib/wpscan/modules/wp_themes.rb Tue, 18 Sep 2012 22:28:05 +0200
./lib/wpscan/modules/wp_timthumbs.rb Sun, 16 Sep 2012 23:27:21 +0200 ./lib/wpscan/modules/wp_timthumbs.rb Wed, 19 Sep 2012 15:03:22 +0200
./lib/wpscan/modules/wp_usernames.rb Sat, 15 Sep 2012 08:02:04 +0200 ./lib/wpscan/modules/wp_usernames.rb Wed, 19 Sep 2012 22:09:14 +0200
./lib/wpscan/msfrpc_client.rb Sat, 15 Sep 2012 08:02:28 +0200 ./lib/wpscan/msfrpc_client.rb Sat, 15 Sep 2012 08:02:28 +0200
./lib/wpscan/vulnerable.rb Sat, 15 Sep 2012 08:02:37 +0200 ./lib/wpscan/vulnerable.rb Wed, 19 Sep 2012 22:21:47 +0200
./lib/wpscan/wp_detector.rb Mon, 17 Sep 2012 17:40:36 +0200 ./lib/wpscan/wp_detector.rb Wed, 19 Sep 2012 22:29:50 +0200
./lib/wpscan/wp_enumerator.rb Mon, 17 Sep 2012 17:54:28 +0200 ./lib/wpscan/wp_enumerator.rb Wed, 19 Sep 2012 22:30:45 +0200
./lib/wpscan/wp_item.rb Mon, 17 Sep 2012 22:04:16 +0200 ./lib/wpscan/wp_item.rb Wed, 19 Sep 2012 22:21:19 +0200
./lib/wpscan/wp_options.rb Sun, 16 Sep 2012 23:02:21 +0200 ./lib/wpscan/wp_options.rb Tue, 18 Sep 2012 22:28:27 +0200
./lib/wpscan/wp_plugin.rb Mon, 17 Sep 2012 22:03:47 +0200 ./lib/wpscan/wp_plugin.rb Wed, 19 Sep 2012 22:20:29 +0200
./lib/wpscan/wp_target.rb Mon, 17 Sep 2012 22:51:21 +0200 ./lib/wpscan/wp_target.rb Wed, 19 Sep 2012 17:40:16 +0200
./lib/wpscan/wp_theme.rb Mon, 17 Sep 2012 22:23:12 +0200 ./lib/wpscan/wp_theme.rb Wed, 19 Sep 2012 22:20:40 +0200
./lib/wpscan/wp_version.rb Sun, 16 Sep 2012 23:48:18 +0200 ./lib/wpscan/wp_version.rb Wed, 19 Sep 2012 21:33:07 +0200
./lib/wpscan/wp_vulnerability.rb Sat, 15 Sep 2012 08:03:09 +0200 ./lib/wpscan/wp_vulnerability.rb Sat, 15 Sep 2012 08:03:09 +0200
./lib/wpscan/wpscan_helper.rb Sat, 15 Sep 2012 21:19:30 +0200 ./lib/wpscan/wpscan_helper.rb Sat, 15 Sep 2012 21:19:30 +0200
./lib/wpscan/wpscan_options.rb Mon, 17 Sep 2012 22:44:37 +0200 ./lib/wpscan/wpscan_options.rb Tue, 18 Sep 2012 17:29:40 +0200
./lib/wpstools/generate_list.rb Sat, 15 Sep 2012 08:03:43 +0200 ./lib/wpstools/generate_list.rb Sat, 15 Sep 2012 08:03:43 +0200
./lib/wpstools/parse_svn.rb Sat, 15 Sep 2012 23:36:25 +0200 ./lib/wpstools/parse_svn.rb Sat, 15 Sep 2012 23:36:25 +0200
./lib/wpstools/wpstools_helper.rb Sat, 15 Sep 2012 08:03:49 +0200 ./lib/wpstools/wpstools_helper.rb Sat, 15 Sep 2012 08:03:49 +0200
./README Thu, 13 Sep 2012 22:54:08 +0200 ./README Thu, 13 Sep 2012 22:54:08 +0200
./wpscan.rb Mon, 17 Sep 2012 17:42:32 +0200 ./wpscan.rb Wed, 19 Sep 2012 22:06:17 +0200
./wpstools.rb Sat, 15 Sep 2012 08:06:35 +0200 ./wpstools.rb Sat, 15 Sep 2012 08:06:35 +0200

View File

@@ -82,6 +82,8 @@
<li class="class"><a href="WpItem.html">WpItem</a></li> <li class="class"><a href="WpItem.html">WpItem</a></li>
<li class="module"><a href="WpLoginProtection.html">WpLoginProtection</a></li>
<li class="class"><a href="WpOptions.html">WpOptions</a></li> <li class="class"><a href="WpOptions.html">WpOptions</a></li>
<li class="class"><a href="WpPlugin.html">WpPlugin</a></li> <li class="class"><a href="WpPlugin.html">WpPlugin</a></li>
@@ -141,7 +143,7 @@
<li><a href="WpTheme.html#method-c-find_from_wooframework">::find_from_wooframework &mdash; WpTheme</a></li> <li><a href="WpTheme.html#method-c-find_from_wooframework">::find_from_wooframework &mdash; WpTheme</a></li>
<li><a href="WpOptions.html#method-c-get_empty_options">::get_empty_options &mdash; WpOptions</a></li> <li><a href="WpEnumerator.html#method-c-generate_items">::generate_items &mdash; WpEnumerator</a></li>
<li><a href="WpscanOptions.html#method-c-get_opt_long">::get_opt_long &mdash; WpscanOptions</a></li> <li><a href="WpscanOptions.html#method-c-get_opt_long">::get_opt_long &mdash; WpscanOptions</a></li>
@@ -161,26 +163,26 @@
<li><a href="CacheFileStore.html#method-c-new">::new &mdash; CacheFileStore</a></li> <li><a href="CacheFileStore.html#method-c-new">::new &mdash; CacheFileStore</a></li>
<li><a href="WpscanOptions.html#method-c-new">::new &mdash; WpscanOptions</a></li> <li><a href="WpItem.html#method-c-new">::new &mdash; WpItem</a></li>
<li><a href="WpVersion.html#method-c-new">::new &mdash; WpVersion</a></li> <li><a href="WpVersion.html#method-c-new">::new &mdash; WpVersion</a></li>
<li><a href="WpVulnerability.html#method-c-new">::new &mdash; WpVulnerability</a></li> <li><a href="WpVulnerability.html#method-c-new">::new &mdash; WpVulnerability</a></li>
<li><a href="RpcClient.html#method-c-new">::new &mdash; RpcClient</a></li> <li><a href="WpscanOptions.html#method-c-new">::new &mdash; WpscanOptions</a></li>
<li><a href="WpItem.html#method-c-new">::new &mdash; WpItem</a></li> <li><a href="RpcClient.html#method-c-new">::new &mdash; RpcClient</a></li>
<li><a href="Updater.html#method-c-new">::new &mdash; Updater</a></li> <li><a href="Updater.html#method-c-new">::new &mdash; Updater</a></li>
<li><a href="Svn_Parser.html#method-c-new">::new &mdash; Svn_Parser</a></li> <li><a href="Svn_Parser.html#method-c-new">::new &mdash; Svn_Parser</a></li>
<li><a href="WpPlugin.html#method-c-new">::new &mdash; WpPlugin</a></li>
<li><a href="WpTheme.html#method-c-new">::new &mdash; WpTheme</a></li> <li><a href="WpTheme.html#method-c-new">::new &mdash; WpTheme</a></li>
<li><a href="WpTarget.html#method-c-new">::new &mdash; WpTarget</a></li> <li><a href="WpTarget.html#method-c-new">::new &mdash; WpTarget</a></li>
<li><a href="WpPlugin.html#method-c-new">::new &mdash; WpPlugin</a></li>
<li><a href="Generate_List.html#method-c-new">::new &mdash; Generate_List</a></li> <li><a href="Generate_List.html#method-c-new">::new &mdash; Generate_List</a></li>
<li><a href="Exploit.html#method-c-new">::new &mdash; Exploit</a></li> <li><a href="Exploit.html#method-c-new">::new &mdash; Exploit</a></li>
@@ -195,8 +197,12 @@
<li><a href="WpVersion.html#method-c-version_pattern">::version_pattern &mdash; WpVersion</a></li> <li><a href="WpVersion.html#method-c-version_pattern">::version_pattern &mdash; WpVersion</a></li>
<li><a href="WpItem.html#method-i-3C-3D-3E">#<=> &mdash; WpItem</a></li>
<li><a href="WpItem.html#method-i-3D-3D">#== &mdash; WpItem</a></li> <li><a href="WpItem.html#method-i-3D-3D">#== &mdash; WpItem</a></li>
<li><a href="WpItem.html#method-i-3D-3D-3D">#=== &mdash; WpItem</a></li>
<li><a href="WpTheme.html#method-i-3D-3D-3D">#=== &mdash; WpTheme</a></li> <li><a href="WpTheme.html#method-i-3D-3D-3D">#=== &mdash; WpTheme</a></li>
<li><a href="Array.html#method-i-_grep_">#_grep_ &mdash; Array</a></li> <li><a href="Array.html#method-i-_grep_">#_grep_ &mdash; Array</a></li>
@@ -211,6 +217,10 @@
<li><a href="Object.html#method-i-banner">#banner &mdash; Object</a></li> <li><a href="Object.html#method-i-banner">#banner &mdash; Object</a></li>
<li><a href="WpLoginProtection.html#method-i-better_wp_security_url">#better_wp_security_url &mdash; WpLoginProtection</a></li>
<li><a href="WpLoginProtection.html#method-i-bluetrait_event_viewer_url">#bluetrait_event_viewer_url &mdash; WpLoginProtection</a></li>
<li><a href="BruteForce.html#method-i-brute_force">#brute_force &mdash; BruteForce</a></li> <li><a href="BruteForce.html#method-i-brute_force">#brute_force &mdash; BruteForce</a></li>
<li><a href="WpItem.html#method-i-changelog_url">#changelog_url &mdash; WpItem</a></li> <li><a href="WpItem.html#method-i-changelog_url">#changelog_url &mdash; WpItem</a></li>
@@ -241,14 +251,16 @@
<li><a href="WpPlugin.html#method-i-error_log_url">#error_log_url &mdash; WpPlugin</a></li> <li><a href="WpPlugin.html#method-i-error_log_url">#error_log_url &mdash; WpPlugin</a></li>
<li><a href="Exploit.html#method-i-exploit">#exploit &mdash; Exploit</a></li>
<li><a href="RpcClient.html#method-i-exploit">#exploit &mdash; RpcClient</a></li> <li><a href="RpcClient.html#method-i-exploit">#exploit &mdash; RpcClient</a></li>
<li><a href="Exploit.html#method-i-exploit">#exploit &mdash; Exploit</a></li>
<li><a href="Exploit.html#method-i-exploit_info">#exploit_info &mdash; Exploit</a></li> <li><a href="Exploit.html#method-i-exploit_info">#exploit_info &mdash; Exploit</a></li>
<li><a href="WpItem.html#method-i-extract_name_from_url">#extract_name_from_url &mdash; WpItem</a></li> <li><a href="WpItem.html#method-i-extract_name_from_url">#extract_name_from_url &mdash; WpItem</a></li>
<li><a href="WpUsernames.html#method-i-extract_real_name_from_body">#extract_real_name_from_body &mdash; WpUsernames</a></li>
<li><a href="Browser.html#method-i-forge_request">#forge_request &mdash; Browser</a></li> <li><a href="Browser.html#method-i-forge_request">#forge_request &mdash; Browser</a></li>
<li><a href="WpFullPathDisclosure.html#method-i-full_path_disclosure_url">#full_path_disclosure_url &mdash; WpFullPathDisclosure</a></li> <li><a href="WpFullPathDisclosure.html#method-i-full_path_disclosure_url">#full_path_disclosure_url &mdash; WpFullPathDisclosure</a></li>
@@ -269,25 +281,45 @@
<li><a href="Generate_List.html#method-i-get_popular_items">#get_popular_items &mdash; Generate_List</a></li> <li><a href="Generate_List.html#method-i-get_popular_items">#get_popular_items &mdash; Generate_List</a></li>
<li><a href="WpUsernames.html#method-i-get_real_name_from_response">#get_real_name_from_response &mdash; WpUsernames</a></li>
<li><a href="WpUsernames.html#method-i-get_real_name_from_url">#get_real_name_from_url &mdash; WpUsernames</a></li>
<li><a href="WpItem.html#method-i-get_url">#get_url &mdash; WpItem</a></li> <li><a href="WpItem.html#method-i-get_url">#get_url &mdash; WpItem</a></li>
<li><a href="WpItem.html#method-i-get_url_without_filename">#get_url_without_filename &mdash; WpItem</a></li> <li><a href="WpItem.html#method-i-get_url_without_filename">#get_url_without_filename &mdash; WpItem</a></li>
<li><a href="Array.html#method-i-grep">#grep &mdash; Array</a></li> <li><a href="Array.html#method-i-grep">#grep &mdash; Array</a></li>
<li><a href="WpLoginProtection.html#method-i-has_better_wp_security_protection-3F">#has_better_wp_security_protection? &mdash; WpLoginProtection</a></li>
<li><a href="WpLoginProtection.html#method-i-has_bluetrait_event_viewer_protection-3F">#has_bluetrait_event_viewer_protection? &mdash; WpLoginProtection</a></li>
<li><a href="WpItem.html#method-i-has_changelog-3F">#has_changelog? &mdash; WpItem</a></li> <li><a href="WpItem.html#method-i-has_changelog-3F">#has_changelog? &mdash; WpItem</a></li>
<li><a href="WpTarget.html#method-i-has_debug_log-3F">#has_debug_log? &mdash; WpTarget</a></li> <li><a href="WpTarget.html#method-i-has_debug_log-3F">#has_debug_log? &mdash; WpTarget</a></li>
<li><a href="WpFullPathDisclosure.html#method-i-has_full_path_disclosure-3F">#has_full_path_disclosure? &mdash; WpFullPathDisclosure</a></li> <li><a href="WpFullPathDisclosure.html#method-i-has_full_path_disclosure-3F">#has_full_path_disclosure? &mdash; WpFullPathDisclosure</a></li>
<li><a href="WpLoginProtection.html#method-i-has_limit_login_attempts_protection-3F">#has_limit_login_attempts_protection? &mdash; WpLoginProtection</a></li>
<li><a href="WpLoginProtection.html#method-i-has_login_lock_protection-3F">#has_login_lock_protection? &mdash; WpLoginProtection</a></li>
<li><a href="WpLoginProtection.html#method-i-has_login_lockdown_protection-3F">#has_login_lockdown_protection? &mdash; WpLoginProtection</a></li>
<li><a href="WpLoginProtection.html#method-i-has_login_protection-3F">#has_login_protection? &mdash; WpLoginProtection</a></li>
<li><a href="WpLoginProtection.html#method-i-has_login_security_solution_protection-3F">#has_login_security_solution_protection? &mdash; WpLoginProtection</a></li>
<li><a href="Malwares.html#method-i-has_malwares-3F">#has_malwares? &mdash; Malwares</a></li> <li><a href="Malwares.html#method-i-has_malwares-3F">#has_malwares? &mdash; Malwares</a></li>
<li><a href="WpscanOptions.html#method-i-has_options-3F">#has_options? &mdash; WpscanOptions</a></li> <li><a href="WpscanOptions.html#method-i-has_options-3F">#has_options? &mdash; WpscanOptions</a></li>
<li><a href="WpItem.html#method-i-has_readme-3F">#has_readme? &mdash; WpItem</a></li>
<li><a href="WpReadme.html#method-i-has_readme-3F">#has_readme? &mdash; WpReadme</a></li> <li><a href="WpReadme.html#method-i-has_readme-3F">#has_readme? &mdash; WpReadme</a></li>
<li><a href="WpItem.html#method-i-has_readme-3F">#has_readme? &mdash; WpItem</a></li> <li><a href="WpLoginProtection.html#method-i-has_simple_login_lockdown_protection-3F">#has_simple_login_lockdown_protection? &mdash; WpLoginProtection</a></li>
<li><a href="WpTimthumbs.html#method-i-has_timthumbs-3F">#has_timthumbs? &mdash; WpTimthumbs</a></li> <li><a href="WpTimthumbs.html#method-i-has_timthumbs-3F">#has_timthumbs? &mdash; WpTimthumbs</a></li>
@@ -295,10 +327,10 @@
<li><a href="SvnUpdater.html#method-i-is_installed-3F">#is_installed? &mdash; SvnUpdater</a></li> <li><a href="SvnUpdater.html#method-i-is_installed-3F">#is_installed? &mdash; SvnUpdater</a></li>
<li><a href="Updater.html#method-i-is_installed-3F">#is_installed? &mdash; Updater</a></li>
<li><a href="GitUpdater.html#method-i-is_installed-3F">#is_installed? &mdash; GitUpdater</a></li> <li><a href="GitUpdater.html#method-i-is_installed-3F">#is_installed? &mdash; GitUpdater</a></li>
<li><a href="Updater.html#method-i-is_installed-3F">#is_installed? &mdash; Updater</a></li>
<li><a href="WebSite.html#method-i-is_online-3F">#is_online? &mdash; WebSite</a></li> <li><a href="WebSite.html#method-i-is_online-3F">#is_online? &mdash; WebSite</a></li>
<li><a href="WebSite.html#method-i-is_wordpress-3F">#is_wordpress? &mdash; WebSite</a></li> <li><a href="WebSite.html#method-i-is_wordpress-3F">#is_wordpress? &mdash; WebSite</a></li>
@@ -307,12 +339,14 @@
<li><a href="RpcClient.html#method-i-jobs">#jobs &mdash; RpcClient</a></li> <li><a href="RpcClient.html#method-i-jobs">#jobs &mdash; RpcClient</a></li>
<li><a href="RpcClient.html#method-i-kill_session">#kill_session &mdash; RpcClient</a></li>
<li><a href="Exploit.html#method-i-kill_session">#kill_session &mdash; Exploit</a></li> <li><a href="Exploit.html#method-i-kill_session">#kill_session &mdash; Exploit</a></li>
<li><a href="RpcClient.html#method-i-kill_session">#kill_session &mdash; RpcClient</a></li>
<li><a href="Exploit.html#method-i-last_session_id">#last_session_id &mdash; Exploit</a></li> <li><a href="Exploit.html#method-i-last_session_id">#last_session_id &mdash; Exploit</a></li>
<li><a href="WpLoginProtection.html#method-i-limit_login_attempts_url">#limit_login_attempts_url &mdash; WpLoginProtection</a></li>
<li><a href="Browser.html#method-i-load_config">#load_config &mdash; Browser</a></li> <li><a href="Browser.html#method-i-load_config">#load_config &mdash; Browser</a></li>
<li><a href="GitUpdater.html#method-i-local_revision_number">#local_revision_number &mdash; GitUpdater</a></li> <li><a href="GitUpdater.html#method-i-local_revision_number">#local_revision_number &mdash; GitUpdater</a></li>
@@ -323,6 +357,10 @@
<li><a href="RpcClient.html#method-i-login">#login &mdash; RpcClient</a></li> <li><a href="RpcClient.html#method-i-login">#login &mdash; RpcClient</a></li>
<li><a href="WpLoginProtection.html#method-i-login_protection_plugin">#login_protection_plugin &mdash; WpLoginProtection</a></li>
<li><a href="WpLoginProtection.html#method-i-login_security_solution_url">#login_security_solution_url &mdash; WpLoginProtection</a></li>
<li><a href="WpTarget.html#method-i-login_url">#login_url &mdash; WpTarget</a></li> <li><a href="WpTarget.html#method-i-login_url">#login_url &mdash; WpTarget</a></li>
<li><a href="Malwares.html#method-i-malwares">#malwares &mdash; Malwares</a></li> <li><a href="Malwares.html#method-i-malwares">#malwares &mdash; Malwares</a></li>
@@ -331,14 +369,14 @@
<li><a href="Browser.html#method-i-merge_request_params">#merge_request_params &mdash; Browser</a></li> <li><a href="Browser.html#method-i-merge_request_params">#merge_request_params &mdash; Browser</a></li>
<li><a href="RpcClient.html#method-i-meterpreter_read">#meterpreter_read &mdash; RpcClient</a></li>
<li><a href="Exploit.html#method-i-meterpreter_read">#meterpreter_read &mdash; Exploit</a></li> <li><a href="Exploit.html#method-i-meterpreter_read">#meterpreter_read &mdash; Exploit</a></li>
<li><a href="RpcClient.html#method-i-meterpreter_write">#meterpreter_write &mdash; RpcClient</a></li> <li><a href="RpcClient.html#method-i-meterpreter_read">#meterpreter_read &mdash; RpcClient</a></li>
<li><a href="Exploit.html#method-i-meterpreter_write">#meterpreter_write &mdash; Exploit</a></li> <li><a href="Exploit.html#method-i-meterpreter_write">#meterpreter_write &mdash; Exploit</a></li>
<li><a href="RpcClient.html#method-i-meterpreter_write">#meterpreter_write &mdash; RpcClient</a></li>
<li><a href="Svn_Parser.html#method-i-parse">#parse &mdash; Svn_Parser</a></li> <li><a href="Svn_Parser.html#method-i-parse">#parse &mdash; Svn_Parser</a></li>
<li><a href="WpPlugins.html#method-i-plugins_from_aggressive_detection">#plugins_from_aggressive_detection &mdash; WpPlugins</a></li> <li><a href="WpPlugins.html#method-i-plugins_from_aggressive_detection">#plugins_from_aggressive_detection &mdash; WpPlugins</a></li>
@@ -353,16 +391,20 @@
<li><a href="CacheFileStore.html#method-i-read_entry">#read_entry &mdash; CacheFileStore</a></li> <li><a href="CacheFileStore.html#method-i-read_entry">#read_entry &mdash; CacheFileStore</a></li>
<li><a href="RpcClient.html#method-i-read_shell">#read_shell &mdash; RpcClient</a></li>
<li><a href="Exploit.html#method-i-read_shell">#read_shell &mdash; Exploit</a></li> <li><a href="Exploit.html#method-i-read_shell">#read_shell &mdash; Exploit</a></li>
<li><a href="WpItem.html#method-i-readme_url">#readme_url &mdash; WpItem</a></li> <li><a href="RpcClient.html#method-i-read_shell">#read_shell &mdash; RpcClient</a></li>
<li><a href="WpReadme.html#method-i-readme_url">#readme_url &mdash; WpReadme</a></li> <li><a href="WpReadme.html#method-i-readme_url">#readme_url &mdash; WpReadme</a></li>
<li><a href="WpItem.html#method-i-readme_url">#readme_url &mdash; WpItem</a></li>
<li><a href="WebSite.html#method-i-redirection">#redirection &mdash; WebSite</a></li> <li><a href="WebSite.html#method-i-redirection">#redirection &mdash; WebSite</a></li>
<li><a href="WpTarget.html#method-i-registration_enabled-3F">#registration_enabled? &mdash; WpTarget</a></li>
<li><a href="WpTarget.html#method-i-registration_url">#registration_url &mdash; WpTarget</a></li>
<li><a href="GitUpdater.html#method-i-repo_directory_arguments">#repo_directory_arguments &mdash; GitUpdater</a></li> <li><a href="GitUpdater.html#method-i-repo_directory_arguments">#repo_directory_arguments &mdash; GitUpdater</a></li>
<li><a href="Object.html#method-i-require_files_from_directory">#require_files_from_directory &mdash; Object</a></li> <li><a href="Object.html#method-i-require_files_from_directory">#require_files_from_directory &mdash; Object</a></li>
@@ -371,12 +413,14 @@
<li><a href="Exploit.html#method-i-session_count">#session_count &mdash; Exploit</a></li> <li><a href="Exploit.html#method-i-session_count">#session_count &mdash; Exploit</a></li>
<li><a href="RpcClient.html#method-i-sessions">#sessions &mdash; RpcClient</a></li>
<li><a href="Exploit.html#method-i-sessions">#sessions &mdash; Exploit</a></li> <li><a href="Exploit.html#method-i-sessions">#sessions &mdash; Exploit</a></li>
<li><a href="RpcClient.html#method-i-sessions">#sessions &mdash; RpcClient</a></li>
<li><a href="WpscanOptions.html#method-i-set_option_from_cli">#set_option_from_cli &mdash; WpscanOptions</a></li> <li><a href="WpscanOptions.html#method-i-set_option_from_cli">#set_option_from_cli &mdash; WpscanOptions</a></li>
<li><a href="WpLoginProtection.html#method-i-simple_login_lockdown_url">#simple_login_lockdown_url &mdash; WpLoginProtection</a></li>
<li><a href="Exploit.html#method-i-start">#start &mdash; Exploit</a></li> <li><a href="Exploit.html#method-i-start">#start &mdash; Exploit</a></li>
<li><a href="WpTimthumbs.html#method-i-targets_url_from_theme">#targets_url_from_theme &mdash; WpTimthumbs</a></li> <li><a href="WpTimthumbs.html#method-i-targets_url_from_theme">#targets_url_from_theme &mdash; WpTimthumbs</a></li>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-15 08:04:08 +0200</dd> <dd class="modified-date">2012-09-18 20:09:48 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-15 08:00:54 +0200</dd> <dd class="modified-date">2012-09-19 21:41:41 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-15 08:01:06 +0200</dd> <dd class="modified-date">2012-09-19 21:33:46 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-16 12:02:47 +0200</dd> <dd class="modified-date">2012-09-18 22:27:43 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-16 23:27:21 +0200</dd> <dd class="modified-date">2012-09-19 15:03:22 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-15 08:02:04 +0200</dd> <dd class="modified-date">2012-09-19 22:09:14 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-15 08:02:37 +0200</dd> <dd class="modified-date">2012-09-19 22:21:47 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-17 17:40:36 +0200</dd> <dd class="modified-date">2012-09-19 22:29:50 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-17 17:54:28 +0200</dd> <dd class="modified-date">2012-09-19 22:30:45 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-16 23:02:21 +0200</dd> <dd class="modified-date">2012-09-18 22:28:27 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-17 22:03:47 +0200</dd> <dd class="modified-date">2012-09-19 22:20:29 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-17 22:51:21 +0200</dd> <dd class="modified-date">2012-09-19 17:40:16 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-17 22:23:12 +0200</dd> <dd class="modified-date">2012-09-19 22:20:40 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-16 23:48:18 +0200</dd> <dd class="modified-date">2012-09-19 21:33:07 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-17 22:44:37 +0200</dd> <dd class="modified-date">2012-09-18 17:29:40 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>

View File

@@ -24,7 +24,7 @@
<div id="metadata"> <div id="metadata">
<dl> <dl>
<dt class="modified-date">Last Modified</dt> <dt class="modified-date">Last Modified</dt>
<dd class="modified-date">2012-09-17 17:42:32 +0200</dd> <dd class="modified-date">2012-09-19 22:06:17 +0200</dd>
<dt class="requires">Requires</dt> <dt class="requires">Requires</dt>