diff --git a/lib/wpscan/wp_target.rb b/lib/wpscan/wp_target.rb index e13cbd83..3cab4102 100644 --- a/lib/wpscan/wp_target.rb +++ b/lib/wpscan/wp_target.rb @@ -91,10 +91,14 @@ class WpTarget unless @wp_content_dir index_body = Browser.instance.get(@uri.to_s).body - if index_body[%r{/wp-content/(?:themes|plugins)/}i] + if index_body[%r{#@uri/?wp-content/(?:themes|plugins)/}i] @wp_content_dir = "wp-content" else - @wp_content_dir = index_body[%r{(?:href|src)=(?:"|')#{@uri}/?([^"']+)/(?:themes|plugins)/.*(?:"|')}i, 1] + @wp_content_dir = index_body[%r{(?:href|src)=(?:"|')#@uri/?([^"']+)/(?:themes|plugins)/.*(?:"|')}i, 1] + # Bug: Some themes and plugins render incorrect with custom wp-content dir, so only take the first folder + # Exmaple: + # /wordpress/wp-custom/plugins/usr/share/wordpress/wp-content/plugins/contact-form-7/includes/js/jquery.form.js? + @wp_content_dir = @wp_content_dir[%r{([^/]+).*}i, 1] end end @wp_content_dir