Ryan,

On Sat, Jun 6, 2009 at 6:22 PM, Ryan Dewhurst<ryandewhu...@gmail.com> wrote:
>>Also delete the .pyc file, and no reinstall is needed.
>
> There was none.
>
>> Yes, many.
>> You are missing some required methods, like setOptions, getOptions,
>> getLongDescription, etc. Please see other plugins for a complete list,
>
> They are already in the code:
>
> # W3af options and output
>    def getOptions( self ):
>        '''
>       �...@return: A list of option objects for this plugin.
>        '''
>        ol = optionList()
>        return ol
>
>    def setOptions( self, OptionList ):
>        '''
>        This method sets all the options that are configured using the
> user interface
>        generated by the framework using the result of getOptions().
>
>       �...@parameter OptionList: A dictionary with the options for the plugin.
>       �...@return: No value is returned.
>        '''
>        pass
>
>    def getPluginDeps( self ):
>        '''
>       �...@return: A list with the names of the plugins that should be
> runned before the
>        current one.
>        '''
>        return []
>
>    def getLongDesc( self ):
>        '''
>       �...@return: A DETAILED description of the plugin functions and 
> features.
>        '''
>        return '''
>        This plugin searches for client side differences between
> different versions of WordPress.
>        '''

Then try to run w3af from a console:

in cmd.exe run python w3af_console.py

>
> 2009/6/6 Andres Riancho <andres.rian...@gmail.com>:
>> Ryan,
>>
>> On Sat, Jun 6, 2009 at 1:57 PM, Ryan Dewhurst <ryandewhu...@gmail.com> wrote:
>>> I moved the wpvchecker.py file into the /plugin/discovery folder. When
>>> I try to launch w3af I get an error (screenshot attached), the prompt
>>> only lasts a few seconds so could not copy/paste the full error
>>> output.
>>>
>>> When I remove the wpvchecker.py file out of the dir the error persists
>>> and I have to un/re install w3af to get it working again.
>>
>> Also delete the .pyc file, and no reinstall is needed.
>>
>>> Any ideas?
>>
>> Yes, many.
>> You are missing some required methods, like setOptions, getOptions,
>> getLongDescription, etc. Please see other plugins for a complete list,
>>
>>> Thanks again,
>>> Ryan
>>>
>>> 2009/6/6 Andres Riancho <andres.rian...@gmail.com>:
>>>> Ryan,
>>>>
>>>> On Sat, Jun 6, 2009 at 10:59 AM, Ryan Dewhurst <ryandewhu...@gmail.com> 
>>>> wrote:
>>>>> Hello,
>>>>> Sorry its been so long with the wrodpress version checker plugin, had
>>>>> some life problems.
>>>>
>>>> No problem man, I hope things are going better now.
>>>>
>>>>> Anyway...
>>>>>
>>>>> I have come to a logic problem which I cannot seem to solve and was
>>>>> wondering if any one could give me some pointers...
>>>>>
>>>>> Versions '2.5', '2.3.1, 2.3.2 or 2.3.3' and '2.2' are detected by a
>>>>> file/image being present i.e status 200
>>>>>
>>>>> I cannot figure out how to check for this while using the
>>>>> self._wp_fingerprint array.
>>>>
>>>> The for loop that works with the array looks like this:
>>>>
>>>>                for data in self._wp_fingerprint:
>>>>
>>>>                    # Complete URL to test, url+file
>>>>                    test_URL = urlParser.urlJoin( base_url,
>>>> self._wp_fingerprint[0] )
>>>>
>>>>                    if self._wp_fingerprint[1] in response:
>>>>                        version = self._wp_fingerprint[2]
>>>>                        break
>>>>                    else:
>>>>                        version = 'Version lower than 2.2'
>>>>
>>>> But there are some parts missing, like actually requesting to the
>>>> server the test_URL. On the other part, the "200" logic could be
>>>> easily done like this:
>>>>
>>>>                    if self._wp_fingerprint[1] == 200 and not 
>>>> is_404(response):
>>>>                        # it was found!
>>>>                    elif self._wp_fingerprint[1] in response:
>>>>                        version = self._wp_fingerprint[2]
>>>>                        break
>>>>                    else:
>>>>                        version = 'Version lower than 2.2'
>>>>
>>>> To make this work, you should change the '' in the fingerprint array
>>>> by a 200, and it should all work.
>>>>
>>>>> Here is the code so far, I have not yet tested it out, but should give
>>>>> you a basic idea of how it will run.
>>>>
>>>> Yes, and it makes much more sense to me this way. The older version
>>>> was "ugly" :)
>>>>
>>>>> I was also thinking of
>>>>> implementing a plugin version checker as there are many plugins with
>>>>> vulns.
>>>>
>>>> Sure, but lets go step by step, lets finish this plugin, test it a
>>>> little bit, and then we can go for the next one.
>>>>
>>>>> Thank you,
>>>>> Ryan
>>>>>
>>>>> P.S. To test it through w3af, do I just pop the py file into the
>>>>> plugin folder or is there any other code to be changed?
>>>>
>>>> Yes, you have to move this file to the discovery directory and that's it.
>>>>
>>>>> 2009/5/31 Ryan Dewhurst <ryandewhu...@gmail.com>:
>>>>>> Just to let everyone know where I am with the plugin.
>>>>>>
>>>>>> I'm a complete n00b at re and couldnt get backbone's code to work, so
>>>>>> I read a couple of manuals and finally got it working with:
>>>>>> <meta name="generator" content="[Ww]ord[Pp]ress (\d\.\d\.?\d?)" />
>>>>>>
>>>>>> An explanation of what the plugin will do:
>>>>>> -----------------------------------------------------------
>>>>>>
>>>>>> It will first check to see if the server has the following file
>>>>>> "/wp-admin/index.php".
>>>>>>
>>>>>> If it does
>>>>>>
>>>>>> It will check to see whether or not the version is in the index header.
>>>>>>
>>>>>> If it finds the version it will store it in a variable.
>>>>>>
>>>>>> It will then run through the checks from my original code to try and
>>>>>> guess the version.
>>>>>>
>>>>>>
>>>>>> The output will be as follows:
>>>>>> ------------------------------------------
>>>>>>
>>>>>> If the version is not in the index and not found with the data =
>>>>>> "version under 2.2"
>>>>>> If the version is in the index and in the data are the same =
>>>>>> "whatever version was found"
>>>>>> If the version is in the index and in the data are different =
>>>>>> ""Version shows as $version in index header however the data shows
>>>>>> $version"
>>>>>>
>>>>>> I still need to implement the data checks however my girlfriend has
>>>>>> fallen ill and has been admitted to hospital for an emergency
>>>>>> operation. I don't think I will be able to finish the plugin this
>>>>>> weekend as promised earlier however will still be working on it next
>>>>>> week.
>>>>>>
>>>>>> I was also thinking on listing the vulnerabilitys for each version (if
>>>>>> any) on the output.
>>>>>>
>>>>>> Ryan
>>>>>>
>>>>>>
>>>>>> 2009/5/29 Andres Riancho <andres.rian...@gmail.com>:
>>>>>>> Ryan,
>>>>>>>
>>>>>>> On Thu, May 28, 2009 at 10:11 PM, Ryan Dewhurst 
>>>>>>> <ryandewhu...@gmail.com> wrote:
>>>>>>>> Im loooking into searching the response html of the index page for the
>>>>>>>> following string:
>>>>>>>> <meta name="generator" content="WordPress $version" />
>>>>>>>>
>>>>>>>> Ive tried with regular expressions and am unable to get it to work,
>>>>>>>
>>>>>>> backbone sent you a solution,
>>>>>>>
>>>>>>>> Ive read that re is bad for parsing HTML and that BeautifulSoup
>>>>>>>>  should be used.
>>>>>>>>
>>>>>>>> Does w3af already have BeautifulSoup in its dependency list?
>>>>>>>
>>>>>>> Yes, it's in the dependency list, but we aren't using it "for that".
>>>>>>> Long story short, please use the re =)
>>>>>>>
>>>>>>>> Ryan
>>>>>>>>
>>>>>>>> P.S. Thanks for the advice backbone46, I'll have a look into that once
>>>>>>>> Ive sorted this out.
>>>>>>>>
>>>>>>>>
>>>>>>>> 2009/5/28  <backbon...@gmail.com>:
>>>>>>>>> Sorry to bump in just like that in the discussion, about the meta tag 
>>>>>>>>> that
>>>>>>>>> displays
>>>>>>>>> the WordPress version.
>>>>>>>>>
>>>>>>>>> Only since version 2.7 the generator function is in the core of 
>>>>>>>>> WordPress,
>>>>>>>>> on
>>>>>>>>> earlier versions it was only in the theme.
>>>>>>>>>
>>>>>>>>> Just wanted to mention that. :)
>>>>>>>>>
>>>>>>>>> ---
>>>>>>>>> http://insanesecurity.info
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thu, May 28, 2009 at 10:53 PM, Ryan Dewhurst 
>>>>>>>>> <ryandewhu...@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Yes, I dont see why not. Should be easy enough tro implement.
>>>>>>>>>>
>>>>>>>>>> You mentioned during our email conversation that wordpress echos its
>>>>>>>>>> version number in the page head. I managed to find an example of it.
>>>>>>>>>> Your right I do have a security plugin installed which must have
>>>>>>>>>> removed it from my blog.
>>>>>>>>>>
>>>>>>>>>> Here is an example:
>>>>>>>>>> <meta name="generator" content="WordPress 2.7.1" />
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2009/5/28 Andres Riancho <andres.rian...@gmail.com>:
>>>>>>>>>> > Ryan,
>>>>>>>>>> >
>>>>>>>>>> > On Wed, May 27, 2009 at 10:18 PM, Andres Riancho
>>>>>>>>>> > <andres.rian...@gmail.com> wrote:
>>>>>>>>>> >> Ryan,
>>>>>>>>>> >>
>>>>>>>>>> >> On Wed, May 27, 2009 at 9:58 PM, Ryan Dewhurst 
>>>>>>>>>> >> <ryandewhu...@gmail.com>
>>>>>>>>>> >> wrote:
>>>>>>>>>> >>> Hello,
>>>>>>>>>> >>> Im new to mailing lists so im not sure if this will be sent 
>>>>>>>>>> >>> there.
>>>>>>>>>> >>
>>>>>>>>>> >> It depends on the mailing list. This one is configured to accept
>>>>>>>>>> >> attachments,
>>>>>>>>>> >>
>>>>>>>>>> >>> I'll have a look into intergrating the script into w3af over the 
>>>>>>>>>> >>> next
>>>>>>>>>> >>> couple of days and hopefully have a working version by the 
>>>>>>>>>> >>> weekend.
>>>>>>>>>> >>
>>>>>>>>>> >> Excellent, if you need ANY help, just let us know.
>>>>>>>>>> >>
>>>>>>>>>> >>> The script is quite simple once you have the gathered the 
>>>>>>>>>> >>> nesesary
>>>>>>>>>> >>> data. I went through versions 2.2 to 2.7.1 and manually found 
>>>>>>>>>> >>> client
>>>>>>>>>> >>> side differences in most of them, I also used the official 
>>>>>>>>>> >>> changelogs
>>>>>>>>>> >>> to help identify them.
>>>>>>>>>> >>
>>>>>>>>>> >> Ohhh, you are the guy that wrote that blog post with the "diffs" 
>>>>>>>>>> >> of
>>>>>>>>>> >> different wordpress release packages?
>>>>>>>>>> >>
>>>>>>>>>> >>> The client side differences are in files such as CSS, javascript 
>>>>>>>>>> >>> and
>>>>>>>>>> >>> HTML. Some versions did not have any differences apart from 
>>>>>>>>>> >>> having
>>>>>>>>>> >>> extra files, which can easliy be identified with HTTP response 
>>>>>>>>>> >>> codes.
>>>>>>>>>> >>>
>>>>>>>>>> >>> It works as such...
>>>>>>>>>> >>>
>>>>>>>>>> >>> Starting from version 2.7.1 (latest), the script tries to find
>>>>>>>>>> >>> something that 2.7 doesnt have, if it finds that something then 
>>>>>>>>>> >>> the
>>>>>>>>>> >>> script stops and echos the version number.
>>>>>>>>>> >>>
>>>>>>>>>> >>> If the script doesnt find the difference it moves onto 
>>>>>>>>>> >>> identifying the
>>>>>>>>>> >>> next version, i.e. does 2.7 have something the earlier version 
>>>>>>>>>> >>> doesnt
>>>>>>>>>> >>> have. and so on and so forth.
>>>>>>>>>> >>
>>>>>>>>>> >> Ok, makes sense.
>>>>>>>>>> >>
>>>>>>>>>> >> Some comments regarding your code:
>>>>>>>>>> >>
>>>>>>>>>> >> - w3af uses PEP-8, with among other things says 4-spaces for
>>>>>>>>>> >> indentations. Your code has 1-space (?) indentations. Please 
>>>>>>>>>> >> correct
>>>>>>>>>> >> that.
>>>>>>>>>> >>
>>>>>>>>>> >> - The code is pretty simple, but i think it could be done in a 
>>>>>>>>>> >> better
>>>>>>>>>> >> way. Having that many functions (wp22 to wp271) doesn't seem to 
>>>>>>>>>> >> be a
>>>>>>>>>> >> good option. Do you think that the code could be changed a little 
>>>>>>>>>> >> bit,
>>>>>>>>>> >> and create a database (which can be easily updated) and then use 
>>>>>>>>>> >> that
>>>>>>>>>> >> database to store the information? Example of the databse
>>>>>>>>>> >>
>>>>>>>>>> >> self._wp_fingerprint =
>>>>>>>>>> >>
>>>>>>>>>> >> [('/wp-includes/js/thickbox/thickbox.css','-ms-filter:'),('/wp-admin/css/farbtastic.css',
>>>>>>>>>> >> 'farbtastic')]
>>>>>>>>>> >>
>>>>>>>>>> >> - Also, by default wordpress publishes the version number in every
>>>>>>>>>> >> page head. Maybe it would be a good idea to parse that, and 
>>>>>>>>>> >> compare it
>>>>>>>>>> >> with the result of the fingerprinting. What do you think?
>>>>>>>>>> >
>>>>>>>>>> > A good idea would be to have a first step, before all the version
>>>>>>>>>> > specific checks, that verifies something that's true for all 
>>>>>>>>>> > wordpress
>>>>>>>>>> > installations (some X file has to be present) before even starting 
>>>>>>>>>> > the
>>>>>>>>>> > fingerprinting. Could this be done?
>>>>>>>>>> >
>>>>>>>>>> >> Cheers,
>>>>>>>>>> >>
>>>>>>>>>> >>> Ryan
>>>>>>>>>> >>>
>>>>>>>>>> >>>
>>>>>>>>>> >>> 2009/5/28 Andres Riancho <andres.rian...@gmail.com>:
>>>>>>>>>> >>>> Ryan,
>>>>>>>>>> >>>>
>>>>>>>>>> >>>> On Wed, May 27, 2009 at 5:07 PM, Ryan Dewhurst
>>>>>>>>>> >>>> <ryandewhu...@gmail.com> wrote:
>>>>>>>>>> >>>>> Hello,
>>>>>>>>>> >>>>> I have developed a python script that can detect the version 
>>>>>>>>>> >>>>> of a
>>>>>>>>>> >>>>> wordpress installation. I think it would fit well within w3af,
>>>>>>>>>> >>>>
>>>>>>>>>> >>>> Yes, it seems that it's something good to have in the framework.
>>>>>>>>>> >>>>
>>>>>>>>>> >>>> I have like a ton of questions about how it works, could you 
>>>>>>>>>> >>>> please
>>>>>>>>>> >>>> send the script (as it is) to this mailing list for us to read 
>>>>>>>>>> >>>> it?
>>>>>>>>>> >>>>
>>>>>>>>>> >>>>> the
>>>>>>>>>> >>>>> only problem being is that I have been unable to find a plugin
>>>>>>>>>> >>>>> development manual to be able to implement my script.
>>>>>>>>>> >>>>
>>>>>>>>>> >>>> There is no development manual :(
>>>>>>>>>> >>>>
>>>>>>>>>> >>>> For the type of feature that you want to add, the correct thing 
>>>>>>>>>> >>>> is to
>>>>>>>>>> >>>> use a discovery plugin. discovery plugins are simple, they 
>>>>>>>>>> >>>> follow
>>>>>>>>>> >>>> these rules:
>>>>>>>>>> >>>>
>>>>>>>>>> >>>> - the entry point is the discover method
>>>>>>>>>> >>>>
>>>>>>>>>> >>>> - the discover method takes a fuzzable request object as a 
>>>>>>>>>> >>>> parameter,
>>>>>>>>>> >>>> and returns a list of fuzzable requests
>>>>>>>>>> >>>> (fuzzable requests are representations of GET/POST requests, 
>>>>>>>>>> >>>> which
>>>>>>>>>> >>>> represent links, and forms)
>>>>>>>>>> >>>>
>>>>>>>>>> >>>> - the discover method is called several times in the same scan, 
>>>>>>>>>> >>>> with
>>>>>>>>>> >>>> the different links that (for example) the webSpider finds.
>>>>>>>>>> >>>>
>>>>>>>>>> >>>> I think that the best thing you can do is to read one or two
>>>>>>>>>> >>>> discovery
>>>>>>>>>> >>>> plugins (my recommendations are discovery.crossDomain and
>>>>>>>>>> >>>> discovery.userDir), and start building your own plugin based on 
>>>>>>>>>> >>>> one
>>>>>>>>>> >>>> of
>>>>>>>>>> >>>> those.
>>>>>>>>>> >>>>
>>>>>>>>>> >>>>> Is there a dev manual out there?
>>>>>>>>>> >>>>
>>>>>>>>>> >>>> No
>>>>>>>>>> >>>>
>>>>>>>>>> >>>>> Does any one have some tips/advice on writting a plugin?
>>>>>>>>>> >>>>
>>>>>>>>>> >>>> Yes, see above,
>>>>>>>>>> >>>>
>>>>>>>>>> >>>>> Does any one want me to send them the script for them to 
>>>>>>>>>> >>>>> develop the
>>>>>>>>>> >>>>> plugin?
>>>>>>>>>> >>>>
>>>>>>>>>> >>>> You should develop the plugin yourself, is fun and good for the
>>>>>>>>>> >>>> project =)
>>>>>>>>>> >>>>
>>>>>>>>>> >>>> Cheers,
>>>>>>>>>> >>>>
>>>>>>>>>> >>>>> Thank you,
>>>>>>>>>> >>>>> Ryan
>>>>>>>>>> >>>>>
>>>>>>>>>> >>>>>
>>>>>>>>>> >>>>> ------------------------------------------------------------------------------
>>>>>>>>>> >>>>> Register Now for Creativity and Technology (CaT), June 3rd, 
>>>>>>>>>> >>>>> NYC. CaT
>>>>>>>>>> >>>>> is a gathering of tech-side developers & brand creativity
>>>>>>>>>> >>>>> professionals. Meet
>>>>>>>>>> >>>>> the minds behind Google Creative Lab, Visual Complexity, 
>>>>>>>>>> >>>>> Processing,
>>>>>>>>>> >>>>> &
>>>>>>>>>> >>>>> iPhoneDevCamp as they present alongside digital heavyweights 
>>>>>>>>>> >>>>> like
>>>>>>>>>> >>>>> Barbarian
>>>>>>>>>> >>>>> Group, R/GA, & Big Spaceship. 
>>>>>>>>>> >>>>> http://p.sf.net/sfu/creativitycat-com
>>>>>>>>>> >>>>> _______________________________________________
>>>>>>>>>> >>>>> W3af-develop mailing list
>>>>>>>>>> >>>>> W3af-develop@lists.sourceforge.net
>>>>>>>>>> >>>>> https://lists.sourceforge.net/lists/listinfo/w3af-develop
>>>>>>>>>> >>>>>
>>>>>>>>>> >>>>
>>>>>>>>>> >>>>
>>>>>>>>>> >>>>
>>>>>>>>>> >>>> --
>>>>>>>>>> >>>> Andrés Riancho
>>>>>>>>>> >>>> Founder, Bonsai - Information Security
>>>>>>>>>> >>>> http://www.bonsai-sec.com/
>>>>>>>>>> >>>> http://w3af.sf.net/
>>>>>>>>>> >>>>
>>>>>>>>>> >>>
>>>>>>>>>> >>
>>>>>>>>>> >>
>>>>>>>>>> >>
>>>>>>>>>> >> --
>>>>>>>>>> >> Andrés Riancho
>>>>>>>>>> >> Founder, Bonsai - Information Security
>>>>>>>>>> >> http://www.bonsai-sec.com/
>>>>>>>>>> >> http://w3af.sf.net/
>>>>>>>>>> >>
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> > --
>>>>>>>>>> > Andrés Riancho
>>>>>>>>>> > Founder, Bonsai - Information Security
>>>>>>>>>> > http://www.bonsai-sec.com/
>>>>>>>>>> > http://w3af.sf.net/
>>>>>>>>>> >
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> ------------------------------------------------------------------------------
>>>>>>>>>> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
>>>>>>>>>> is a gathering of tech-side developers & brand creativity 
>>>>>>>>>> professionals.
>>>>>>>>>> Meet
>>>>>>>>>> the minds behind Google Creative Lab, Visual Complexity, Processing, 
>>>>>>>>>> &
>>>>>>>>>> iPhoneDevCamp as they present alongside digital heavyweights like
>>>>>>>>>> Barbarian
>>>>>>>>>> Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com
>>>>>>>>>> _______________________________________________
>>>>>>>>>> W3af-develop mailing list
>>>>>>>>>> W3af-develop@lists.sourceforge.net
>>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/w3af-develop
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Andrés Riancho
>>>>>>> Founder, Bonsai - Information Security
>>>>>>> http://www.bonsai-sec.com/
>>>>>>> http://w3af.sf.net/
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Andrés Riancho
>>>> Founder, Bonsai - Information Security
>>>> http://www.bonsai-sec.com/
>>>> http://w3af.sf.net/
>>>>
>>>
>>
>>
>>
>> --
>> Andrés Riancho
>> Founder, Bonsai - Information Security
>> http://www.bonsai-sec.com/
>> http://w3af.sf.net/
>>
>



-- 
Andrés Riancho
Founder, Bonsai - Information Security
http://www.bonsai-sec.com/
http://w3af.sf.net/

------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
W3af-develop mailing list
W3af-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/w3af-develop

Reply via email to