<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Abdelhadi+AZOUNI</id>
		<title>OWASP - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Abdelhadi+AZOUNI"/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php/Special:Contributions/Abdelhadi_AZOUNI"/>
		<updated>2026-04-11T07:33:10Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Code_Kids_2015_Ideas&amp;diff=185000</id>
		<title>OWASP Code Kids 2015 Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Code_Kids_2015_Ideas&amp;diff=185000"/>
				<updated>2014-11-09T14:20:33Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: /* OWASP ZAP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Task Categories=&lt;br /&gt;
&lt;br /&gt;
The tasks are grouped into the categories described below. '''Please make sure each task is assigned a category.'''&lt;br /&gt;
&lt;br /&gt;
'''Code:''' Tasks related to writing or refactoring code.&lt;br /&gt;
&lt;br /&gt;
'''Documentation/Training:''' Tasks related to creating/editing documents and helping others learn more&lt;br /&gt;
&lt;br /&gt;
'''Outreach/Research:''' Tasks related to community management, outreach/marketing, or studying problems and recommending solutions&lt;br /&gt;
&lt;br /&gt;
'''Quality Assurance:''' Tasks related to testing and ensuring code is of high quality&lt;br /&gt;
&lt;br /&gt;
'''User Interface:''' Tasks related to user experience research or user interface design and interaction&lt;br /&gt;
&lt;br /&gt;
== OWASP ZAP ==&lt;br /&gt;
&lt;br /&gt;
=== OWASP ZAP Task 1 ===&lt;br /&gt;
&lt;br /&gt;
'''Brief description:'''&lt;br /&gt;
&lt;br /&gt;
Write a blogpost about CMS-scnanning techniques, this will include web-apps fingerprinting methods, vulnerability checking using on-line databases and a survey of existing tools.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Documentation &lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
A professional blogpost that will be published on OWASP website &lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Good understanding of web security basics, Knowledge on how do CMSs work and good writing skills.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Abdelhadi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWASP ZAP Task 2 ===&lt;br /&gt;
&lt;br /&gt;
'''Brief description:'''&lt;br /&gt;
&lt;br /&gt;
Rebuild the CMSscanner GUI including a progress bar that shows scanning progress and a textzone to display tried strings and paths used by the scanner in real time &lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code/Design&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
New GUI with progress bar and displaying paths when scanning &lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Java language, GUI design.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Abdelhadi&lt;br /&gt;
&lt;br /&gt;
== OWASP OWTF ==&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF Task 1 ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Task description&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Eg. Code Category&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Describe the expected results of the task&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' XXXXXX&lt;br /&gt;
&lt;br /&gt;
== OWASP WIKI ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1: Latam Tour 2015 logo ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Design a new logo for the Latam Tour 2015. The logo must resemble previous editions of the Tour and represent the Latin America region. It would be better if the new logo is based on the OWASP logo. As a reference, here is the Latam Tour 2014 Logo:&lt;br /&gt;
&lt;br /&gt;
https://www.owasp.org/images/f/f3/OWASP_Latam_Tour_Logo_2014.png&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Design&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Latam Tour 2015 logo in either psd or jpeg format.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with Photoshop/GIMP or any other designing software.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Fabio Cerullo&lt;br /&gt;
&lt;br /&gt;
== OWASP WebGoatPHP ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1: Implement &amp;quot;remember me&amp;quot; feature ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Implement a secure &amp;quot;Remember me&amp;quot; feature in user login form using cookies. At present the remember me check box is present in the form but it does nothing.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
If user checks the &amp;quot;remember me&amp;quot; check box when logging in, then the user will not be required to login every time he visits the application within X days.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Reference:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/shivamdixit/WebGoatPHP/issues/45&lt;br /&gt;
&lt;br /&gt;
'''Code:'''&lt;br /&gt;
&lt;br /&gt;
app/control/user/login.php&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Make workshop mode dashboard responsive ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
In workshop mode of the application, the side panel of admin dashboard is not responsive i.e it does not fits well in smaller size screen resolutions. If the screen size is small the side panel should shrink into a smaller panel preferably at the bottom of the application.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Panel perfectly adjusts on small screen resolutions.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
CSS (media queries), HTML&lt;br /&gt;
&lt;br /&gt;
'''Reference:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/shivamdixit/WebGoatPHP/issues/26&lt;br /&gt;
&lt;br /&gt;
'''Code:'''&lt;br /&gt;
&lt;br /&gt;
style/dashboard.css&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 3: WebGoatPHP logo ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Design a new logo for the application. The logo must resemble various aspects of the application. It would be better if the new logo is based on the OWASP logo. &lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Design&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
WebGoatPHP logo in either psd or jpeg format.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with Photoshop/GIMP or any other designing software.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
=== Task 4: WebGoatPHP deployment screencast ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Deploy the application on the local server without using vagrant and record a screencast of the process. Upload to a video streaming service and comment link on the melange for mentor to review.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
The screencast should clearly contain all the steps required for the deployment and how to troubleshoot most common errors in the whole process.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with an operating system (Linux/Windows)&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 5: Create a SQL injection challenge ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Single user mode of WebGoatPHP consist of set of challenges. These challenges simulate various real world security vulnerabilities in web applications. You have to add a challenge under category &amp;quot;Injection Attacks&amp;quot; which simulates a SQL injection vulnerability in single user mode. The input data must be of type string and the challenge should mimic some real world scenario.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
A challenge which helps user understand SQLi vulnerability by allowing him to exploit the vulnerability.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Reference:'''&lt;br /&gt;
&lt;br /&gt;
https://www.owasp.org/index.php/SQL_Injection&lt;br /&gt;
&lt;br /&gt;
https://github.com/shivamdixit/WebGoatPHP/blob/master/README.md#adding-a-lessonchallenge&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 6-20: WebGoatPHP challenges screencast series ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
In this task you are required to record screencast of how to solve a particular single user mode challenge. The screencast should start by providing an overview of the vulnerability that will be exploited, then step by step instructions on how to exploit the vulnerability. The screencast should conclude on a note that how to avoid this vulnerability in your application. The length of the screencast would vary according to the challenge but it should neither be too long nor too short.&lt;br /&gt;
&lt;br /&gt;
Task    - Screencast of challenge.....&lt;br /&gt;
&lt;br /&gt;
Task 6  - HTTP Basic&lt;br /&gt;
&lt;br /&gt;
Task 7  - Using Access Control Matrix&lt;br /&gt;
&lt;br /&gt;
Task 8  - Business Layer Access Control&lt;br /&gt;
&lt;br /&gt;
Task 9  - Path Based Access Control&lt;br /&gt;
&lt;br /&gt;
Task 10 - Same Origin Policy Protection&lt;br /&gt;
&lt;br /&gt;
Task 11 - Forgot Password&lt;br /&gt;
&lt;br /&gt;
Task 12 - Discover clues in HTML&lt;br /&gt;
&lt;br /&gt;
Task 13 - JS Obfuscation&lt;br /&gt;
&lt;br /&gt;
Task 14 - XSS 1 (Reflected)&lt;br /&gt;
&lt;br /&gt;
Task 15 - XSS 2 (Stored)&lt;br /&gt;
&lt;br /&gt;
Task 16 - XSS 3 (DOM)&lt;br /&gt;
&lt;br /&gt;
Task 17 - Fail Open Authentication&lt;br /&gt;
&lt;br /&gt;
Task 18 - Log Spoofing&lt;br /&gt;
&lt;br /&gt;
Task 19 - Numeric SQL Injection&lt;br /&gt;
&lt;br /&gt;
Task 20 - XPATH injection&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
A screencast explaining the vulnerability involved in a particular challenge.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
== OWASP CSRF Protector ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1-2: CSRF Protector logo ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Design logos for the for CSRF Protector Project, possibly two versions one for php library and another one for Apache module.&lt;br /&gt;
Both of them should resemble OWASP logo.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Design&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
OWASP CSRF Protector logo in either psd or jpeg format.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with Photoshop/GIMP or any other designing software.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;br /&gt;
&lt;br /&gt;
=== Task 3: Porting CSRF Protector PHP Wiki (from Github) to OWASP Wiki ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Currently we have wiki on how to use and deploy, at github. The task is to port them to OWASP Wiki as well so that it can be accessed directly.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Documentation&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Wiki for CSRF Protector php library in OWASP.ORG .&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with wiki.&lt;br /&gt;
&lt;br /&gt;
'''Reference'''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/mebjas/CSRF-Protector-PHP/wiki Github wiki for CSRF Protector php]&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;br /&gt;
&lt;br /&gt;
=== Task 4: Porting mod_csrfprotector Wiki (from Github) to OWASP Wiki ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Currently we have wiki on how to use and deploy, at github. The task is to port them to OWASP Wiki as well so that it can be accessed directly.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Documentation&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Wiki for mod_csrfprotector library in OWASP.ORG .&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with wiki.&lt;br /&gt;
&lt;br /&gt;
'''References'''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/mebjas/mod_csrfprotector/wiki Github wiki for mod_csrfprotector]&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;br /&gt;
&lt;br /&gt;
=== Task 5-6: Create screencasts on how to deploy both version of CSRF Protector individually ===&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Create two screencasts, one for each, which explains how to deploy CSRF Protector in your existing web application.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Screencast&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Screencasts explaining how to use CSRF Protector with existing web applications.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Experience with php, HTML, and Apache (for mod_csrfprotector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Code_Kids_2015_Ideas&amp;diff=184999</id>
		<title>OWASP Code Kids 2015 Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Code_Kids_2015_Ideas&amp;diff=184999"/>
				<updated>2014-11-09T14:14:01Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: /* OWASP ZAP Task 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Task Categories=&lt;br /&gt;
&lt;br /&gt;
The tasks are grouped into the categories described below. '''Please make sure each task is assigned a category.'''&lt;br /&gt;
&lt;br /&gt;
'''Code:''' Tasks related to writing or refactoring code.&lt;br /&gt;
&lt;br /&gt;
'''Documentation/Training:''' Tasks related to creating/editing documents and helping others learn more&lt;br /&gt;
&lt;br /&gt;
'''Outreach/Research:''' Tasks related to community management, outreach/marketing, or studying problems and recommending solutions&lt;br /&gt;
&lt;br /&gt;
'''Quality Assurance:''' Tasks related to testing and ensuring code is of high quality&lt;br /&gt;
&lt;br /&gt;
'''User Interface:''' Tasks related to user experience research or user interface design and interaction&lt;br /&gt;
&lt;br /&gt;
== OWASP ZAP ==&lt;br /&gt;
&lt;br /&gt;
=== OWASP ZAP Task 1 ===&lt;br /&gt;
&lt;br /&gt;
'''Brief description:'''&lt;br /&gt;
&lt;br /&gt;
Write a blogpost about CMS-scnanning techniques, this will include web-apps fingerprinting methods, vulnerability checking using on-line databases and a survey of existing tools.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Documentation &lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
A professional blogpost that will be published on OWASP website &lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Good understanding of web security basics, Knowledge on how do CMSs work and good writing skills.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Abdelhadi&lt;br /&gt;
&lt;br /&gt;
== OWASP OWTF ==&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF Task 1 ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Task description&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Eg. Code Category&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Describe the expected results of the task&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' XXXXXX&lt;br /&gt;
&lt;br /&gt;
== OWASP WIKI ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1: Latam Tour 2015 logo ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Design a new logo for the Latam Tour 2015. The logo must resemble previous editions of the Tour and represent the Latin America region. It would be better if the new logo is based on the OWASP logo. As a reference, here is the Latam Tour 2014 Logo:&lt;br /&gt;
&lt;br /&gt;
https://www.owasp.org/images/f/f3/OWASP_Latam_Tour_Logo_2014.png&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Design&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Latam Tour 2015 logo in either psd or jpeg format.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with Photoshop/GIMP or any other designing software.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Fabio Cerullo&lt;br /&gt;
&lt;br /&gt;
== OWASP WebGoatPHP ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1: Implement &amp;quot;remember me&amp;quot; feature ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Implement a secure &amp;quot;Remember me&amp;quot; feature in user login form using cookies. At present the remember me check box is present in the form but it does nothing.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
If user checks the &amp;quot;remember me&amp;quot; check box when logging in, then the user will not be required to login every time he visits the application within X days.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Reference:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/shivamdixit/WebGoatPHP/issues/45&lt;br /&gt;
&lt;br /&gt;
'''Code:'''&lt;br /&gt;
&lt;br /&gt;
app/control/user/login.php&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Make workshop mode dashboard responsive ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
In workshop mode of the application, the side panel of admin dashboard is not responsive i.e it does not fits well in smaller size screen resolutions. If the screen size is small the side panel should shrink into a smaller panel preferably at the bottom of the application.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Panel perfectly adjusts on small screen resolutions.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
CSS (media queries), HTML&lt;br /&gt;
&lt;br /&gt;
'''Reference:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/shivamdixit/WebGoatPHP/issues/26&lt;br /&gt;
&lt;br /&gt;
'''Code:'''&lt;br /&gt;
&lt;br /&gt;
style/dashboard.css&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 3: WebGoatPHP logo ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Design a new logo for the application. The logo must resemble various aspects of the application. It would be better if the new logo is based on the OWASP logo. &lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Design&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
WebGoatPHP logo in either psd or jpeg format.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with Photoshop/GIMP or any other designing software.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
=== Task 4: WebGoatPHP deployment screencast ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Deploy the application on the local server without using vagrant and record a screencast of the process. Upload to a video streaming service and comment link on the melange for mentor to review.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
The screencast should clearly contain all the steps required for the deployment and how to troubleshoot most common errors in the whole process.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with an operating system (Linux/Windows)&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 5: Create a SQL injection challenge ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Single user mode of WebGoatPHP consist of set of challenges. These challenges simulate various real world security vulnerabilities in web applications. You have to add a challenge under category &amp;quot;Injection Attacks&amp;quot; which simulates a SQL injection vulnerability in single user mode. The input data must be of type string and the challenge should mimic some real world scenario.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
A challenge which helps user understand SQLi vulnerability by allowing him to exploit the vulnerability.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Reference:'''&lt;br /&gt;
&lt;br /&gt;
https://www.owasp.org/index.php/SQL_Injection&lt;br /&gt;
&lt;br /&gt;
https://github.com/shivamdixit/WebGoatPHP/blob/master/README.md#adding-a-lessonchallenge&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 6-20: WebGoatPHP challenges screencast series ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
In this task you are required to record screencast of how to solve a particular single user mode challenge. The screencast should start by providing an overview of the vulnerability that will be exploited, then step by step instructions on how to exploit the vulnerability. The screencast should conclude on a note that how to avoid this vulnerability in your application. The length of the screencast would vary according to the challenge but it should neither be too long nor too short.&lt;br /&gt;
&lt;br /&gt;
Task    - Screencast of challenge.....&lt;br /&gt;
&lt;br /&gt;
Task 6  - HTTP Basic&lt;br /&gt;
&lt;br /&gt;
Task 7  - Using Access Control Matrix&lt;br /&gt;
&lt;br /&gt;
Task 8  - Business Layer Access Control&lt;br /&gt;
&lt;br /&gt;
Task 9  - Path Based Access Control&lt;br /&gt;
&lt;br /&gt;
Task 10 - Same Origin Policy Protection&lt;br /&gt;
&lt;br /&gt;
Task 11 - Forgot Password&lt;br /&gt;
&lt;br /&gt;
Task 12 - Discover clues in HTML&lt;br /&gt;
&lt;br /&gt;
Task 13 - JS Obfuscation&lt;br /&gt;
&lt;br /&gt;
Task 14 - XSS 1 (Reflected)&lt;br /&gt;
&lt;br /&gt;
Task 15 - XSS 2 (Stored)&lt;br /&gt;
&lt;br /&gt;
Task 16 - XSS 3 (DOM)&lt;br /&gt;
&lt;br /&gt;
Task 17 - Fail Open Authentication&lt;br /&gt;
&lt;br /&gt;
Task 18 - Log Spoofing&lt;br /&gt;
&lt;br /&gt;
Task 19 - Numeric SQL Injection&lt;br /&gt;
&lt;br /&gt;
Task 20 - XPATH injection&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
A screencast explaining the vulnerability involved in a particular challenge.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
== OWASP CSRF Protector ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1-2: CSRF Protector logo ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Design logos for the for CSRF Protector Project, possibly two versions one for php library and another one for Apache module.&lt;br /&gt;
Both of them should resemble OWASP logo.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Design&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
OWASP CSRF Protector logo in either psd or jpeg format.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with Photoshop/GIMP or any other designing software.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;br /&gt;
&lt;br /&gt;
=== Task 3: Porting CSRF Protector PHP Wiki (from Github) to OWASP Wiki ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Currently we have wiki on how to use and deploy, at github. The task is to port them to OWASP Wiki as well so that it can be accessed directly.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Documentation&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Wiki for CSRF Protector php library in OWASP.ORG .&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with wiki.&lt;br /&gt;
&lt;br /&gt;
'''Reference'''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/mebjas/CSRF-Protector-PHP/wiki Github wiki for CSRF Protector php]&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;br /&gt;
&lt;br /&gt;
=== Task 4: Porting mod_csrfprotector Wiki (from Github) to OWASP Wiki ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Currently we have wiki on how to use and deploy, at github. The task is to port them to OWASP Wiki as well so that it can be accessed directly.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Documentation&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Wiki for mod_csrfprotector library in OWASP.ORG .&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with wiki.&lt;br /&gt;
&lt;br /&gt;
'''References'''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/mebjas/mod_csrfprotector/wiki Github wiki for mod_csrfprotector]&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;br /&gt;
&lt;br /&gt;
=== Task 5-6: Create screencasts on how to deploy both version of CSRF Protector individually ===&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Create two screencasts, one for each, which explains how to deploy CSRF Protector in your existing web application.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Screencast&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Screencasts explaining how to use CSRF Protector with existing web applications.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Experience with php, HTML, and Apache (for mod_csrfprotector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Code_Kids_2015_Ideas&amp;diff=184998</id>
		<title>OWASP Code Kids 2015 Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Code_Kids_2015_Ideas&amp;diff=184998"/>
				<updated>2014-11-09T14:13:05Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: /* OWASP ZAP Task 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Task Categories=&lt;br /&gt;
&lt;br /&gt;
The tasks are grouped into the categories described below. '''Please make sure each task is assigned a category.'''&lt;br /&gt;
&lt;br /&gt;
'''Code:''' Tasks related to writing or refactoring code.&lt;br /&gt;
&lt;br /&gt;
'''Documentation/Training:''' Tasks related to creating/editing documents and helping others learn more&lt;br /&gt;
&lt;br /&gt;
'''Outreach/Research:''' Tasks related to community management, outreach/marketing, or studying problems and recommending solutions&lt;br /&gt;
&lt;br /&gt;
'''Quality Assurance:''' Tasks related to testing and ensuring code is of high quality&lt;br /&gt;
&lt;br /&gt;
'''User Interface:''' Tasks related to user experience research or user interface design and interaction&lt;br /&gt;
&lt;br /&gt;
== OWASP ZAP ==&lt;br /&gt;
&lt;br /&gt;
=== OWASP ZAP Task 1 ===&lt;br /&gt;
&lt;br /&gt;
'''Task description:'''&lt;br /&gt;
&lt;br /&gt;
Write a blogpost about CMS-scnanning techniques, this will include web-apps fingerprinting methods, vulnerability checking using on-line databases and a survey of existing tools.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Documentation &lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
A professional blogpost that will be published on OWASP website &lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Good understanding of web security basics, Knowledge on how do CMSs work and good writing skills.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Abdelhadi&lt;br /&gt;
&lt;br /&gt;
== OWASP OWTF ==&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF Task 1 ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Task description&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Eg. Code Category&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Describe the expected results of the task&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' XXXXXX&lt;br /&gt;
&lt;br /&gt;
== OWASP WIKI ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1: Latam Tour 2015 logo ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Design a new logo for the Latam Tour 2015. The logo must resemble previous editions of the Tour and represent the Latin America region. It would be better if the new logo is based on the OWASP logo. As a reference, here is the Latam Tour 2014 Logo:&lt;br /&gt;
&lt;br /&gt;
https://www.owasp.org/images/f/f3/OWASP_Latam_Tour_Logo_2014.png&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Design&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Latam Tour 2015 logo in either psd or jpeg format.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with Photoshop/GIMP or any other designing software.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Fabio Cerullo&lt;br /&gt;
&lt;br /&gt;
== OWASP WebGoatPHP ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1: Implement &amp;quot;remember me&amp;quot; feature ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Implement a secure &amp;quot;Remember me&amp;quot; feature in user login form using cookies. At present the remember me check box is present in the form but it does nothing.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
If user checks the &amp;quot;remember me&amp;quot; check box when logging in, then the user will not be required to login every time he visits the application within X days.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Reference:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/shivamdixit/WebGoatPHP/issues/45&lt;br /&gt;
&lt;br /&gt;
'''Code:'''&lt;br /&gt;
&lt;br /&gt;
app/control/user/login.php&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Make workshop mode dashboard responsive ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
In workshop mode of the application, the side panel of admin dashboard is not responsive i.e it does not fits well in smaller size screen resolutions. If the screen size is small the side panel should shrink into a smaller panel preferably at the bottom of the application.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Panel perfectly adjusts on small screen resolutions.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
CSS (media queries), HTML&lt;br /&gt;
&lt;br /&gt;
'''Reference:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/shivamdixit/WebGoatPHP/issues/26&lt;br /&gt;
&lt;br /&gt;
'''Code:'''&lt;br /&gt;
&lt;br /&gt;
style/dashboard.css&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 3: WebGoatPHP logo ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Design a new logo for the application. The logo must resemble various aspects of the application. It would be better if the new logo is based on the OWASP logo. &lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Design&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
WebGoatPHP logo in either psd or jpeg format.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with Photoshop/GIMP or any other designing software.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
=== Task 4: WebGoatPHP deployment screencast ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Deploy the application on the local server without using vagrant and record a screencast of the process. Upload to a video streaming service and comment link on the melange for mentor to review.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
The screencast should clearly contain all the steps required for the deployment and how to troubleshoot most common errors in the whole process.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with an operating system (Linux/Windows)&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 5: Create a SQL injection challenge ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Single user mode of WebGoatPHP consist of set of challenges. These challenges simulate various real world security vulnerabilities in web applications. You have to add a challenge under category &amp;quot;Injection Attacks&amp;quot; which simulates a SQL injection vulnerability in single user mode. The input data must be of type string and the challenge should mimic some real world scenario.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
A challenge which helps user understand SQLi vulnerability by allowing him to exploit the vulnerability.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Reference:'''&lt;br /&gt;
&lt;br /&gt;
https://www.owasp.org/index.php/SQL_Injection&lt;br /&gt;
&lt;br /&gt;
https://github.com/shivamdixit/WebGoatPHP/blob/master/README.md#adding-a-lessonchallenge&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 6-20: WebGoatPHP challenges screencast series ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
In this task you are required to record screencast of how to solve a particular single user mode challenge. The screencast should start by providing an overview of the vulnerability that will be exploited, then step by step instructions on how to exploit the vulnerability. The screencast should conclude on a note that how to avoid this vulnerability in your application. The length of the screencast would vary according to the challenge but it should neither be too long nor too short.&lt;br /&gt;
&lt;br /&gt;
Task    - Screencast of challenge.....&lt;br /&gt;
&lt;br /&gt;
Task 6  - HTTP Basic&lt;br /&gt;
&lt;br /&gt;
Task 7  - Using Access Control Matrix&lt;br /&gt;
&lt;br /&gt;
Task 8  - Business Layer Access Control&lt;br /&gt;
&lt;br /&gt;
Task 9  - Path Based Access Control&lt;br /&gt;
&lt;br /&gt;
Task 10 - Same Origin Policy Protection&lt;br /&gt;
&lt;br /&gt;
Task 11 - Forgot Password&lt;br /&gt;
&lt;br /&gt;
Task 12 - Discover clues in HTML&lt;br /&gt;
&lt;br /&gt;
Task 13 - JS Obfuscation&lt;br /&gt;
&lt;br /&gt;
Task 14 - XSS 1 (Reflected)&lt;br /&gt;
&lt;br /&gt;
Task 15 - XSS 2 (Stored)&lt;br /&gt;
&lt;br /&gt;
Task 16 - XSS 3 (DOM)&lt;br /&gt;
&lt;br /&gt;
Task 17 - Fail Open Authentication&lt;br /&gt;
&lt;br /&gt;
Task 18 - Log Spoofing&lt;br /&gt;
&lt;br /&gt;
Task 19 - Numeric SQL Injection&lt;br /&gt;
&lt;br /&gt;
Task 20 - XPATH injection&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
A screencast explaining the vulnerability involved in a particular challenge.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
== OWASP CSRF Protector ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1-2: CSRF Protector logo ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Design logos for the for CSRF Protector Project, possibly two versions one for php library and another one for Apache module.&lt;br /&gt;
Both of them should resemble OWASP logo.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Design&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
OWASP CSRF Protector logo in either psd or jpeg format.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with Photoshop/GIMP or any other designing software.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;br /&gt;
&lt;br /&gt;
=== Task 3: Porting CSRF Protector PHP Wiki (from Github) to OWASP Wiki ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Currently we have wiki on how to use and deploy, at github. The task is to port them to OWASP Wiki as well so that it can be accessed directly.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Documentation&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Wiki for CSRF Protector php library in OWASP.ORG .&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with wiki.&lt;br /&gt;
&lt;br /&gt;
'''Reference'''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/mebjas/CSRF-Protector-PHP/wiki Github wiki for CSRF Protector php]&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;br /&gt;
&lt;br /&gt;
=== Task 4: Porting mod_csrfprotector Wiki (from Github) to OWASP Wiki ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Currently we have wiki on how to use and deploy, at github. The task is to port them to OWASP Wiki as well so that it can be accessed directly.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Documentation&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Wiki for mod_csrfprotector library in OWASP.ORG .&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with wiki.&lt;br /&gt;
&lt;br /&gt;
'''References'''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/mebjas/mod_csrfprotector/wiki Github wiki for mod_csrfprotector]&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;br /&gt;
&lt;br /&gt;
=== Task 5-6: Create screencasts on how to deploy both version of CSRF Protector individually ===&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Create two screencasts, one for each, which explains how to deploy CSRF Protector in your existing web application.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Screencast&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Screencasts explaining how to use CSRF Protector with existing web applications.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Experience with php, HTML, and Apache (for mod_csrfprotector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Code_Kids_2015_Ideas&amp;diff=184997</id>
		<title>OWASP Code Kids 2015 Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Code_Kids_2015_Ideas&amp;diff=184997"/>
				<updated>2014-11-09T14:12:12Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: /* OWASP ZAP Task 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Task Categories=&lt;br /&gt;
&lt;br /&gt;
The tasks are grouped into the categories described below. '''Please make sure each task is assigned a category.'''&lt;br /&gt;
&lt;br /&gt;
'''Code:''' Tasks related to writing or refactoring code.&lt;br /&gt;
&lt;br /&gt;
'''Documentation/Training:''' Tasks related to creating/editing documents and helping others learn more&lt;br /&gt;
&lt;br /&gt;
'''Outreach/Research:''' Tasks related to community management, outreach/marketing, or studying problems and recommending solutions&lt;br /&gt;
&lt;br /&gt;
'''Quality Assurance:''' Tasks related to testing and ensuring code is of high quality&lt;br /&gt;
&lt;br /&gt;
'''User Interface:''' Tasks related to user experience research or user interface design and interaction&lt;br /&gt;
&lt;br /&gt;
== OWASP ZAP ==&lt;br /&gt;
&lt;br /&gt;
=== OWASP ZAP Task 1 ===&lt;br /&gt;
&lt;br /&gt;
Write a blogpost about CMS-scnanning techniques, this will include web-apps fingerprinting methods, vulnerability checking using on-line databases and a survey of existing tools.&lt;br /&gt;
&lt;br /&gt;
Task description&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Documentation &lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
A professional blogpost that will be published on OWASP website &lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Good understanding of web security basics, Knowledge on how do CMSs work and good writing skills.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Abdelhadi&lt;br /&gt;
&lt;br /&gt;
== OWASP OWTF ==&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF Task 1 ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Task description&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Eg. Code Category&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Describe the expected results of the task&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' XXXXXX&lt;br /&gt;
&lt;br /&gt;
== OWASP WIKI ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1: Latam Tour 2015 logo ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Design a new logo for the Latam Tour 2015. The logo must resemble previous editions of the Tour and represent the Latin America region. It would be better if the new logo is based on the OWASP logo. As a reference, here is the Latam Tour 2014 Logo:&lt;br /&gt;
&lt;br /&gt;
https://www.owasp.org/images/f/f3/OWASP_Latam_Tour_Logo_2014.png&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Design&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Latam Tour 2015 logo in either psd or jpeg format.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with Photoshop/GIMP or any other designing software.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Fabio Cerullo&lt;br /&gt;
&lt;br /&gt;
== OWASP WebGoatPHP ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1: Implement &amp;quot;remember me&amp;quot; feature ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Implement a secure &amp;quot;Remember me&amp;quot; feature in user login form using cookies. At present the remember me check box is present in the form but it does nothing.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
If user checks the &amp;quot;remember me&amp;quot; check box when logging in, then the user will not be required to login every time he visits the application within X days.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Reference:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/shivamdixit/WebGoatPHP/issues/45&lt;br /&gt;
&lt;br /&gt;
'''Code:'''&lt;br /&gt;
&lt;br /&gt;
app/control/user/login.php&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 2: Make workshop mode dashboard responsive ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
In workshop mode of the application, the side panel of admin dashboard is not responsive i.e it does not fits well in smaller size screen resolutions. If the screen size is small the side panel should shrink into a smaller panel preferably at the bottom of the application.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Panel perfectly adjusts on small screen resolutions.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
CSS (media queries), HTML&lt;br /&gt;
&lt;br /&gt;
'''Reference:'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/shivamdixit/WebGoatPHP/issues/26&lt;br /&gt;
&lt;br /&gt;
'''Code:'''&lt;br /&gt;
&lt;br /&gt;
style/dashboard.css&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 3: WebGoatPHP logo ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Design a new logo for the application. The logo must resemble various aspects of the application. It would be better if the new logo is based on the OWASP logo. &lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Design&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
WebGoatPHP logo in either psd or jpeg format.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with Photoshop/GIMP or any other designing software.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
=== Task 4: WebGoatPHP deployment screencast ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Deploy the application on the local server without using vagrant and record a screencast of the process. Upload to a video streaming service and comment link on the melange for mentor to review.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
The screencast should clearly contain all the steps required for the deployment and how to troubleshoot most common errors in the whole process.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with an operating system (Linux/Windows)&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 5: Create a SQL injection challenge ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Single user mode of WebGoatPHP consist of set of challenges. These challenges simulate various real world security vulnerabilities in web applications. You have to add a challenge under category &amp;quot;Injection Attacks&amp;quot; which simulates a SQL injection vulnerability in single user mode. The input data must be of type string and the challenge should mimic some real world scenario.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
A challenge which helps user understand SQLi vulnerability by allowing him to exploit the vulnerability.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Reference:'''&lt;br /&gt;
&lt;br /&gt;
https://www.owasp.org/index.php/SQL_Injection&lt;br /&gt;
&lt;br /&gt;
https://github.com/shivamdixit/WebGoatPHP/blob/master/README.md#adding-a-lessonchallenge&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Task 6-20: WebGoatPHP challenges screencast series ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
In this task you are required to record screencast of how to solve a particular single user mode challenge. The screencast should start by providing an overview of the vulnerability that will be exploited, then step by step instructions on how to exploit the vulnerability. The screencast should conclude on a note that how to avoid this vulnerability in your application. The length of the screencast would vary according to the challenge but it should neither be too long nor too short.&lt;br /&gt;
&lt;br /&gt;
Task    - Screencast of challenge.....&lt;br /&gt;
&lt;br /&gt;
Task 6  - HTTP Basic&lt;br /&gt;
&lt;br /&gt;
Task 7  - Using Access Control Matrix&lt;br /&gt;
&lt;br /&gt;
Task 8  - Business Layer Access Control&lt;br /&gt;
&lt;br /&gt;
Task 9  - Path Based Access Control&lt;br /&gt;
&lt;br /&gt;
Task 10 - Same Origin Policy Protection&lt;br /&gt;
&lt;br /&gt;
Task 11 - Forgot Password&lt;br /&gt;
&lt;br /&gt;
Task 12 - Discover clues in HTML&lt;br /&gt;
&lt;br /&gt;
Task 13 - JS Obfuscation&lt;br /&gt;
&lt;br /&gt;
Task 14 - XSS 1 (Reflected)&lt;br /&gt;
&lt;br /&gt;
Task 15 - XSS 2 (Stored)&lt;br /&gt;
&lt;br /&gt;
Task 16 - XSS 3 (DOM)&lt;br /&gt;
&lt;br /&gt;
Task 17 - Fail Open Authentication&lt;br /&gt;
&lt;br /&gt;
Task 18 - Log Spoofing&lt;br /&gt;
&lt;br /&gt;
Task 19 - Numeric SQL Injection&lt;br /&gt;
&lt;br /&gt;
Task 20 - XPATH injection&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
A screencast explaining the vulnerability involved in a particular challenge.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Shivam Dixit&lt;br /&gt;
&lt;br /&gt;
== OWASP CSRF Protector ==&lt;br /&gt;
&lt;br /&gt;
=== Task 1-2: CSRF Protector logo ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Design logos for the for CSRF Protector Project, possibly two versions one for php library and another one for Apache module.&lt;br /&gt;
Both of them should resemble OWASP logo.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Design&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
OWASP CSRF Protector logo in either psd or jpeg format.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with Photoshop/GIMP or any other designing software.&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;br /&gt;
&lt;br /&gt;
=== Task 3: Porting CSRF Protector PHP Wiki (from Github) to OWASP Wiki ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Currently we have wiki on how to use and deploy, at github. The task is to port them to OWASP Wiki as well so that it can be accessed directly.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Documentation&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Wiki for CSRF Protector php library in OWASP.ORG .&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with wiki.&lt;br /&gt;
&lt;br /&gt;
'''Reference'''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/mebjas/CSRF-Protector-PHP/wiki Github wiki for CSRF Protector php]&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;br /&gt;
&lt;br /&gt;
=== Task 4: Porting mod_csrfprotector Wiki (from Github) to OWASP Wiki ===&lt;br /&gt;
&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Currently we have wiki on how to use and deploy, at github. The task is to port them to OWASP Wiki as well so that it can be accessed directly.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Documentation&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Wiki for mod_csrfprotector library in OWASP.ORG .&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Familiarity with wiki.&lt;br /&gt;
&lt;br /&gt;
'''References'''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/mebjas/mod_csrfprotector/wiki Github wiki for mod_csrfprotector]&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;br /&gt;
&lt;br /&gt;
=== Task 5-6: Create screencasts on how to deploy both version of CSRF Protector individually ===&lt;br /&gt;
'''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Create two screencasts, one for each, which explains how to deploy CSRF Protector in your existing web application.&lt;br /&gt;
&lt;br /&gt;
'''Task Category:'''&lt;br /&gt;
&lt;br /&gt;
Screencast&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
Screencasts explaining how to use CSRF Protector with existing web applications.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Experience with php, HTML, and Apache (for mod_csrfprotector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors:''' Minhaz&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155980</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155980"/>
				<updated>2013-07-24T23:53:22Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
    Status: in writing (24-07-2013)&lt;br /&gt;
    WebApp Scanner on GIT: https://github.com/abdelhadi-azouni/zap-cmss-extension&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what CMS uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Aggressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerabilities Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Transition to WebApp Scanner''' ==&lt;br /&gt;
 &lt;br /&gt;
after pushing the research of fingerprinting techniques, and advanced in detailed design, it is apparent that is more appropriate and useful to go wider, and work on web applications in general and not only CMSs .&lt;br /&gt;
I spoke with Simon about it, and he was pleased with the proposal, so I started the implementation of the web application finger printer core methods based on existing tools such as BlindElephant and Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Application fingerprinting''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
is to look in the target application (HTML, HTTP headers content ...) patterns that determine how likely or definite name and version of the technology used to make this application, passive research does not change anything in requests nor in content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''Used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
web page content analysis: is to look for patterns in the HTML document, the scan tool will download the web page and perform patterns search using regex, usually from predefined lists that are updated. Several patterns may indicate the technology used to make the application: Here are the indicators:&lt;br /&gt;
&lt;br /&gt;
    '''- The HTML content itself:''' by performing specific regex patterns on the page content, we can determine with high probability the technology used to build the application, for example:the pattern : &amp;quot;Powered by (: &amp;lt;a href=[^&amp;gt;] + cs-cart \ \ com | CS-Cart?)&amp;quot;..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''- The meta tag Generator:''' for a given app, if the following regex pattern performed :        &amp;quot;? WordPress ([. \ \ D] +) \ \; Version: \ \ 1&amp;quot;  on the content (“content”) of the meta tag named : &amp;quot;generator&amp;quot;, then if successful research therefore the application is, with high probability, carried out with the indicated version of WordPress.&lt;br /&gt;
&lt;br /&gt;
most WordPress websites can be identified by the meta HTML tag, e.g. &amp;lt;meta name=&amp;quot;generator&amp;quot; content=&amp;quot;WordPress 2.6.5&amp;quot;&amp;gt;, but a minority of WordPress websites remove this identifying tag but this does not thwart our scanner, other tests are implemented to reveal a Wordpress application.&lt;br /&gt;
&lt;br /&gt;
- The script tag: its contents may contain the name of the implementation technology, the search is always done with regex patterns.&lt;br /&gt;
&lt;br /&gt;
This method is suitable for most applications and gives good results in a very acceptable time, but it is sensitive to changes in the code of the page code sensitive, as it is always possible to remove these indicators.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
among tools the most efficient and best known tools that uses passive research: Wappalazer, it was originally a Firefox and Chrome extension in javascript, but It was then rewritten in several languages like python. Wappalyzer uses a long list of regex structured by type of application and type of pattern (name tag, headers ...) in a JSON file.&lt;br /&gt;
&lt;br /&gt;
home page : http://wappalyzer.com/&lt;br /&gt;
	    GIT repo:  https://github.com/ElbertF/Wappalyzer&lt;br /&gt;
&lt;br /&gt;
WhatWeb another webapps fingerprinting tool which also uses the passive research, but not so deep as Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
home page:  http://www.morningstarsecurity.com/research/whatweb&lt;br /&gt;
GIT repo: https://github.com/urbanadventurer/WhatWeb&lt;br /&gt;
Here is a brief comparison to other fingerprinting tools:&lt;br /&gt;
https://github.com/urbanadventurer/WhatWeb/wiki/Related-Projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
we implemented a similar code to Wappalyzer and it uses the same JSON          list-of-regex file, our tool connect firstly to the target’s URL, then it downloads a web DOM document, it contain the HTML content of the page, than the program applies regex patterns (by type), by reading them once from the JSON file into an object of JsonObject class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    == '''perspectives:''' ==&lt;br /&gt;
    implement other methods of passive search, those present in Whatweb: access to htaccess&lt;br /&gt;
&lt;br /&gt;
dependencies : 	json-simple-1.1.1 : JSON parser, &lt;br /&gt;
                jsoup1.7.2 : HTML parser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
consists on Bruteforcing target host in search of indicators files, the presence of such a file reveals a certain technology or even its version as well, but in most cases, the version is set after comparing the MD5 digest of the content of the file found on the host with the present in a pre-built database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File and Folder Presence (HTTP response codes): This approach doesn't download the page however it starts looking for obvious trails of an application by directly hitting the URL and in course identifying found and not found application list. In starting days of internet this was easy, just download headers and see if it’s 200 OK or 404 not found and you are done. &lt;br /&gt;
&lt;br /&gt;
    [[File:404.png]]&lt;br /&gt;
&lt;br /&gt;
However in current scenario, people have been putting up custom 404 Pages and are actually sending 200 OK in case the page is not found. This complicates the efforts and hence the new approach is as follows.&lt;br /&gt;
Download default page 200 OK.&lt;br /&gt;
Download a file which is guaranteed to be non-existing then mark it as a template for 404 and then proceed with detection logic.&lt;br /&gt;
Based on this assumption and knowledge this kind of tools start looking for known files and folders on a website and try to determine the exact application name and version. an example of such scenario would be&lt;br /&gt;
    wp-login.php =&amp;gt; wordpress&lt;br /&gt;
    /owa/ =&amp;gt; Microsoft outlook web frontend.&lt;br /&gt;
&lt;br /&gt;
    reference : http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
Checksum Based identification :This is relatively a newer approach and the most accurate one for now. &lt;br /&gt;
This Technique basically works on below pattern. &lt;br /&gt;
1) Create checksum for files locally and store them in DB &lt;br /&gt;
2) Download static file from remote server &lt;br /&gt;
3) Create the checksum&lt;br /&gt;
4) Compare with the checksum stored in db and identify the version  &lt;br /&gt;
One of the best implementation of this technique is BlindElephant &lt;br /&gt;
&lt;br /&gt;
    reference:  http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BlinElephant: among the most robust implementations Checksum Based identification. It attempts to discover the version of a (known) web application by comparing static files at known locations against precomputed hashes for versions of those files in all all available releases. The technique is fast, low-bandwidth, non-invasive, generic, and highly automatable. BlinElephant is absolutely Checksum verification oriented&lt;br /&gt;
home page:  http://blindelephant.sourceforge.net/&lt;br /&gt;
Sourceforge repo: http://sourceforge.net/projects/blindelephant/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a similar code to BlindElephant (which is in python), using the same updated database (available on its Sourceforge repo). The files of the database are PKL format which is a Python specific format , it’s a Python object serialization format. So in order to process this data in Java, we needed to convert it to a universal format, so we chosen to convert it into XML files using a small Python script. &lt;br /&gt;
every webapp has its own XML file, each XML file has the following format:&lt;br /&gt;
&lt;br /&gt;
the resulting output (name and version of the webapp or technology) is discovered according to the following schema:&lt;br /&gt;
&lt;br /&gt;
    [[File:BlindElephant.png]]&lt;br /&gt;
    As described by author at its home page, The Static File Fingerprinting Approach in One Picture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dependencies : 	jdom-2.0.5: un parser XML, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Component enumeration and fingerprinting''' ==&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
the enumeration Is to provide a list of all components, modules, plugins or themes related to the target’s application technology . The fingerprinting is to detect the version of the module already detected, the two processes (enumeration and fingerprinting) are generally parallel: to each detected component, it will be applied the fingerprinting.&lt;br /&gt;
&lt;br /&gt;
why enumerate and fingerprint plugins?&lt;br /&gt;
the enumeration can detect the presence of vulnerable plugins and / or components, which allows the attacker, or pen-tester, directly targeting known vulnerabilities and fix them.&lt;br /&gt;
&lt;br /&gt;
This process is, especially, very effective in CMSs case. In fact, most CMSs are based on plugins and extensions system,the ones they are vulnerable are generally well known and classified into vulnerability databases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
     pending &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existent tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      DPscan for Drupal (https://github.com/cervoise/DPScan)&lt;br /&gt;
     (		&lt;br /&gt;
		our implementation:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
aggressive research (applied to components and extensions listing) is to Brute Force components and extensions paths in the URL of the target’s application, using a path lists. The result (presence or absence of such a component) is obtained by analyzing the returned HTTP code.&lt;br /&gt;
after you extract the name of the existing component in the application, we need to identify the version of the component, this process is not really based on general technique, we are going to use a variety of techniques like fetching in the readme file. &lt;br /&gt;
Example: if the README file is present and accessible in a WordPress component, you can easily open and read the Stable tag part, obtained by applying the regex pattern &amp;quot;Stable tag: (+.)&amp;quot; on this file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
bruteforce site content by using a list of paths of known components. This is for the detection of plugin itself. To detect its version, varied methods are possible and depends on the component and the webapp technology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existent tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OWASP ODZ MultiCMS Scanner (https://www.owasp.org/index.php/OWASP_Odz_MultiCMSScanner), (https://github.com/islamoc/odz)&lt;br /&gt;
the majority of enumeration tools are specific, eg Joomscan OWASP for the Joomla CMS (http://sourceforge.net/projects/joomscan/), WordPress WPscan (http://wpscan.org/) and WordPress also Plecost  (https://code.google.com/p/plecost/)&lt;br /&gt;
Some tools work on a combination of CMSs or/and webapps. Eg: &lt;br /&gt;
&lt;br /&gt;
- CMS-explorer: written in Perl, designed to reveal the the specific modules, plugins, components and themes that various CMS driven web sites are running. CMS Explorer currently supports module/theme discovery with the following products:&lt;br /&gt;
Drupal&lt;br /&gt;
Wordpress&lt;br /&gt;
Joomla!&lt;br /&gt;
Mambo&lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/cms-explorer/&lt;br /&gt;
&lt;br /&gt;
- WebSorrow: a perl based tool for misconfiguration, version detection, enumeration, and server information scanning. It's entirely focused on Enumeration and collecting Info on the target server. Web-Sorrow is a &amp;quot;safe to run&amp;quot; program, meaning it is not designed to be an exploit or perform any harmful attacks. &lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/web-sorrow/&lt;br /&gt;
&lt;br /&gt;
'''CMS-explorer vs WebSorrow'''&lt;br /&gt;
&lt;br /&gt;
Concerning database, they use the same list of plugins, CMS-explorer also uses a list of themes and WebSorrow not. Both deal Joomla, WordPress and Drupal. WebSorrow make ​​more detection and work. Both looks like they use the “fuzzDB” database, which is updated and contains many other files of other types of audits.&lt;br /&gt;
	&lt;br /&gt;
    fuzzDB project home on Sourceforge: https://code.google.com/p/fuzzdb/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
     passive search not implemented yet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for aggressive research, we hesitated between using existing databases and creating  our own. Then, we decided to use the existing ones, but combining files between various existing tools, so we decided to implement a modular system: for each CMS or webapp, we create a module (of component detection) because we figured out that the effort to unify the formats of databases is more than creating a module for each Webapp , in addition to the specific treatment in the extraction of each Webapp version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Listing vulnerabilities''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques ''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other sources&lt;br /&gt;
very useful :&lt;br /&gt;
    https://github.com/urbanadventurer/WhatWeb/wiki/How-to-develop-WhatWeb-plugins&lt;br /&gt;
    http://resources.infosecinstitute.com/prototype-model-web-application-fingerprinting/&lt;br /&gt;
&lt;br /&gt;
    WebApp Scanner on GIT : https://github.com/abdelhadi-azouni/zap-cmss-extension&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155979</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155979"/>
				<updated>2013-07-24T23:45:36Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
    Status: in writing (24-07-2013)&lt;br /&gt;
    WebApp Scanner on GIT: https://github.com/abdelhadi-azouni/zap-cmss-extension&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what CMS uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Transition to WebApp Scanner''' ==&lt;br /&gt;
 &lt;br /&gt;
after pushing the research of fingerprinting techniques, and advanced in detailed design, it is apparent that is more appropriate and useful to go wider, and work on web applications in general and not only CMSs .&lt;br /&gt;
I spoke with Simon about it, and he was pleased with the proposal, so I started the implementation of the web application finger printer core methods based on existing tools such as BlindElephant and Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Application fingerprinting''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
is to look in the target application (HTML, HTTP headers content ...) patterns that determine how likely or definite name and version of the technology used to make this application, passive research does not change anything in requests nor in content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''Used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
web page content analysis: is to look for patterns in the HTML document, the scan tool will download the web page and perform patterns search using regex, usually from predefined lists that are updated. Several patterns may indicate the technology used to make the application: Here are the indicators:&lt;br /&gt;
&lt;br /&gt;
    '''- The HTML content itself:''' by performing specific regex patterns on the page content, we can determine with high probability the technology used to build the application, for example:the pattern : &amp;quot;Powered by (: &amp;lt;a href=[^&amp;gt;] + cs-cart \ \ com | CS-Cart?)&amp;quot;..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''- The meta tag Generator:''' for a given app, if the following regex pattern performed :        &amp;quot;? WordPress ([. \ \ D] +) \ \; Version: \ \ 1&amp;quot;  on the content (“content”) of the meta tag named : &amp;quot;generator&amp;quot;, then if successful research therefore the application is, with high probability, carried out with the indicated version of WordPress.&lt;br /&gt;
&lt;br /&gt;
most WordPress websites can be identified by the meta HTML tag, e.g. &amp;lt;meta name=&amp;quot;generator&amp;quot; content=&amp;quot;WordPress 2.6.5&amp;quot;&amp;gt;, but a minority of WordPress websites remove this identifying tag but this does not thwart our scanner, other tests are implemented to reveal a Wordpress application.&lt;br /&gt;
&lt;br /&gt;
- The script tag: its contents may contain the name of the implementation technology, the search is always done with regex patterns.&lt;br /&gt;
&lt;br /&gt;
This method is suitable for most applications and gives good results in a very acceptable time, but it is sensitive to changes in the code of the page code sensitive, as it is always possible to remove these indicators.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
among tools the most efficient and best known tools that uses passive research: Wappalazer, it was originally a Firefox and Chrome extension in javascript, but It was then rewritten in several languages like python. Wappalyzer uses a long list of regex structured by type of application and type of pattern (name tag, headers ...) in a JSON file.&lt;br /&gt;
&lt;br /&gt;
home page : http://wappalyzer.com/&lt;br /&gt;
	    GIT repo:  https://github.com/ElbertF/Wappalyzer&lt;br /&gt;
&lt;br /&gt;
WhatWeb another webapps fingerprinting tool which also uses the passive research, but not so deep as Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
home page:  http://www.morningstarsecurity.com/research/whatweb&lt;br /&gt;
GIT repo: https://github.com/urbanadventurer/WhatWeb&lt;br /&gt;
Here is a brief comparison to other fingerprinting tools:&lt;br /&gt;
https://github.com/urbanadventurer/WhatWeb/wiki/Related-Projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
we implemented a similar code to Wappalyzer and it uses the same JSON          list-of-regex file, our tool connect firstly to the target’s URL, then it downloads a web DOM document, it contain the HTML content of the page, than the program applies regex patterns (by type), by reading them once from the JSON file into an object of JsonObject class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    == '''perspectives:''' ==&lt;br /&gt;
    implement other methods of passive search, those present in Whatweb: access to htaccess&lt;br /&gt;
&lt;br /&gt;
dependencies : 	json-simple-1.1.1 : JSON parser, &lt;br /&gt;
                jsoup1.7.2 : HTML parser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
consists on Bruteforcing target host in search of indicators files, the presence of such a file reveals a certain technology or even its version as well, but in most cases, the version is set after comparing the MD5 digest of the content of the file found on the host with the present in a pre-built database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File and Folder Presence (HTTP response codes): This approach doesn’t download the page however it starts looking for obvious trails of an application by directly hitting the URL and in course identifying found and not found application list. In starting days of internet this was easy, just download headers and see if it’s 200 OK or 404 not found and you are done. &lt;br /&gt;
&lt;br /&gt;
    [[File:404.png]]&lt;br /&gt;
&lt;br /&gt;
However in current scenario, people have been putting up custom 404 Pages and are actually sending 200 OK in case the page is not found. This complicates the efforts and hence the new approach is as follows.&lt;br /&gt;
Download default page 200 OK.&lt;br /&gt;
Download a file which is guaranteed to be non-existing then mark it as a template for 404 and then proceed with detection logic.&lt;br /&gt;
Based on this assumption and knowledge this kind of tools start looking for known files and folders on a website and try to determine the exact application name and version. an example of such scenario would be&lt;br /&gt;
    wp-login.php =&amp;gt; wordpress&lt;br /&gt;
    /owa/ =&amp;gt; Microsoft outlook web frontend.&lt;br /&gt;
&lt;br /&gt;
    reference : http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
Checksum Based identification :This is relatively a newer approach and the most accurate one for now. &lt;br /&gt;
This Technique basically works on below pattern. &lt;br /&gt;
1) Create checksum for files locally and store them in DB &lt;br /&gt;
2) Download static file from remote server &lt;br /&gt;
3) Create the checksum&lt;br /&gt;
4) Compare with the checksum stored in db and identify the version  &lt;br /&gt;
One of the best implementation of this technique is BlindElephant &lt;br /&gt;
&lt;br /&gt;
    reference:  http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BlinElephant: among the most robust implementations Checksum Based identification. It attempts to discover the version of a (known) web application by comparing static files at known locations against precomputed hashes for versions of those files in all all available releases. The technique is fast, low-bandwidth, non-invasive, generic, and highly automatable. BlinElephant is absolutly Checksum verification oriented&lt;br /&gt;
home page:  http://blindelephant.sourceforge.net/&lt;br /&gt;
Sourceforge repo: http://sourceforge.net/projects/blindelephant/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a similar code to BlindElephant (which is in python), using the same updated database (available on its Sourceforge repo). The files of the database are PKL format which is a Python specific format , it’s a Python object serialization format. So in order to process this data in Java, we needed to convert it to a universal format, so we chosen to convert it into XML files using a small Python script. &lt;br /&gt;
every webapp has its own XML file, each XML file has the following format:&lt;br /&gt;
&lt;br /&gt;
the resulting output (name and version of the webapp or technology) is discovered according to the following schema:&lt;br /&gt;
&lt;br /&gt;
    [[File:BlindElephant.png]]&lt;br /&gt;
    As described by author at its home page, The Static File Fingerprinting Approach in One Picture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dependencies : 	jdom-2.0.5: un parser XML, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Component enumeration and fingerprinting''' ==&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
the enumeration Is to provide a list of all components, modules, plugins or themes related to the target’s application technology . The fingerprinting is to detect the version of the module already detected, the two processes (enumeration and fingerprinting) are generally parallel: to each detected component, it will be applied the fingerprinting.&lt;br /&gt;
&lt;br /&gt;
why enumerate and fingerprint plugins?&lt;br /&gt;
the enumeration can detect the presence of vulnerable plugins and / or components, which allows the attacker, or pen-tester, directly targeting known vulnerabilities and fix them.&lt;br /&gt;
&lt;br /&gt;
This process is, especially, very effective in CMSs case. In fact, most CMSs are based on plugins and extensions system,the ones they are vulnerable are generally well known and classified into vulnerability databases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
     pending &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existant tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      DPscan for Drupal (https://github.com/cervoise/DPScan)&lt;br /&gt;
     (		&lt;br /&gt;
		our implementation:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
aggressive research (applied to components and extensions listing) is to Brute Force components and extensions paths in the URL of the target’s application, using a path lists. The result (presence or absence of such a component) is obtained by analyzing the returned HTTP code.&lt;br /&gt;
after you extract the name of the existing component in the application, we need to identify the version of the component, this process is not really based on general technique, we are going to use a variety of techniques like fetching in the readme file. &lt;br /&gt;
Example: if the README file is present and accessible in a WordPress component, you can easily open and read the Stable tag part, obtained by applying the regex pattern &amp;quot;Stable tag: (+.)&amp;quot; on this file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
bruteforce site content by using a list of paths of known components. This is for the detection of plugin itself. To detect its version, varied methods are possible and depends on the component and the webapp technology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existant tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OWASP ODZ MultiCMS Scanner (https://www.owasp.org/index.php/OWASP_Odz_MultiCMSScanner), (https://github.com/islamoc/odz)&lt;br /&gt;
the majority of enumeration tools are specific, eg Joomscan OWASP for the Joomla CMS (http://sourceforge.net/projects/joomscan/), WordPress WPscan (http://wpscan.org/) and WordPress also Plecost  (https://code.google.com/p/plecost/)&lt;br /&gt;
Some tools work on a combination of CMSs or/and webapps. Eg: &lt;br /&gt;
&lt;br /&gt;
- CMS-explorer: written in Perl, designed to reveal the the specific modules, plugins, components and themes that various CMS driven web sites are running. CMS Explorer currently supports module/theme discovery with the following products:&lt;br /&gt;
Drupal&lt;br /&gt;
Wordpress&lt;br /&gt;
Joomla!&lt;br /&gt;
Mambo&lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/cms-explorer/&lt;br /&gt;
&lt;br /&gt;
- WebSorrow: a perl based tool for misconfiguration, version detection, enumeration, and server information scanning. It's entirely focused on Enumeration and collecting Info on the target server. Web-Sorrow is a &amp;quot;safe to run&amp;quot; program, meaning it is not designed to be an exploit or perform any harmful attacks. &lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/web-sorrow/&lt;br /&gt;
&lt;br /&gt;
'''CMS-explorer vs WebSorrow'''&lt;br /&gt;
&lt;br /&gt;
Concerning database, they use the same list of plugins, CMS-explorer also uses a list of themes and WebSorrow not. Both deal Joomla, WordPress and Drupal. WebSorrow make ​​more detections and work. Both looks like they use the “fuzzDB” database, which is updated and contains many other files of other types of audits.&lt;br /&gt;
	&lt;br /&gt;
    fuzzDB project home on Sourceforge: https://code.google.com/p/fuzzdb/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
     passive search not implemented yet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for aggressive research, we hesitated between using existing databases and creating  our own. Then, we decided to use the existing ones, but combining files between various existing tools, so we decided to implement a modular system: for each CMS or webapp, we create a module (of component detection) because we figured out that the effort to unify the formats of databases is more than creating a module for each Webapp , in addition to the specific treatment in the extraction of each Webapp version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Listing vulnerabilities''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques ''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other sources&lt;br /&gt;
very useful :&lt;br /&gt;
    https://github.com/urbanadventurer/WhatWeb/wiki/How-to-develop-WhatWeb-plugins&lt;br /&gt;
    http://resources.infosecinstitute.com/prototype-model-web-application-fingerprinting/&lt;br /&gt;
&lt;br /&gt;
    WebApp Scanner on GIT : https://github.com/abdelhadi-azouni/zap-cmss-extension&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155978</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155978"/>
				<updated>2013-07-24T23:42:49Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
    Status: in writing (24-07-2013)&lt;br /&gt;
    WebApp Scanner on GIT: https://github.com/abdelhadi-azouni/zap-cmss-extension&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what CMS uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Transition to WebApp Scanner''' ==&lt;br /&gt;
 &lt;br /&gt;
after pushing the research of fingerprinting techniques, and advanced in detailed design, it is apparent that is more appropriate and useful to go wider, and work on web applications in general and not only CMSs .&lt;br /&gt;
I spoke with Simon about it, and he was pleased with the proposal, so I started the implementation of the web application finger printer core methods based on existing tools such as BlindElephant and Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Application fingerprinting''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
is to look in the target application (HTML, HTTP headers content ...) patterns that determine how likely or definite name and version of the technology used to make this application, passive research does not change anything in requests nor in content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''Used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
web page content analysis: is to look for patterns in the HTML document, the scan tool will download the web page and perform patterns search using regex, usually from predefined lists that are updated. Several patterns may indicate the technology used to make the application: Here are the indicators:&lt;br /&gt;
&lt;br /&gt;
    '''- The HTML content itself:''' by performing specific regex patterns on the page content, we can determine with high probability the technology used to build the application, for example:the pattern : &amp;quot;Powered by (: &amp;lt;a href=[^&amp;gt;] + cs-cart \ \ com | CS-Cart?)&amp;quot;..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''- The meta tag Generator:''' for a given app, if the following regex pattern performed :        &amp;quot;? WordPress ([. \ \ D] +) \ \; Version: \ \ 1&amp;quot;  on the content (“content”) of the meta tag named : &amp;quot;generator&amp;quot;, then if successful research therefore the application is, with high probability, carried out with the indicated version of WordPress.&lt;br /&gt;
&lt;br /&gt;
most WordPress websites can be identified by the meta HTML tag, e.g. &amp;lt;meta name=&amp;quot;generator&amp;quot; content=&amp;quot;WordPress 2.6.5&amp;quot;&amp;gt;, but a minority of WordPress websites remove this identifying tag but this does not thwart our scanner, other tests are implemented to reveal a Wordpress application.&lt;br /&gt;
&lt;br /&gt;
- The script tag: its contents may contain the name of the implementation technology, the search is always done with regex patterns.&lt;br /&gt;
&lt;br /&gt;
This method is suitable for most applications and gives good results in a very acceptable time, but it is sensitive to changes in the code of the page code sensitive, as it is always possible to remove these indicators.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
among tools the most efficient and best known tools that uses passive research: Wappalazer, it was originally a Firefox and Chrome extension in javascript, but It was then rewritten in several languages like python. Wappalyzer uses a long list of regex structured by type of application and type of pattern (name tag, headers ...) in a JSON file.&lt;br /&gt;
&lt;br /&gt;
home page : http://wappalyzer.com/&lt;br /&gt;
	    GIT repo:  https://github.com/ElbertF/Wappalyzer&lt;br /&gt;
&lt;br /&gt;
WhatWeb another webapps fingerprinting tool which also uses the passive research, but not so deep as Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
home page:  http://www.morningstarsecurity.com/research/whatweb&lt;br /&gt;
GIT repo: https://github.com/urbanadventurer/WhatWeb&lt;br /&gt;
Here is a brief comparison to other fingerprinting tools:&lt;br /&gt;
https://github.com/urbanadventurer/WhatWeb/wiki/Related-Projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
we implemented a similar code to Wappalyzer and it uses the same JSON          list-of-regex file, our tool connect firstly to the target’s URL, then it downloads a web DOM document, it contain the HTML content of the page, than the program applies regex patterns (by type), by reading them once from the JSON file into an object of JsonObject class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    == '''perspectives:''' ==&lt;br /&gt;
    implement other methods of passive search, those present in Whatweb: access to htaccess&lt;br /&gt;
&lt;br /&gt;
dependencies : 	json-simple-1.1.1 : JSON parser, &lt;br /&gt;
                jsoup1.7.2 : HTML parser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
consists on Bruteforcing target host in search of indicators files, the presence of such a file reveals a certain technology or even its version as well, but in most cases, the version is set after comparing the MD5 digest of the content of the file found on the host with the present in a pre-built database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File and Folder Presence (HTTP response codes): This approach doesn’t download the page however it starts looking for obvious trails of an application by directly hitting the URL and in course identifying found and not found application list. In starting days of internet this was easy, just download headers and see if it’s 200 OK or 404 not found and you are done. &lt;br /&gt;
&lt;br /&gt;
    [[File:404.png]]&lt;br /&gt;
&lt;br /&gt;
However in current scenario, people have been putting up custom 404 Pages and are actually sending 200 OK in case the page is not found. This complicates the efforts and hence the new approach is as follows.&lt;br /&gt;
Download default page 200 OK.&lt;br /&gt;
Download a file which is guaranteed to be non-existing then mark it as a template for 404 and then proceed with detection logic.&lt;br /&gt;
Based on this assumption and knowledge this kind of tools start looking for known files and folders on a website and try to determine the exact application name and version. an example of such scenario would be&lt;br /&gt;
    wp-login.php =&amp;gt; wordpress&lt;br /&gt;
    /owa/ =&amp;gt; Microsoft outlook web frontend.&lt;br /&gt;
&lt;br /&gt;
    reference : http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
Checksum Based identification :This is relatively a newer approach and the most accurate one for now. &lt;br /&gt;
This Technique basically works on below pattern. &lt;br /&gt;
1) Create checksum for files locally and store them in DB &lt;br /&gt;
2) Download static file from remote server &lt;br /&gt;
3) Create the checksum&lt;br /&gt;
4) Compare with the checksum stored in db and identify the version  &lt;br /&gt;
One of the best implementation of this technique is BlindElephant &lt;br /&gt;
&lt;br /&gt;
    reference:  http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BlinElephant: among the most robust implementations Checksum Based identification. It attempts to discover the version of a (known) web application by comparing static files at known locations against precomputed hashes for versions of those files in all all available releases. The technique is fast, low-bandwidth, non-invasive, generic, and highly automatable. BlinElephant is absolutly Checksum verification oriented&lt;br /&gt;
home page:  http://blindelephant.sourceforge.net/&lt;br /&gt;
Sourceforge repo: http://sourceforge.net/projects/blindelephant/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a similar code to BlindElephant (which is in python), using the same updated database (available on its Sourceforge repo). The files of the database are PKL format which is a Python specific format , it’s a Python object serialization format. So in order to process this data in Java, we needed to convert it to a universal format, so we choosed to convert it into XML files using a small Python script. &lt;br /&gt;
every webapp has its own XML file, each XML file has the following format:&lt;br /&gt;
&lt;br /&gt;
the resulting output (name and version of the webapp or technology) is discovered according to the following schema:&lt;br /&gt;
&lt;br /&gt;
    [[File:BlindElephant.png]]&lt;br /&gt;
    As described by author at its home page, The Static File Fingerprinting Approach in One Picture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dependancies : 	jdom-2.0.5: un parser XML, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Componant enumeration and fingerprinting''' ==&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
the enumeration Is to provide a list of all components, modules, plugins or themes related to the target’s application technology . The fingerprinting is to detect the version of the module already detected, the two processes (enumeration and fingerprinting) are generally parallel: to each detected component, it will be applied the fingerprinting.&lt;br /&gt;
&lt;br /&gt;
why enumerate and fingerprint plugins?&lt;br /&gt;
the enumeration can detect the presence of vulnerable plugins and / or components, which allows the attacker, or pen-tester, directly targeting known vulnerabilities and fix them.&lt;br /&gt;
&lt;br /&gt;
This process is, especially, very effective in CMSs case. In fact, most CMSs are based on plugins and extensions system,the ones they are vulnerable are generally well known and classified into vulnerability databases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
     pending &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existant tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      DPscan for Drupal (https://github.com/cervoise/DPScan)&lt;br /&gt;
     (		&lt;br /&gt;
		our implementation:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
aggressive research (applied to components and extensions listing) is to Brute Force components and extensions paths in the URL of the target’s application, using a path lists. The result (presence or absence of such a component) is obtained by analyzing the returned HTTP code.&lt;br /&gt;
after you extract the name of the existing component in the application, we need to identify the version of the component, this process is not really based on general technique, we are going to use a variety of techniques like fetching in the readme file. &lt;br /&gt;
Example: if the README file is present and accessible in a WordPress component, you can easily open and read the Stable tag part, obtained by applying the regex pattern &amp;quot;Stable tag: (+.)&amp;quot; on this file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
bruteforce site content by using a list of paths of known components. This is for the detection of plugin itself. To detect its version, varied methods are possible and depends on the component and the webapp technology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existant tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OWASP ODZ MultiCMS Scanner (https://www.owasp.org/index.php/OWASP_Odz_MultiCMSScanner), (https://github.com/islamoc/odz)&lt;br /&gt;
the majority of enumeration tools are specific, eg Joomscan OWASP for the Joomla CMS (http://sourceforge.net/projects/joomscan/), WordPress WPscan (http://wpscan.org/) and WordPress also Plecost  (https://code.google.com/p/plecost/)&lt;br /&gt;
Some tools work on a combination of CMSs or/and webapps. Eg: &lt;br /&gt;
&lt;br /&gt;
- CMS-explorer: written in Perl, designed to reveal the the specific modules, plugins, components and themes that various CMS driven web sites are running. CMS Explorer currently supports module/theme discovery with the following products:&lt;br /&gt;
Drupal&lt;br /&gt;
Wordpress&lt;br /&gt;
Joomla!&lt;br /&gt;
Mambo&lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/cms-explorer/&lt;br /&gt;
&lt;br /&gt;
- WebSorrow: a perl based tool for misconfiguration, version detection, enumeration, and server information scanning. It's entirely focused on Enumeration and collecting Info on the target server. Web-Sorrow is a &amp;quot;safe to run&amp;quot; program, meaning it is not designed to be an exploit or perform any harmful attacks. &lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/web-sorrow/&lt;br /&gt;
&lt;br /&gt;
'''CMS-explorer vs WebSorrow'''&lt;br /&gt;
&lt;br /&gt;
Concerning database, they use the same list of plugins, CMS-explorer also uses a list of themes and WebSorrow not. Both deal Joomla, WordPress and Drupal. WebSorrow make ​​more detections and work. Both looks like they use the “fuzzDB” database, which is updated and contains many other files of other types of audits.&lt;br /&gt;
	&lt;br /&gt;
    fuzzDB project home on Sourceforge: https://code.google.com/p/fuzzdb/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
     passive search not implemented yet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for aggressive research, we hesitated between using existing databases and creating  our own. Then, we decided to use the existing ones, but combining files between various existing tools, so we decided to implement a modular system: for each CMS or webapp, we create a module (of component detection) because we figured out that the effort to unify the formats of databases is more than creating a module for each Webapp , in addition to the specific treatment in the extraction of each Webapp version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Listing vulnerabilities''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques ''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other sources&lt;br /&gt;
very useful :&lt;br /&gt;
    https://github.com/urbanadventurer/WhatWeb/wiki/How-to-develop-WhatWeb-plugins&lt;br /&gt;
    http://resources.infosecinstitute.com/prototype-model-web-application-fingerprinting/&lt;br /&gt;
&lt;br /&gt;
    WebApp Scanner on GIT : https://github.com/abdelhadi-azouni/zap-cmss-extension&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155977</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155977"/>
				<updated>2013-07-24T23:41:31Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
    Status: in writing (24-07-2013)&lt;br /&gt;
    WebApp Scanner on GIT: https://github.com/abdelhadi-azouni/zap-cmss-extension&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what CMS uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Transition to WebApp Scanner''' ==&lt;br /&gt;
 &lt;br /&gt;
after pushing the research of fingerprinting techniques, and advanced in detailed design, it is apparent that is more appropriate and useful to go wider, and work on web applications in general and not only CMSs .&lt;br /&gt;
I spoke with Simon about it, and he was pleased with the proposal, so I started the implementation of the web application finger printer core methods based on existing tools such as BlindElephant and Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Application fingerprinting''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
is to look in the target application (HTML, HTTP headers content ...) patterns that determine how likely or definite name and version of the technology used to make this application, passive research does not change anything in requests nor in content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''Used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
web page content analysis: is to look for patterns in the HTML document, the scan tool will download the web page and perform patterns search using regex, usually from predefined lists that are updated. Several patterns may indicate the technology used to make the application: Here are the indicators:&lt;br /&gt;
&lt;br /&gt;
    '''- The HTML content itself:''' by performing specific regex patterns on the page content, we can determine with high probability the technology used to build the application, for example:the pattern : &amp;quot;Powered by (: &amp;lt;a href=[^&amp;gt;] + cs-cart \ \ com | CS-Cart?)&amp;quot;..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''- The meta tag Generator:''' for a given app, if the following regex pattern performed :        &amp;quot;? WordPress ([. \ \ D] +) \ \; Version: \ \ 1&amp;quot;  on the content (“content”) of the meta tag named : &amp;quot;generator&amp;quot;, then if successful research therefore the application is, with high probability, carried out with the indicated version of WordPress.&lt;br /&gt;
&lt;br /&gt;
most WordPress websites can be identified by the meta HTML tag, e.g. &amp;lt;meta name=&amp;quot;generator&amp;quot; content=&amp;quot;WordPress 2.6.5&amp;quot;&amp;gt;, but a minority of WordPress websites remove this identifying tag but this does not thwart our scanner, other tests are implemented to reveal a Wordpress application.&lt;br /&gt;
&lt;br /&gt;
- The script tag: its contents may contain the name of the implementation technology, the search is always done with regex patterns.&lt;br /&gt;
&lt;br /&gt;
This method is suitable for most applications and gives good results in a very acceptable time, but it is sensitive to changes in the code of the page code sensitive, as it is always possible to remove these indicators.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
among tools the most efficient and best known tools that uses passive research: Wappalazer, it was originally a Firefox and Chrome extension in javascript, but It was then rewritten in several languages like python. Wappalyzer uses a long list of regex structured by type of application and type of pattern (name tag, headers ...) in a JSON file.&lt;br /&gt;
&lt;br /&gt;
home page : http://wappalyzer.com/&lt;br /&gt;
	    GIT repo:  https://github.com/ElbertF/Wappalyzer&lt;br /&gt;
&lt;br /&gt;
WhatWeb another webapps fingerprinting tool which also uses the passive research, but not so deep as Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
home page:  http://www.morningstarsecurity.com/research/whatweb&lt;br /&gt;
GIT repo: https://github.com/urbanadventurer/WhatWeb&lt;br /&gt;
Here is a brief comparison to other fingerprinting tools:&lt;br /&gt;
https://github.com/urbanadventurer/WhatWeb/wiki/Related-Projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
we implemented a similar code to Wappalyzer and it uses the same JSON          list-of-regex file, our tool connect firstly to the target’s URL, then it downloads a web DOM document, it contain the HTML content of the page, than the program applies regex patterns (by type), by reading them once from the JSON file into an object of JsonObject class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    == '''perspectives:''' ==&lt;br /&gt;
    implement other methods of passive search, those present in Whatweb: access to htaccess&lt;br /&gt;
&lt;br /&gt;
dependencies : 	json-simple-1.1.1 : JSON parser, &lt;br /&gt;
                jsoup1.7.2 : HTML parser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
consists on Bruteforcing target host in search of indicators files, the presence of such a file reveals a certain technology or even its version as well, but in most cases, the version is set after comparing the MD5 digest of the content of the file found on the host with the present in a pre-built database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File and Folder Presence (HTTP response codes): This approach doesn’t download the page however it starts looking for obvious trails of an application by directly hitting the URL and in course identifying found and not found application list. In starting days of internet this was easy, just download headers and see if it’s 200 OK or 404 not found and you are done. &lt;br /&gt;
&lt;br /&gt;
    [[File:404.jpg]]&lt;br /&gt;
&lt;br /&gt;
However in current scenario, people have been putting up custom 404 Pages and are actually sending 200 OK in case the page is not found. This complicates the efforts and hence the new approach is as follows.&lt;br /&gt;
Download default page 200 OK.&lt;br /&gt;
Download a file which is guaranteed to be non-existing then mark it as a template for 404 and then proceed with detection logic.&lt;br /&gt;
Based on this assumption and knowledge this kind of tools start looking for known files and folders on a website and try to determine the exact application name and version. an example of such scenario would be&lt;br /&gt;
    wp-login.php =&amp;gt; wordpress&lt;br /&gt;
    /owa/ =&amp;gt; Microsoft outlook web frontend.&lt;br /&gt;
&lt;br /&gt;
    reference : http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
Checksum Based identification :This is relatively a newer approach and the most accurate one for now. &lt;br /&gt;
This Technique basically works on below pattern. &lt;br /&gt;
1) Create checksum for files locally and store them in DB &lt;br /&gt;
2) Download static file from remote server &lt;br /&gt;
3) Create the checksum&lt;br /&gt;
4) Compare with the checksum stored in db and identify the version  &lt;br /&gt;
One of the best implementation of this technique is BlindElephant &lt;br /&gt;
&lt;br /&gt;
    reference:  http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BlinElephant: among the most robust implementations Checksum Based identification. It attempts to discover the version of a (known) web application by comparing static files at known locations against precomputed hashes for versions of those files in all all available releases. The technique is fast, low-bandwidth, non-invasive, generic, and highly automatable. BlinElephant is absolutly Checksum verification oriented&lt;br /&gt;
home page:  http://blindelephant.sourceforge.net/&lt;br /&gt;
Sourceforge repo: http://sourceforge.net/projects/blindelephant/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a similar code to BlindElephant (which is in python), using the same updated database (available on its Sourceforge repo). The files of the database are PKL format which is a Python specific format , it’s a Python object serialization format. So in order to process this data in Java, we needed to convert it to a universal format, so we choosed to convert it into XML files using a small Python script. &lt;br /&gt;
every webapp has its own XML file, each XML file has the following format:&lt;br /&gt;
&lt;br /&gt;
the resulting output (name and version of the webapp or technology) is discovered according to the following schema:&lt;br /&gt;
&lt;br /&gt;
    [[File:BlindElephant.jpg]]&lt;br /&gt;
    As described by author at its home page, The Static File Fingerprinting Approach in One Picture&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dependancies : 	jdom-2.0.5: un parser XML, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Componant enumeration and fingerprinting''' ==&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
the enumeration Is to provide a list of all components, modules, plugins or themes related to the target’s application technology . The fingerprinting is to detect the version of the module already detected, the two processes (enumeration and fingerprinting) are generally parallel: to each detected component, it will be applied the fingerprinting.&lt;br /&gt;
&lt;br /&gt;
why enumerate and fingerprint plugins?&lt;br /&gt;
the enumeration can detect the presence of vulnerable plugins and / or components, which allows the attacker, or pen-tester, directly targeting known vulnerabilities and fix them.&lt;br /&gt;
&lt;br /&gt;
This process is, especially, very effective in CMSs case. In fact, most CMSs are based on plugins and extensions system,the ones they are vulnerable are generally well known and classified into vulnerability databases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
     pending &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existant tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      DPscan for Drupal (https://github.com/cervoise/DPScan)&lt;br /&gt;
     (		&lt;br /&gt;
		our implementation:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
aggressive research (applied to components and extensions listing) is to Brute Force components and extensions paths in the URL of the target’s application, using a path lists. The result (presence or absence of such a component) is obtained by analyzing the returned HTTP code.&lt;br /&gt;
after you extract the name of the existing component in the application, we need to identify the version of the component, this process is not really based on general technique, we are going to use a variety of techniques like fetching in the readme file. &lt;br /&gt;
Example: if the README file is present and accessible in a WordPress component, you can easily open and read the Stable tag part, obtained by applying the regex pattern &amp;quot;Stable tag: (+.)&amp;quot; on this file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
bruteforce site content by using a list of paths of known components. This is for the detection of plugin itself. To detect its version, varied methods are possible and depends on the component and the webapp technology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existant tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OWASP ODZ MultiCMS Scanner (https://www.owasp.org/index.php/OWASP_Odz_MultiCMSScanner), (https://github.com/islamoc/odz)&lt;br /&gt;
the majority of enumeration tools are specific, eg Joomscan OWASP for the Joomla CMS (http://sourceforge.net/projects/joomscan/), WordPress WPscan (http://wpscan.org/) and WordPress also Plecost  (https://code.google.com/p/plecost/)&lt;br /&gt;
Some tools work on a combination of CMSs or/and webapps. Eg: &lt;br /&gt;
&lt;br /&gt;
- CMS-explorer: written in Perl, designed to reveal the the specific modules, plugins, components and themes that various CMS driven web sites are running. CMS Explorer currently supports module/theme discovery with the following products:&lt;br /&gt;
Drupal&lt;br /&gt;
Wordpress&lt;br /&gt;
Joomla!&lt;br /&gt;
Mambo&lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/cms-explorer/&lt;br /&gt;
&lt;br /&gt;
- WebSorrow: a perl based tool for misconfiguration, version detection, enumeration, and server information scanning. It's entirely focused on Enumeration and collecting Info on the target server. Web-Sorrow is a &amp;quot;safe to run&amp;quot; program, meaning it is not designed to be an exploit or perform any harmful attacks. &lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/web-sorrow/&lt;br /&gt;
&lt;br /&gt;
'''CMS-explorer vs WebSorrow'''&lt;br /&gt;
&lt;br /&gt;
Concerning database, they use the same list of plugins, CMS-explorer also uses a list of themes and WebSorrow not. Both deal Joomla, WordPress and Drupal. WebSorrow make ​​more detections and work. Both looks like they use the “fuzzDB” database, which is updated and contains many other files of other types of audits.&lt;br /&gt;
	&lt;br /&gt;
    fuzzDB project home on Sourceforge: https://code.google.com/p/fuzzdb/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
     passive search not implemented yet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for aggressive research, we hesitated between using existing databases and creating  our own. Then, we decided to use the existing ones, but combining files between various existing tools, so we decided to implement a modular system: for each CMS or webapp, we create a module (of component detection) because we figured out that the effort to unify the formats of databases is more than creating a module for each Webapp , in addition to the specific treatment in the extraction of each Webapp version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Listing vulnerabilities''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques ''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other sources&lt;br /&gt;
very useful :&lt;br /&gt;
    https://github.com/urbanadventurer/WhatWeb/wiki/How-to-develop-WhatWeb-plugins&lt;br /&gt;
    http://resources.infosecinstitute.com/prototype-model-web-application-fingerprinting/&lt;br /&gt;
&lt;br /&gt;
    WebApp Scanner on GIT : https://github.com/abdelhadi-azouni/zap-cmss-extension&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:BlindElephant.png&amp;diff=155976</id>
		<title>File:BlindElephant.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:BlindElephant.png&amp;diff=155976"/>
				<updated>2013-07-24T23:41:10Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:404.png&amp;diff=155975</id>
		<title>File:404.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:404.png&amp;diff=155975"/>
				<updated>2013-07-24T23:40:40Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155974</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155974"/>
				<updated>2013-07-24T23:33:16Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
    Status: in writing (24-07-2013)&lt;br /&gt;
    WebApp Scanner on GIT: https://github.com/abdelhadi-azouni/zap-cmss-extension&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what CMS uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Transition to WebApp Scanner''' ==&lt;br /&gt;
 &lt;br /&gt;
after pushing the research of fingerprinting techniques, and advanced in detailed design, it is apparent that is more appropriate and useful to go wider, and work on web applications in general and not only CMSs .&lt;br /&gt;
I spoke with Simon about it, and he was pleased with the proposal, so I started the implementation of the web application finger printer core methods based on existing tools such as BlindElephant and Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Application fingerprinting''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
is to look in the target application (HTML, HTTP headers content ...) patterns that determine how likely or definite name and version of the technology used to make this application, passive research does not change anything in requests nor in content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''Used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
web page content analysis: is to look for patterns in the HTML document, the scan tool will download the web page and perform patterns search using regex, usually from predefined lists that are updated. Several patterns may indicate the technology used to make the application: Here are the indicators:&lt;br /&gt;
&lt;br /&gt;
    '''- The HTML content itself:''' by performing specific regex patterns on the page content, we can determine with high probability the technology used to build the application, for example:the pattern : &amp;quot;Powered by (: &amp;lt;a href=[^&amp;gt;] + cs-cart \ \ com | CS-Cart?)&amp;quot;..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''- The meta tag Generator:''' for a given app, if the following regex pattern performed :        &amp;quot;? WordPress ([. \ \ D] +) \ \; Version: \ \ 1&amp;quot;  on the content (“content”) of the meta tag named : &amp;quot;generator&amp;quot;, then if successful research therefore the application is, with high probability, carried out with the indicated version of WordPress.&lt;br /&gt;
&lt;br /&gt;
most WordPress websites can be identified by the meta HTML tag, e.g. &amp;lt;meta name=&amp;quot;generator&amp;quot; content=&amp;quot;WordPress 2.6.5&amp;quot;&amp;gt;, but a minority of WordPress websites remove this identifying tag but this does not thwart our scanner, other tests are implemented to reveal a Wordpress application.&lt;br /&gt;
&lt;br /&gt;
- The script tag: its contents may contain the name of the implementation technology, the search is always done with regex patterns.&lt;br /&gt;
&lt;br /&gt;
This method is suitable for most applications and gives good results in a very acceptable time, but it is sensitive to changes in the code of the page code sensitive, as it is always possible to remove these indicators.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
among tools the most efficient and best known tools that uses passive research: Wappalazer, it was originally a Firefox and Chrome extension in javascript, but It was then rewritten in several languages like python. Wappalyzer uses a long list of regex structured by type of application and type of pattern (name tag, headers ...) in a JSON file.&lt;br /&gt;
&lt;br /&gt;
home page : http://wappalyzer.com/&lt;br /&gt;
	    GIT repo:  https://github.com/ElbertF/Wappalyzer&lt;br /&gt;
&lt;br /&gt;
WhatWeb another webapps fingerprinting tool which also uses the passive research, but not so deep as Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
home page:  http://www.morningstarsecurity.com/research/whatweb&lt;br /&gt;
GIT repo: https://github.com/urbanadventurer/WhatWeb&lt;br /&gt;
Here is a brief comparison to other fingerprinting tools:&lt;br /&gt;
https://github.com/urbanadventurer/WhatWeb/wiki/Related-Projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
we implemented a similar code to Wappalyzer and it uses the same JSON          list-of-regex file, our tool connect firstly to the target’s URL, then it downloads a web DOM document, it contain the HTML content of the page, than the program applies regex patterns (by type), by reading them once from the JSON file into an object of JsonObject class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    == '''perspectives:''' ==&lt;br /&gt;
    implement other methods of passive search, those present in Whatweb: access to htaccess&lt;br /&gt;
&lt;br /&gt;
dependencies : 	json-simple-1.1.1 : JSON parser, &lt;br /&gt;
                jsoup1.7.2 : HTML parser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
consists on Bruteforcing target host in search of indicators files, the presence of such a file reveals a certain technology or even its version as well, but in most cases, the version is set after comparing the MD5 digest of the content of the file found on the host with the present in a pre-built database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File and Folder Presence (HTTP response codes): This approach doesn’t download the page however it starts looking for obvious trails of an application by directly hitting the URL and in course identifying found and not found application list. In starting days of internet this was easy, just download headers and see if it’s 200 OK or 404 not found and you are done. &lt;br /&gt;
&lt;br /&gt;
However in current scenario, people have been putting up custom 404 Pages and are actually sending 200 OK in case the page is not found. This complicates the efforts and hence the new approach is as follows.&lt;br /&gt;
Download default page 200 OK.&lt;br /&gt;
Download a file which is guaranteed to be non-existing then mark it as a template for 404 and then proceed with detection logic.&lt;br /&gt;
Based on this assumption and knowledge this kind of tools start looking for known files and folders on a website and try to determine the exact application name and version. an example of such scenario would be&lt;br /&gt;
    wp-login.php =&amp;gt; wordpress&lt;br /&gt;
    /owa/ =&amp;gt; Microsoft outlook web frontend.&lt;br /&gt;
&lt;br /&gt;
    reference : http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
Checksum Based identification :This is relatively a newer approach and the most accurate one for now. &lt;br /&gt;
This Technique basically works on below pattern. &lt;br /&gt;
1) Create checksum for files locally and store them in DB &lt;br /&gt;
2) Download static file from remote server &lt;br /&gt;
3) Create the checksum&lt;br /&gt;
4) Compare with the checksum stored in db and identify the version  &lt;br /&gt;
One of the best implementation of this technique is BlindElephant &lt;br /&gt;
&lt;br /&gt;
    reference:  http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BlinElephant: among the most robust implementations Checksum Based identification. It attempts to discover the version of a (known) web application by comparing static files at known locations against precomputed hashes for versions of those files in all all available releases. The technique is fast, low-bandwidth, non-invasive, generic, and highly automatable. BlinElephant is absolutly Checksum verification oriented&lt;br /&gt;
home page:  http://blindelephant.sourceforge.net/&lt;br /&gt;
Sourceforge repo: http://sourceforge.net/projects/blindelephant/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a similar code to BlindElephant (which is in python), using the same updated database (available on its Sourceforge repo). The files of the database are PKL format which is a Python specific format , it’s a Python object serialization format. So in order to process this data in Java, we needed to convert it to a universal format, so we choosed to convert it into XML files using a small Python script. &lt;br /&gt;
every webapp has its own XML file, each XML file has the following format:&lt;br /&gt;
&lt;br /&gt;
the resulting output (name and version of the webapp or technology) is discovered according to the following schema:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dependancies : 	jdom-2.0.5: un parser XML, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Componant enumeration and fingerprinting''' ==&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
the enumeration Is to provide a list of all components, modules, plugins or themes related to the target’s application technology . The fingerprinting is to detect the version of the module already detected, the two processes (enumeration and fingerprinting) are generally parallel: to each detected component, it will be applied the fingerprinting.&lt;br /&gt;
&lt;br /&gt;
why enumerate and fingerprint plugins?&lt;br /&gt;
the enumeration can detect the presence of vulnerable plugins and / or components, which allows the attacker, or pen-tester, directly targeting known vulnerabilities and fix them.&lt;br /&gt;
&lt;br /&gt;
This process is, especially, very effective in CMSs case. In fact, most CMSs are based on plugins and extensions system,the ones they are vulnerable are generally well known and classified into vulnerability databases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
     pending &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existant tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      DPscan for Drupal (https://github.com/cervoise/DPScan)&lt;br /&gt;
     (		&lt;br /&gt;
		our implementation:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
aggressive research (applied to components and extensions listing) is to Brute Force components and extensions paths in the URL of the target’s application, using a path lists. The result (presence or absence of such a component) is obtained by analyzing the returned HTTP code.&lt;br /&gt;
after you extract the name of the existing component in the application, we need to identify the version of the component, this process is not really based on general technique, we are going to use a variety of techniques like fetching in the readme file. &lt;br /&gt;
Example: if the README file is present and accessible in a WordPress component, you can easily open and read the Stable tag part, obtained by applying the regex pattern &amp;quot;Stable tag: (+.)&amp;quot; on this file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
bruteforce site content by using a list of paths of known components. This is for the detection of plugin itself. To detect its version, varied methods are possible and depends on the component and the webapp technology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existant tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OWASP ODZ MultiCMS Scanner (https://www.owasp.org/index.php/OWASP_Odz_MultiCMSScanner), (https://github.com/islamoc/odz)&lt;br /&gt;
the majority of enumeration tools are specific, eg Joomscan OWASP for the Joomla CMS (http://sourceforge.net/projects/joomscan/), WordPress WPscan (http://wpscan.org/) and WordPress also Plecost  (https://code.google.com/p/plecost/)&lt;br /&gt;
Some tools work on a combination of CMSs or/and webapps. Eg: &lt;br /&gt;
&lt;br /&gt;
- CMS-explorer: written in Perl, designed to reveal the the specific modules, plugins, components and themes that various CMS driven web sites are running. CMS Explorer currently supports module/theme discovery with the following products:&lt;br /&gt;
Drupal&lt;br /&gt;
Wordpress&lt;br /&gt;
Joomla!&lt;br /&gt;
Mambo&lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/cms-explorer/&lt;br /&gt;
&lt;br /&gt;
- WebSorrow: a perl based tool for misconfiguration, version detection, enumeration, and server information scanning. It's entirely focused on Enumeration and collecting Info on the target server. Web-Sorrow is a &amp;quot;safe to run&amp;quot; program, meaning it is not designed to be an exploit or perform any harmful attacks. &lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/web-sorrow/&lt;br /&gt;
&lt;br /&gt;
'''CMS-explorer vs WebSorrow'''&lt;br /&gt;
&lt;br /&gt;
Concerning database, they use the same list of plugins, CMS-explorer also uses a list of themes and WebSorrow not. Both deal Joomla, WordPress and Drupal. WebSorrow make ​​more detections and work. Both looks like they use the “fuzzDB” database, which is updated and contains many other files of other types of audits.&lt;br /&gt;
	&lt;br /&gt;
    fuzzDB project home on Sourceforge: https://code.google.com/p/fuzzdb/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
     passive search not implemented yet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for aggressive research, we hesitated between using existing databases and creating  our own. Then, we decided to use the existing ones, but combining files between various existing tools, so we decided to implement a modular system: for each CMS or webapp, we create a module (of component detection) because we figured out that the effort to unify the formats of databases is more than creating a module for each Webapp , in addition to the specific treatment in the extraction of each Webapp version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Listing vulnerabilities''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques ''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other sources&lt;br /&gt;
very useful :&lt;br /&gt;
    https://github.com/urbanadventurer/WhatWeb/wiki/How-to-develop-WhatWeb-plugins&lt;br /&gt;
    http://resources.infosecinstitute.com/prototype-model-web-application-fingerprinting/&lt;br /&gt;
&lt;br /&gt;
    WebApp Scanner on GIT : https://github.com/abdelhadi-azouni/zap-cmss-extension&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155973</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155973"/>
				<updated>2013-07-24T23:26:16Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
    Status: in writing (24-07-2013)&lt;br /&gt;
    WebApp Scanner on GIT: https://github.com/abdelhadi-azouni/zap-cmss-extension&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what CMS uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Passing to WebApp Scanner''' ==&lt;br /&gt;
 &lt;br /&gt;
after pushing the research of fingerprinting techniques, and advanced in detailed design, it is apparent that is more appropriate and useful to go wider, and work on web applications in general and not only CMSs .&lt;br /&gt;
I spoke with Simon about it, and he was pleased with the proposal, so I started the implementation of the web application finger printer core methods based on existing tools such as BlindElephant and Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Application fingerprinting''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
is to look in the target application (HTML, HTTP headers content ...) patterns that determine how likely or definite name and version of the technology used to make this application, passive research does not change anything in requests nor in content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''Used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
web page content analysis: is to look for patterns in the HTML document, the scan tool will download the web page and perform patterns search using regex, usually from predefined lists that are updated. Several patterns may indicate the technology used to make the application: Here are the indicators:&lt;br /&gt;
&lt;br /&gt;
    '''- The HTML content itself:''' by performing specific regex patterns on the page content, we can determine with high probability the technology used to build the application, for example:the pattern : &amp;quot;Powered by (: &amp;lt;a href=[^&amp;gt;] + cs-cart \ \ com | CS-Cart?)&amp;quot;..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''- The meta tag Generator:''' for a given app, if the following regex pattern performed :        &amp;quot;? WordPress ([. \ \ D] +) \ \; Version: \ \ 1&amp;quot;  on the content (“content”) of the meta tag named : &amp;quot;generator&amp;quot;, then if successful research therefore the application is, with high probability, carried out with the indicated version of WordPress.&lt;br /&gt;
&lt;br /&gt;
most WordPress websites can be identified by the meta HTML tag, e.g. &amp;lt;meta name=&amp;quot;generator&amp;quot; content=&amp;quot;WordPress 2.6.5&amp;quot;&amp;gt;, but a minority of WordPress websites remove this identifying tag but this does not thwart our scanner, other tests are implemented to reveal a Wordpress application.&lt;br /&gt;
&lt;br /&gt;
- The script tag: its contents may contain the name of the implementation technology, the search is always done with regex patterns.&lt;br /&gt;
&lt;br /&gt;
This method is suitable for most applications and gives good results in a very acceptable time, but it is sensitive to changes in the code of the page code sensitive, as it is always possible to remove these indicators.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
among tools the most efficient and best known tools that uses passive research: Wappalazer, it was originally a Firefox and Chrome extension in javascript, but It was then rewritten in several languages like python. Wappalyzer uses a long list of regex structured by type of application and type of pattern (name tag, headers ...) in a JSON file.&lt;br /&gt;
&lt;br /&gt;
home page : http://wappalyzer.com/&lt;br /&gt;
	    GIT repo:  https://github.com/ElbertF/Wappalyzer&lt;br /&gt;
&lt;br /&gt;
WhatWeb another webapps fingerprinting tool which also uses the passive research, but not so deep as Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
home page:  http://www.morningstarsecurity.com/research/whatweb&lt;br /&gt;
GIT repo: https://github.com/urbanadventurer/WhatWeb&lt;br /&gt;
Here is a brief comparison to other fingerprinting tools:&lt;br /&gt;
https://github.com/urbanadventurer/WhatWeb/wiki/Related-Projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
we implemented a similar code to Wappalyzer and it uses the same JSON          list-of-regex file, our tool connect firstly to the target’s URL, then it downloads a web DOM document, it contain the HTML content of the page, than the program applies regex patterns (by type), by reading them once from the JSON file into an object of JsonObject class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    == '''perspectives:''' ==&lt;br /&gt;
    implement other methods of passive search, those present in Whatweb: access to htaccess&lt;br /&gt;
&lt;br /&gt;
dependencies : 	json-simple-1.1.1 : JSON parser, &lt;br /&gt;
                jsoup1.7.2 : HTML parser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
consists on Bruteforcing target host in search of indicators files, the presence of such a file reveals a certain technology or even its version as well, but in most cases, the version is set after comparing the MD5 digest of the content of the file found on the host with the present in a pre-built database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File and Folder Presence (HTTP response codes): This approach doesn’t download the page however it starts looking for obvious trails of an application by directly hitting the URL and in course identifying found and not found application list. In starting days of internet this was easy, just download headers and see if it’s 200 OK or 404 not found and you are done. &lt;br /&gt;
&lt;br /&gt;
However in current scenario, people have been putting up custom 404 Pages and are actually sending 200 OK in case the page is not found. This complicates the efforts and hence the new approach is as follows.&lt;br /&gt;
Download default page 200 OK.&lt;br /&gt;
Download a file which is guaranteed to be non-existing then mark it as a template for 404 and then proceed with detection logic.&lt;br /&gt;
Based on this assumption and knowledge this kind of tools start looking for known files and folders on a website and try to determine the exact application name and version. an example of such scenario would be&lt;br /&gt;
    wp-login.php =&amp;gt; wordpress&lt;br /&gt;
    /owa/ =&amp;gt; Microsoft outlook web frontend.&lt;br /&gt;
&lt;br /&gt;
    reference : http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
Checksum Based identification :This is relatively a newer approach and the most accurate one for now. &lt;br /&gt;
This Technique basically works on below pattern. &lt;br /&gt;
1) Create checksum for files locally and store them in DB &lt;br /&gt;
2) Download static file from remote server &lt;br /&gt;
3) Create the checksum&lt;br /&gt;
4) Compare with the checksum stored in db and identify the version  &lt;br /&gt;
One of the best implementation of this technique is BlindElephant &lt;br /&gt;
&lt;br /&gt;
    reference:  http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BlinElephant: among the most robust implementations Checksum Based identification. It attempts to discover the version of a (known) web application by comparing static files at known locations against precomputed hashes for versions of those files in all all available releases. The technique is fast, low-bandwidth, non-invasive, generic, and highly automatable. BlinElephant is absolutly Checksum verification oriented&lt;br /&gt;
home page:  http://blindelephant.sourceforge.net/&lt;br /&gt;
Sourceforge repo: http://sourceforge.net/projects/blindelephant/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a similar code to BlindElephant (which is in python), using the same updated database (available on its Sourceforge repo). The files of the database are PKL format which is a Python specific format , it’s a Python object serialization format. So in order to process this data in Java, we needed to convert it to a universal format, so we choosed to convert it into XML files using a small Python script. &lt;br /&gt;
every webapp has its own XML file, each XML file has the following format:&lt;br /&gt;
&lt;br /&gt;
the resulting output (name and version of the webapp or technology) is discovered according to the following schema:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dependancies : 	jdom-2.0.5: un parser XML, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Componant enumeration and fingerprinting''' ==&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
the enumeration Is to provide a list of all components, modules, plugins or themes related to the target’s application technology . The fingerprinting is to detect the version of the module already detected, the two processes (enumeration and fingerprinting) are generally parallel: to each detected component, it will be applied the fingerprinting.&lt;br /&gt;
&lt;br /&gt;
why enumerate and fingerprint plugins?&lt;br /&gt;
the enumeration can detect the presence of vulnerable plugins and / or components, which allows the attacker, or pen-tester, directly targeting known vulnerabilities and fix them.&lt;br /&gt;
&lt;br /&gt;
This process is, especially, very effective in CMSs case. In fact, most CMSs are based on plugins and extensions system,the ones they are vulnerable are generally well known and classified into vulnerability databases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
     pending &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existant tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      DPscan for Drupal (https://github.com/cervoise/DPScan)&lt;br /&gt;
     (		&lt;br /&gt;
		our implementation:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
aggressive research (applied to components and extensions listing) is to Brute Force components and extensions paths in the URL of the target’s application, using a path lists. The result (presence or absence of such a component) is obtained by analyzing the returned HTTP code.&lt;br /&gt;
after you extract the name of the existing component in the application, we need to identify the version of the component, this process is not really based on general technique, we are going to use a variety of techniques like fetching in the readme file. &lt;br /&gt;
Example: if the README file is present and accessible in a WordPress component, you can easily open and read the Stable tag part, obtained by applying the regex pattern &amp;quot;Stable tag: (+.)&amp;quot; on this file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
bruteforce site content by using a list of paths of known components. This is for the detection of plugin itself. To detect its version, varied methods are possible and depends on the component and the webapp technology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existant tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OWASP ODZ MultiCMS Scanner (https://www.owasp.org/index.php/OWASP_Odz_MultiCMSScanner), (https://github.com/islamoc/odz)&lt;br /&gt;
the majority of enumeration tools are specific, eg Joomscan OWASP for the Joomla CMS (http://sourceforge.net/projects/joomscan/), WordPress WPscan (http://wpscan.org/) and WordPress also Plecost  (https://code.google.com/p/plecost/)&lt;br /&gt;
Some tools work on a combination of CMSs or/and webapps. Eg: &lt;br /&gt;
&lt;br /&gt;
- CMS-explorer: written in Perl, designed to reveal the the specific modules, plugins, components and themes that various CMS driven web sites are running. CMS Explorer currently supports module/theme discovery with the following products:&lt;br /&gt;
Drupal&lt;br /&gt;
Wordpress&lt;br /&gt;
Joomla!&lt;br /&gt;
Mambo&lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/cms-explorer/&lt;br /&gt;
&lt;br /&gt;
- WebSorrow: a perl based tool for misconfiguration, version detection, enumeration, and server information scanning. It's entirely focused on Enumeration and collecting Info on the target server. Web-Sorrow is a &amp;quot;safe to run&amp;quot; program, meaning it is not designed to be an exploit or perform any harmful attacks. &lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/web-sorrow/&lt;br /&gt;
&lt;br /&gt;
'''CMS-explorer vs WebSorrow'''&lt;br /&gt;
&lt;br /&gt;
Concerning database, they use the same list of plugins, CMS-explorer also uses a list of themes and WebSorrow not. Both deal Joomla, WordPress and Drupal. WebSorrow make ​​more detections and work. Both looks like they use the “fuzzDB” database, which is updated and contains many other files of other types of audits.&lt;br /&gt;
	&lt;br /&gt;
    fuzzDB project home on Sourceforge: https://code.google.com/p/fuzzdb/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
     passive search not implemented yet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for aggressive research, we hesitated between using existing databases and creating  our own. Then, we decided to use the existing ones, but combining files between various existing tools, so we decided to implement a modular system: for each CMS or webapp, we create a module (of component detection) because we figured out that the effort to unify the formats of databases is more than creating a module for each Webapp , in addition to the specific treatment in the extraction of each Webapp version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Listing vulnerabilities''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques ''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other sources&lt;br /&gt;
very useful :&lt;br /&gt;
    https://github.com/urbanadventurer/WhatWeb/wiki/How-to-develop-WhatWeb-plugins&lt;br /&gt;
    http://resources.infosecinstitute.com/prototype-model-web-application-fingerprinting/&lt;br /&gt;
&lt;br /&gt;
    WebApp Scanner on GIT : https://github.com/abdelhadi-azouni/zap-cmss-extension&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155972</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155972"/>
				<updated>2013-07-24T23:22:57Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what CMS uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Passing to WebApp Scanner''' ==&lt;br /&gt;
 &lt;br /&gt;
after pushing the research of fingerprinting techniques, and advanced in detailed design, it is apparent that is more appropriate and useful to go wider, and work on web applications in general and not only CMSs .&lt;br /&gt;
I spoke with Simon about it, and he was pleased with the proposal, so I started the implementation of the web application finger printer core methods based on existing tools such as BlindElephant and Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Application fingerprinting''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
is to look in the target application (HTML, HTTP headers content ...) patterns that determine how likely or definite name and version of the technology used to make this application, passive research does not change anything in requests nor in content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''Used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
web page content analysis: is to look for patterns in the HTML document, the scan tool will download the web page and perform patterns search using regex, usually from predefined lists that are updated. Several patterns may indicate the technology used to make the application: Here are the indicators:&lt;br /&gt;
&lt;br /&gt;
    '''- The HTML content itself:''' by performing specific regex patterns on the page content, we can determine with high probability the technology used to build the application, for example:the pattern : &amp;quot;Powered by (: &amp;lt;a href=[^&amp;gt;] + cs-cart \ \ com | CS-Cart?)&amp;quot;..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''- The meta tag Generator:''' for a given app, if the following regex pattern performed :        &amp;quot;? WordPress ([. \ \ D] +) \ \; Version: \ \ 1&amp;quot;  on the content (“content”) of the meta tag named : &amp;quot;generator&amp;quot;, then if successful research therefore the application is, with high probability, carried out with the indicated version of WordPress.&lt;br /&gt;
&lt;br /&gt;
most WordPress websites can be identified by the meta HTML tag, e.g. &amp;lt;meta name=&amp;quot;generator&amp;quot; content=&amp;quot;WordPress 2.6.5&amp;quot;&amp;gt;, but a minority of WordPress websites remove this identifying tag but this does not thwart our scanner, other tests are implemented to reveal a Wordpress application.&lt;br /&gt;
&lt;br /&gt;
- The script tag: its contents may contain the name of the implementation technology, the search is always done with regex patterns.&lt;br /&gt;
&lt;br /&gt;
This method is suitable for most applications and gives good results in a very acceptable time, but it is sensitive to changes in the code of the page code sensitive, as it is always possible to remove these indicators.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
among tools the most efficient and best known tools that uses passive research: Wappalazer, it was originally a Firefox and Chrome extension in javascript, but It was then rewritten in several languages like python. Wappalyzer uses a long list of regex structured by type of application and type of pattern (name tag, headers ...) in a JSON file.&lt;br /&gt;
&lt;br /&gt;
home page : http://wappalyzer.com/&lt;br /&gt;
	    GIT repo:  https://github.com/ElbertF/Wappalyzer&lt;br /&gt;
&lt;br /&gt;
WhatWeb another webapps fingerprinting tool which also uses the passive research, but not so deep as Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
home page:  http://www.morningstarsecurity.com/research/whatweb&lt;br /&gt;
GIT repo: https://github.com/urbanadventurer/WhatWeb&lt;br /&gt;
Here is a brief comparison to other fingerprinting tools:&lt;br /&gt;
https://github.com/urbanadventurer/WhatWeb/wiki/Related-Projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
we implemented a similar code to Wappalyzer and it uses the same JSON          list-of-regex file, our tool connect firstly to the target’s URL, then it downloads a web DOM document, it contain the HTML content of the page, than the program applies regex patterns (by type), by reading them once from the JSON file into an object of JsonObject class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    == '''perspectives:''' ==&lt;br /&gt;
    implement other methods of passive search, those present in Whatweb: access to htaccess&lt;br /&gt;
&lt;br /&gt;
dependencies : 	json-simple-1.1.1 : JSON parser, &lt;br /&gt;
                jsoup1.7.2 : HTML parser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
consists on Bruteforcing target host in search of indicators files, the presence of such a file reveals a certain technology or even its version as well, but in most cases, the version is set after comparing the MD5 digest of the content of the file found on the host with the present in a pre-built database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File and Folder Presence (HTTP response codes): This approach doesn’t download the page however it starts looking for obvious trails of an application by directly hitting the URL and in course identifying found and not found application list. In starting days of internet this was easy, just download headers and see if it’s 200 OK or 404 not found and you are done. &lt;br /&gt;
&lt;br /&gt;
However in current scenario, people have been putting up custom 404 Pages and are actually sending 200 OK in case the page is not found. This complicates the efforts and hence the new approach is as follows.&lt;br /&gt;
Download default page 200 OK.&lt;br /&gt;
Download a file which is guaranteed to be non-existing then mark it as a template for 404 and then proceed with detection logic.&lt;br /&gt;
Based on this assumption and knowledge this kind of tools start looking for known files and folders on a website and try to determine the exact application name and version. an example of such scenario would be&lt;br /&gt;
    wp-login.php =&amp;gt; wordpress&lt;br /&gt;
    /owa/ =&amp;gt; Microsoft outlook web frontend.&lt;br /&gt;
&lt;br /&gt;
    reference : http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
Checksum Based identification :This is relatively a newer approach and the most accurate one for now. &lt;br /&gt;
This Technique basically works on below pattern. &lt;br /&gt;
1) Create checksum for files locally and store them in DB &lt;br /&gt;
2) Download static file from remote server &lt;br /&gt;
3) Create the checksum&lt;br /&gt;
4) Compare with the checksum stored in db and identify the version  &lt;br /&gt;
One of the best implementation of this technique is BlindElephant &lt;br /&gt;
&lt;br /&gt;
    reference:  http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BlinElephant: among the most robust implementations Checksum Based identification. It attempts to discover the version of a (known) web application by comparing static files at known locations against precomputed hashes for versions of those files in all all available releases. The technique is fast, low-bandwidth, non-invasive, generic, and highly automatable. BlinElephant is absolutly Checksum verification oriented&lt;br /&gt;
home page:  http://blindelephant.sourceforge.net/&lt;br /&gt;
Sourceforge repo: http://sourceforge.net/projects/blindelephant/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a similar code to BlindElephant (which is in python), using the same updated database (available on its Sourceforge repo). The files of the database are PKL format which is a Python specific format , it’s a Python object serialization format. So in order to process this data in Java, we needed to convert it to a universal format, so we choosed to convert it into XML files using a small Python script. &lt;br /&gt;
every webapp has its own XML file, each XML file has the following format:&lt;br /&gt;
&lt;br /&gt;
the resulting output (name and version of the webapp or technology) is discovered according to the following schema:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dependancies : 	jdom-2.0.5: un parser XML, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Componant enumeration and fingerprinting''' ==&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
the enumeration Is to provide a list of all components, modules, plugins or themes related to the target’s application technology . The fingerprinting is to detect the version of the module already detected, the two processes (enumeration and fingerprinting) are generally parallel: to each detected component, it will be applied the fingerprinting.&lt;br /&gt;
&lt;br /&gt;
why enumerate and fingerprint plugins?&lt;br /&gt;
the enumeration can detect the presence of vulnerable plugins and / or components, which allows the attacker, or pen-tester, directly targeting known vulnerabilities and fix them.&lt;br /&gt;
&lt;br /&gt;
This process is, especially, very effective in CMSs case. In fact, most CMSs are based on plugins and extensions system,the ones they are vulnerable are generally well known and classified into vulnerability databases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
     pending &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existant tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      DPscan for Drupal (https://github.com/cervoise/DPScan)&lt;br /&gt;
     (		&lt;br /&gt;
		our implementation:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
aggressive research (applied to components and extensions listing) is to Brute Force components and extensions paths in the URL of the target’s application, using a path lists. The result (presence or absence of such a component) is obtained by analyzing the returned HTTP code.&lt;br /&gt;
after you extract the name of the existing component in the application, we need to identify the version of the component, this process is not really based on general technique, we are going to use a variety of techniques like fetching in the readme file. &lt;br /&gt;
Example: if the README file is present and accessible in a WordPress component, you can easily open and read the Stable tag part, obtained by applying the regex pattern &amp;quot;Stable tag: (+.)&amp;quot; on this file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
bruteforce site content by using a list of paths of known components. This is for the detection of plugin itself. To detect its version, varied methods are possible and depends on the component and the webapp technology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existant tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OWASP ODZ MultiCMS Scanner (https://www.owasp.org/index.php/OWASP_Odz_MultiCMSScanner), (https://github.com/islamoc/odz)&lt;br /&gt;
the majority of enumeration tools are specific, eg Joomscan OWASP for the Joomla CMS (http://sourceforge.net/projects/joomscan/), WordPress WPscan (http://wpscan.org/) and WordPress also Plecost  (https://code.google.com/p/plecost/)&lt;br /&gt;
Some tools work on a combination of CMSs or/and webapps. Eg: &lt;br /&gt;
&lt;br /&gt;
- CMS-explorer: written in Perl, designed to reveal the the specific modules, plugins, components and themes that various CMS driven web sites are running. CMS Explorer currently supports module/theme discovery with the following products:&lt;br /&gt;
Drupal&lt;br /&gt;
Wordpress&lt;br /&gt;
Joomla!&lt;br /&gt;
Mambo&lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/cms-explorer/&lt;br /&gt;
&lt;br /&gt;
- WebSorrow: a perl based tool for misconfiguration, version detection, enumeration, and server information scanning. It's entirely focused on Enumeration and collecting Info on the target server. Web-Sorrow is a &amp;quot;safe to run&amp;quot; program, meaning it is not designed to be an exploit or perform any harmful attacks. &lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/web-sorrow/&lt;br /&gt;
&lt;br /&gt;
'''CMS-explorer vs WebSorrow'''&lt;br /&gt;
&lt;br /&gt;
Concerning database, they use the same list of plugins, CMS-explorer also uses a list of themes and WebSorrow not. Both deal Joomla, WordPress and Drupal. WebSorrow make ​​more detections and work. Both looks like they use the “fuzzDB” database, which is updated and contains many other files of other types of audits.&lt;br /&gt;
	&lt;br /&gt;
    fuzzDB project home on Sourceforge: https://code.google.com/p/fuzzdb/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
     passive search not implemented yet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for aggressive research, we hesitated between using existing databases and creating  our own. Then, we decided to use the existing ones, but combining files between various existing tools, so we decided to implement a modular system: for each CMS or webapp, we create a module (of component detection) because we figured out that the effort to unify the formats of databases is more than creating a module for each Webapp , in addition to the specific treatment in the extraction of each Webapp version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Listing vulnerabilities''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques ''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other sources&lt;br /&gt;
very useful :&lt;br /&gt;
    https://github.com/urbanadventurer/WhatWeb/wiki/How-to-develop-WhatWeb-plugins&lt;br /&gt;
    http://resources.infosecinstitute.com/prototype-model-web-application-fingerprinting/&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155971</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155971"/>
				<updated>2013-07-24T23:21:00Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what CMS uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Passing to WebApp Scanner''' ==&lt;br /&gt;
 &lt;br /&gt;
after pushing the research of fingerprinting techniques, and advanced in detailed design, it is apparent that is more appropriate and useful to go wider, and work on web applications in general and not only CMSs .&lt;br /&gt;
I spoke with Simon about it, and he was pleased with the proposal, so I started the implementation of the web application finger printer core methods based on existing tools such as BlindElephant and Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Application fingerprinting''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
is to look in the target application (HTML, HTTP headers content ...) patterns that determine how likely or definite name and version of the technology used to make this application, passive research does not change anything in requests nor in content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Used techniques''' ===&lt;br /&gt;
&lt;br /&gt;
web page content analysis: is to look for patterns in the HTML document, the scan tool will download the web page and perform patterns search using regex, usually from predefined lists that are updated. Several patterns may indicate the technology used to make the application: Here are the indicators:&lt;br /&gt;
&lt;br /&gt;
    '''- The HTML content itself:''' by performing specific regex patterns on the page content, we can determine with high probability the technology used to build the application, for example:the pattern : &amp;quot;Powered by (: &amp;lt;a href=[^&amp;gt;] + cs-cart \ \ com | CS-Cart?)&amp;quot;..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''- The meta tag Generator:''' for a given app, if the following regex pattern performed :        &amp;quot;? WordPress ([. \ \ D] +) \ \; Version: \ \ 1&amp;quot;  on the content (“content”) of the meta tag named : &amp;quot;generator&amp;quot;, then if successful research therefore the application is, with high probability, carried out with the indicated version of WordPress.&lt;br /&gt;
&lt;br /&gt;
most WordPress websites can be identified by the meta HTML tag, e.g. &amp;lt;meta name=&amp;quot;generator&amp;quot; content=&amp;quot;WordPress 2.6.5&amp;quot;&amp;gt;, but a minority of WordPress websites remove this identifying tag but this does not thwart our scanner, other tests are implemented to reveal a Wordpress application.&lt;br /&gt;
&lt;br /&gt;
- The script tag: its contents may contain the name of the implementation technology, the search is always done with regex patterns.&lt;br /&gt;
&lt;br /&gt;
This method is suitable for most applications and gives good results in a very acceptable time, but it is sensitive to changes in the code of the page code sensitive, as it is always possible to remove these indicators.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''existing tools''' ===&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
among tools the most efficient and best known tools that uses passive research: Wappalazer, it was originally a Firefox and Chrome extension in javascript, but It was then rewritten in several languages like python. Wappalyzer uses a long list of regex structured by type of application and type of pattern (name tag, headers ...) in a JSON file.&lt;br /&gt;
&lt;br /&gt;
home page : http://wappalyzer.com/&lt;br /&gt;
	    GIT repo:  https://github.com/ElbertF/Wappalyzer&lt;br /&gt;
&lt;br /&gt;
WhatWeb another webapps fingerprinting tool which also uses the passive research, but not so deep as Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
home page:  http://www.morningstarsecurity.com/research/whatweb&lt;br /&gt;
GIT repo: https://github.com/urbanadventurer/WhatWeb&lt;br /&gt;
Here is a brief comparison to other fingerprinting tools:&lt;br /&gt;
https://github.com/urbanadventurer/WhatWeb/wiki/Related-Projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''our implementation''' ===&lt;br /&gt;
&lt;br /&gt;
we implemented a similar code to Wappalyzer and it uses the same JSON          list-of-regex file, our tool connect firstly to the target’s URL, then it downloads a web DOM document, it contain the HTML content of the page, than the program applies regex patterns (by type), by reading them once from the JSON file into an object of JsonObject class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    == '''perspectives:''' ==&lt;br /&gt;
    implement other methods of passive search, those present in Whatweb: access to htaccess&lt;br /&gt;
&lt;br /&gt;
dependencies : 	json-simple-1.1.1 : JSON parser, &lt;br /&gt;
                jsoup1.7.2 : HTML parser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''aggressive search''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
consists on Bruteforcing target host in search of indicators files, the presence of such a file reveals a certain technology or even its version as well, but in most cases, the version is set after comparing the MD5 digest of the content of the file found on the host with the present in a pre-built database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''used technics''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File and Folder Presence (HTTP response codes): This approach doesn’t download the page however it starts looking for obvious trails of an application by directly hitting the URL and in course identifying found and not found application list. In starting days of internet this was easy, just download headers and see if it’s 200 OK or 404 not found and you are done. &lt;br /&gt;
&lt;br /&gt;
However in current scenario, people have been putting up custom 404 Pages and are actually sending 200 OK in case the page is not found. This complicates the efforts and hence the new approach is as follows.&lt;br /&gt;
Download default page 200 OK.&lt;br /&gt;
Download a file which is guaranteed to be non-existing then mark it as a template for 404 and then proceed with detection logic.&lt;br /&gt;
Based on this assumption and knowledge this kind of tools start looking for known files and folders on a website and try to determine the exact application name and version. an example of such scenario would be&lt;br /&gt;
    wp-login.php =&amp;gt; wordpress&lt;br /&gt;
    /owa/ =&amp;gt; Microsoft outlook web frontend.&lt;br /&gt;
&lt;br /&gt;
    reference : http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
Checksum Based identification :This is relatively a newer approach and the most accurate one for now. &lt;br /&gt;
This Technique basically works on below pattern. &lt;br /&gt;
1) Create checksum for files locally and store them in DB &lt;br /&gt;
2) Download static file from remote server &lt;br /&gt;
3) Create the checksum&lt;br /&gt;
4) Compare with the checksum stored in db and identify the version  &lt;br /&gt;
One of the best implementation of this technique is BlindElephant &lt;br /&gt;
&lt;br /&gt;
    reference:  http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''existing tools''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BlinElephant: among the most robust implementations Checksum Based identification. It attempts to discover the version of a (known) web application by comparing static files at known locations against precomputed hashes for versions of those files in all all available releases. The technique is fast, low-bandwidth, non-invasive, generic, and highly automatable. BlinElephant is absolutly Checksum verification oriented&lt;br /&gt;
home page:  http://blindelephant.sourceforge.net/&lt;br /&gt;
Sourceforge repo: http://sourceforge.net/projects/blindelephant/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''our implementation''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a similar code to BlindElephant (which is in python), using the same updated database (available on its Sourceforge repo). The files of the database are PKL format which is a Python specific format , it’s a Python object serialization format. So in order to process this data in Java, we needed to convert it to a universal format, so we choosed to convert it into XML files using a small Python script. &lt;br /&gt;
every webapp has its own XML file, each XML file has the following format:&lt;br /&gt;
&lt;br /&gt;
the resulting output (name and version of the webapp or technology) is discovered according to the following schema:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dependancies : 	jdom-2.0.5: un parser XML, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Componant enumeration and fingerprinting''' ==&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
the enumeration Is to provide a list of all components, modules, plugins or themes related to the target’s application technology . The fingerprinting is to detect the version of the module already detected, the two processes (enumeration and fingerprinting) are generally parallel: to each detected component, it will be applied the fingerprinting.&lt;br /&gt;
&lt;br /&gt;
why enumerate and fingerprint plugins?&lt;br /&gt;
the enumeration can detect the presence of vulnerable plugins and / or components, which allows the attacker, or pen-tester, directly targeting known vulnerabilities and fix them.&lt;br /&gt;
&lt;br /&gt;
This process is, especially, very effective in CMSs case. In fact, most CMSs are based on plugins and extensions system,the ones they are vulnerable are generally well known and classified into vulnerability databases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
     pending &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existant tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      DPscan for Drupal (https://github.com/cervoise/DPScan)&lt;br /&gt;
     (		&lt;br /&gt;
		our implementation:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
aggressive research (applied to components and extensions listing) is to Brute Force components and extensions paths in the URL of the target’s application, using a path lists. The result (presence or absence of such a component) is obtained by analyzing the returned HTTP code.&lt;br /&gt;
after you extract the name of the existing component in the application, we need to identify the version of the component, this process is not really based on general technique, we are going to use a variety of techniques like fetching in the readme file. &lt;br /&gt;
Example: if the README file is present and accessible in a WordPress component, you can easily open and read the Stable tag part, obtained by applying the regex pattern &amp;quot;Stable tag: (+.)&amp;quot; on this file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used technics''' ====&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
bruteforce site content by using a list of paths of known components. This is for the detection of plugin itself. To detect its version, varied methods are possible and depends on the component and the webapp technology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existant tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OWASP ODZ MultiCMS Scanner (https://www.owasp.org/index.php/OWASP_Odz_MultiCMSScanner), (https://github.com/islamoc/odz)&lt;br /&gt;
the majority of enumeration tools are specific, eg Joomscan OWASP for the Joomla CMS (http://sourceforge.net/projects/joomscan/), WordPress WPscan (http://wpscan.org/) and WordPress also Plecost  (https://code.google.com/p/plecost/)&lt;br /&gt;
Some tools work on a combination of CMSs or/and webapps. Eg: &lt;br /&gt;
&lt;br /&gt;
- CMS-explorer: written in Perl, designed to reveal the the specific modules, plugins, components and themes that various CMS driven web sites are running. CMS Explorer currently supports module/theme discovery with the following products:&lt;br /&gt;
Drupal&lt;br /&gt;
Wordpress&lt;br /&gt;
Joomla!&lt;br /&gt;
Mambo&lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/cms-explorer/&lt;br /&gt;
&lt;br /&gt;
- WebSorrow: a perl based tool for misconfiguration, version detection, enumeration, and server information scanning. It's entirely focused on Enumeration and collecting Info on the target server. Web-Sorrow is a &amp;quot;safe to run&amp;quot; program, meaning it is not designed to be an exploit or perform any harmful attacks. &lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/web-sorrow/&lt;br /&gt;
&lt;br /&gt;
'''CMS-explorer vs WebSorrow'''&lt;br /&gt;
&lt;br /&gt;
Concerning database, they use the same list of plugins, CMS-explorer also uses a list of themes and WebSorrow not. Both deal Joomla, WordPress and Drupal. WebSorrow make ​​more detections and work. Both looks like they use the “fuzzDB” database, which is updated and contains many other files of other types of audits.&lt;br /&gt;
	&lt;br /&gt;
    fuzzDB project home on Sourceforge: https://code.google.com/p/fuzzdb/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
     passive search not implemented yet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for aggressive research, we hesitated between using existing databases and creating  our own. Then, we decided to use the existing ones, but combining files between various existing tools, so we decided to implement a modular system: for each CMS or webapp, we create a module (of component detection) because we figured out that the effort to unify the formats of databases is more than creating a module for each Webapp , in addition to the specific treatment in the extraction of each Webapp version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Listing vulnerabilities''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''used techniques ''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''existing tools''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''our implementation''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other sources&lt;br /&gt;
very useful :&lt;br /&gt;
    https://github.com/urbanadventurer/WhatWeb/wiki/How-to-develop-WhatWeb-plugins&lt;br /&gt;
    http://resources.infosecinstitute.com/prototype-model-web-application-fingerprinting/&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155970</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155970"/>
				<updated>2013-07-24T23:17:29Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what CMS uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Passing to WebApp Scanner''' ==&lt;br /&gt;
 &lt;br /&gt;
after pushing the research of fingerprinting techniques, and advanced in detailed design, it is apparent that is more appropriate and useful to go wider, and work on web applications in general and not only CMSs .&lt;br /&gt;
I spoke with Simon about it, and he was pleased with the proposal, so I started the implementation of the web application finger printer core methods based on existing tools such as BlindElephant and Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Application fingerprinting''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
is to look in the target application (HTML, HTTP headers content ...) patterns that determine how likely or definite name and version of the technology used to make this application, passive research does not change anything in requests nor in content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Used techniques''' ===&lt;br /&gt;
&lt;br /&gt;
web page content analysis: is to look for patterns in the HTML document, the scan tool will download the web page and perform patterns search using regex, usually from predefined lists that are updated. Several patterns may indicate the technology used to make the application: Here are the indicators:&lt;br /&gt;
&lt;br /&gt;
    '''- The HTML content itself:''' by performing specific regex patterns on the page content, we can determine with high probability the technology used to build the application, for example:the pattern : &amp;quot;Powered by (: &amp;lt;a href=[^&amp;gt;] + cs-cart \ \ com | CS-Cart?)&amp;quot;..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''- The meta tag Generator:''' for a given app, if the following regex pattern performed :        &amp;quot;? WordPress ([. \ \ D] +) \ \; Version: \ \ 1&amp;quot;  on the content (“content”) of the meta tag named : &amp;quot;generator&amp;quot;, then if successful research therefore the application is, with high probability, carried out with the indicated version of WordPress.&lt;br /&gt;
&lt;br /&gt;
most WordPress websites can be identified by the meta HTML tag, e.g. &amp;lt;meta name=&amp;quot;generator&amp;quot; content=&amp;quot;WordPress 2.6.5&amp;quot;&amp;gt;, but a minority of WordPress websites remove this identifying tag but this does not thwart our scanner, other tests are implemented to reveal a Wordpress application.&lt;br /&gt;
&lt;br /&gt;
- The script tag: its contents may contain the name of the implementation technology, the search is always done with regex patterns.&lt;br /&gt;
&lt;br /&gt;
This method is suitable for most applications and gives good results in a very acceptable time, but it is sensitive to changes in the code of the page code sensitive, as it is always possible to remove these indicators.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''existing tools''' ===&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
among tools the most efficient and best known tools that uses passive research: Wappalazer, it was originally a Firefox and Chrome extension in javascript, but It was then rewritten in several languages like python. Wappalyzer uses a long list of regex structured by type of application and type of pattern (name tag, headers ...) in a JSON file.&lt;br /&gt;
&lt;br /&gt;
home page : http://wappalyzer.com/&lt;br /&gt;
	    GIT repo:  https://github.com/ElbertF/Wappalyzer&lt;br /&gt;
&lt;br /&gt;
WhatWeb another webapps fingerprinting tool which also uses the passive research, but not so deep as Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
home page:  http://www.morningstarsecurity.com/research/whatweb&lt;br /&gt;
GIT repo: https://github.com/urbanadventurer/WhatWeb&lt;br /&gt;
Here is a brief comparison to other fingerprinting tools:&lt;br /&gt;
https://github.com/urbanadventurer/WhatWeb/wiki/Related-Projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''our implementation''' ===&lt;br /&gt;
&lt;br /&gt;
we implemented a similar code to Wappalyzer and it uses the same JSON          list-of-regex file, our tool connect firstly to the target’s URL, then it downloads a web DOM document, it contain the HTML content of the page, than the program applies regex patterns (by type), by reading them once from the JSON file into an object of JsonObject class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    == '''perspectives:''' ==&lt;br /&gt;
    implement other methods of passive search, those present in Whatweb: access to htaccess&lt;br /&gt;
&lt;br /&gt;
dependencies : 	json-simple-1.1.1 : JSON parser, &lt;br /&gt;
                jsoup1.7.2 : HTML parser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''aggressive search''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
consists on Bruteforcing target host in search of indicators files, the presence of such a file reveals a certain technology or even its version as well, but in most cases, the version is set after comparing the MD5 digest of the content of the file found on the host with the present in a pre-built database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''used technics''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File and Folder Presence (HTTP response codes): This approach doesn’t download the page however it starts looking for obvious trails of an application by directly hitting the URL and in course identifying found and not found application list. In starting days of internet this was easy, just download headers and see if it’s 200 OK or 404 not found and you are done. &lt;br /&gt;
&lt;br /&gt;
However in current scenario, people have been putting up custom 404 Pages and are actually sending 200 OK in case the page is not found. This complicates the efforts and hence the new approach is as follows.&lt;br /&gt;
Download default page 200 OK.&lt;br /&gt;
Download a file which is guaranteed to be non-existing then mark it as a template for 404 and then proceed with detection logic.&lt;br /&gt;
Based on this assumption and knowledge this kind of tools start looking for known files and folders on a website and try to determine the exact application name and version. an example of such scenario would be&lt;br /&gt;
    wp-login.php =&amp;gt; wordpress&lt;br /&gt;
    /owa/ =&amp;gt; Microsoft outlook web frontend.&lt;br /&gt;
&lt;br /&gt;
    reference : http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
Checksum Based identification :This is relatively a newer approach and the most accurate one for now. &lt;br /&gt;
This Technique basically works on below pattern. &lt;br /&gt;
1) Create checksum for files locally and store them in DB &lt;br /&gt;
2) Download static file from remote server &lt;br /&gt;
3) Create the checksum&lt;br /&gt;
4) Compare with the checksum stored in db and identify the version  &lt;br /&gt;
One of the best implementation of this technique is BlindElephant &lt;br /&gt;
&lt;br /&gt;
    reference:  http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''existing tools''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BlinElephant: among the most robust implementations Checksum Based identification. It attempts to discover the version of a (known) web application by comparing static files at known locations against precomputed hashes for versions of those files in all all available releases. The technique is fast, low-bandwidth, non-invasive, generic, and highly automatable. BlinElephant is absolutly Checksum verification oriented&lt;br /&gt;
home page:  http://blindelephant.sourceforge.net/&lt;br /&gt;
Sourceforge repo: http://sourceforge.net/projects/blindelephant/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''our implementation''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
we wrote a similar code to BlindElephant (which is in python), using the same updated database (available on its Sourceforge repo). The files of the database are PKL format which is a Python specific format , it’s a Python object serialization format. So in order to process this data in Java, we needed to convert it to a universal format, so we choosed to convert it into XML files using a small Python script. &lt;br /&gt;
every webapp has its own XML file, each XML file has the following format:&lt;br /&gt;
&lt;br /&gt;
the resulting output (name and version of the webapp or technology) is discovered according to the following schema:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dependancies : 	jdom-2.0.5: un parser XML, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Componant enumeration and fingerprinting''' ==&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
the enumeration Is to provide a list of all components, modules, plugins or themes related to the target’s application technology . The fingerprinting is to detect the version of the module already detected, the two processes (enumeration and fingerprinting) are generally parallel: to each detected component, it will be applied the fingerprinting.&lt;br /&gt;
&lt;br /&gt;
why enumerate and fingerprint plugins?&lt;br /&gt;
the enumeration can detect the presence of vulnerable plugins and / or components, which allows the attacker, or pen-tester, directly targeting known vulnerabilities and fix them.&lt;br /&gt;
&lt;br /&gt;
This process is, especially, very effective in CMSs case. In fact, most CMSs are based on plugins and extensions system,the ones they are vulnerable are generally well known and classified into vulnerability databases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''passive search''' ==&lt;br /&gt;
&lt;br /&gt;
     pending &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''used technics''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''existant tools''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      DPscan for Drupal (https://github.com/cervoise/DPScan)&lt;br /&gt;
     (		&lt;br /&gt;
		our implementation:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''aggressive search''' ===&lt;br /&gt;
&lt;br /&gt;
aggressive research (applied to components and extensions listing) is to Brute Force components and extensions paths in the URL of the target’s application, using a path lists. The result (presence or absence of such a component) is obtained by analyzing the returned HTTP code.&lt;br /&gt;
after you extract the name of the existing component in the application, we need to identify the version of the component, this process is not really based on general technique, we are going to use a variety of techniques like fetching in the readme file. &lt;br /&gt;
Example: if the README file is present and accessible in a WordPress component, you can easily open and read the Stable tag part, obtained by applying the regex pattern &amp;quot;Stable tag: (+.)&amp;quot; on this file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''used technics''' ===&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
bruteforce site content by using a list of paths of known components. This is for the detection of plugin itself. To detect its version, varied methods are possible and depends on the component and the webapp technology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''existant tools''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OWASP ODZ MultiCMS Scanner (https://www.owasp.org/index.php/OWASP_Odz_MultiCMSScanner), (https://github.com/islamoc/odz)&lt;br /&gt;
the majority of enumeration tools are specific, eg Joomscan OWASP for the Joomla CMS (http://sourceforge.net/projects/joomscan/), WordPress WPscan (http://wpscan.org/) and WordPress also Plecost  (https://code.google.com/p/plecost/)&lt;br /&gt;
Some tools work on a combination of CMSs or/and webapps. Eg: &lt;br /&gt;
&lt;br /&gt;
- CMS-explorer: written in Perl, designed to reveal the the specific modules, plugins, components and themes that various CMS driven web sites are running. CMS Explorer currently supports module/theme discovery with the following products:&lt;br /&gt;
Drupal&lt;br /&gt;
Wordpress&lt;br /&gt;
Joomla!&lt;br /&gt;
Mambo&lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/cms-explorer/&lt;br /&gt;
&lt;br /&gt;
- WebSorrow: a perl based tool for misconfiguration, version detection, enumeration, and server information scanning. It's entirely focused on Enumeration and collecting Info on the target server. Web-Sorrow is a &amp;quot;safe to run&amp;quot; program, meaning it is not designed to be an exploit or perform any harmful attacks. &lt;br /&gt;
&lt;br /&gt;
    Project home on Sourceforge: https://code.google.com/p/web-sorrow/&lt;br /&gt;
&lt;br /&gt;
'''CMS-explorer vs WebSorrow'''&lt;br /&gt;
&lt;br /&gt;
Concerning database, they use the same list of plugins, CMS-explorer also uses a list of themes and WebSorrow not. Both deal Joomla, WordPress and Drupal. WebSorrow make ​​more detections and work. Both looks like they use the “fuzzDB” database, which is updated and contains many other files of other types of audits.&lt;br /&gt;
	&lt;br /&gt;
    fuzzDB project home on Sourceforge: https://code.google.com/p/fuzzdb/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''our implementation''' ===&lt;br /&gt;
&lt;br /&gt;
     passive search not implemented yet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for aggressive research, we hesitated between using existing databases and creating  our own. Then, we decided to use the existing ones, but combining files between various existing tools, so we decided to implement a modular system: for each CMS or webapp, we create a module (of component detection) because we figured out that the effort to unify the formats of databases is more than creating a module for each Webapp , in addition to the specific treatment in the extraction of each Webapp version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Listing vulnerabilities''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''passive search''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''used techniques''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''existing tools''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''our implementation''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''aggressive search''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''used techniques ''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''existing tools''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''our implementation''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other sources&lt;br /&gt;
very useful :&lt;br /&gt;
    https://github.com/urbanadventurer/WhatWeb/wiki/How-to-develop-WhatWeb-plugins&lt;br /&gt;
    http://resources.infosecinstitute.com/prototype-model-web-application-fingerprinting/&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155969</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155969"/>
				<updated>2013-07-24T23:03:47Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what CMS uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Passing to WebApp Scanner''' ==&lt;br /&gt;
 &lt;br /&gt;
after pushing the research of fingerprinting techniques, and advanced in detailed design, it is apparent that is more appropriate and useful to go wider, and work on web applications in general and not only CMSs .&lt;br /&gt;
I spoke with Simon about it, and he was pleased with the proposal, so I started the implementation of the web application finger printer core methods based on existing tools such as BlindElephant and Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Application fingerprinting''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
is to look in the target application (HTML, HTTP headers content ...) patterns that determine how likely or definite name and version of the technology used to make this application, passive research does not change anything in requests nor in content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Used techniques''' ===&lt;br /&gt;
&lt;br /&gt;
web page content analysis: is to look for patterns in the HTML document, the scan tool will download the web page and perform patterns search using regex, usually from predefined lists that are updated. Several patterns may indicate the technology used to make the application: Here are the indicators:&lt;br /&gt;
&lt;br /&gt;
    '''- The HTML content itself:''' by performing specific regex patterns on the page content, we can determine with high probability the technology used to build the application, for example:the pattern : &amp;quot;Powered by (: &amp;lt;a href=[^&amp;gt;] + cs-cart \ \ com | CS-Cart?)&amp;quot;..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''- The meta tag Generator:''' for a given app, if the following regex pattern performed :        &amp;quot;? WordPress ([. \ \ D] +) \ \; Version: \ \ 1&amp;quot;  on the content (“content”) of the meta tag named : &amp;quot;generator&amp;quot;, then if successful research therefore the application is, with high probability, carried out with the indicated version of WordPress.&lt;br /&gt;
&lt;br /&gt;
most WordPress websites can be identified by the meta HTML tag, e.g. &amp;lt;meta name=&amp;quot;generator&amp;quot; content=&amp;quot;WordPress 2.6.5&amp;quot;&amp;gt;, but a minority of WordPress websites remove this identifying tag but this does not thwart our scanner, other tests are implemented to reveal a Wordpress application.&lt;br /&gt;
&lt;br /&gt;
- The script tag: its contents may contain the name of the implementation technology, the search is always done with regex patterns.&lt;br /&gt;
&lt;br /&gt;
This method is suitable for most applications and gives good results in a very acceptable time, but it is sensitive to changes in the code of the page code sensitive, as it is always possible to remove these indicators.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''existing tools''' ===&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
among tools the most efficient and best known tools that uses passive research: Wappalazer, it was originally a Firefox and Chrome extension in javascript, but It was then rewritten in several languages like python. Wappalyzer uses a long list of regex structured by type of application and type of pattern (name tag, headers ...) in a JSON file.&lt;br /&gt;
&lt;br /&gt;
home page : http://wappalyzer.com/&lt;br /&gt;
	    GIT repo:  https://github.com/ElbertF/Wappalyzer&lt;br /&gt;
&lt;br /&gt;
WhatWeb another webapps fingerprinting tool which also uses the passive research, but not so deep as Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
home page:  http://www.morningstarsecurity.com/research/whatweb&lt;br /&gt;
GIT repo: https://github.com/urbanadventurer/WhatWeb&lt;br /&gt;
Here is a brief comparison to other fingerprinting tools:&lt;br /&gt;
https://github.com/urbanadventurer/WhatWeb/wiki/Related-Projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''our implementation''' ===&lt;br /&gt;
&lt;br /&gt;
we implemented a similar code to Wappalyzer and it uses the same JSON          list-of-regex file, our tool connect firstly to the target’s URL, then it downloads a web DOM document, it contain the HTML content of the page, than the program applies regex patterns (by type), by reading them once from the JSON file into an object of JsonObject class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    == '''perspectives:''' ==&lt;br /&gt;
    implement other methods of passive search, those present in Whatweb: access to htaccess&lt;br /&gt;
&lt;br /&gt;
dependencies : 	json-simple-1.1.1 : JSON parser, &lt;br /&gt;
                jsoup1.7.2 : HTML parser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''aggressive search''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
consists on Bruteforcing target host in search of indicators files, the presence of such a file reveals a certain technology or even its version as well, but in most cases, the version is set after comparing the MD5 digest of the content of the file found on the host with the present in a pre-built database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''used technics''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
File and Folder Presence (HTTP response codes): This approach doesn’t download the page however it starts looking for obvious trails of an application by directly hitting the URL and in course identifying found and not found application list. In starting days of internet this was easy, just download headers and see if it’s 200 OK or 404 not found and you are done. &lt;br /&gt;
&lt;br /&gt;
However in current scenario, people have been putting up custom 404 Pages and are actually sending 200 OK in case the page is not found. This complicates the efforts and hence the new approach is as follows.&lt;br /&gt;
Download default page 200 OK.&lt;br /&gt;
Download a file which is guaranteed to be non-existing then mark it as a template for 404 and then proceed with detection logic.&lt;br /&gt;
Based on this assumption and knowledge this kind of tools start looking for known files and folders on a website and try to determine the exact application name and version. an example of such scenario would be&lt;br /&gt;
    wp-login.php =&amp;gt; wordpress&lt;br /&gt;
    /owa/ =&amp;gt; Microsoft outlook web frontend.&lt;br /&gt;
&lt;br /&gt;
    reference : http://anantshri.info/articles/web_app_finger_printing.html&lt;br /&gt;
&lt;br /&gt;
Checksum Based identification :This is relatively a newer approach and the most accurate one for now. &lt;br /&gt;
This Technique basically works on below pattern. &lt;br /&gt;
1) Create checksum for files locally and store them in DB &lt;br /&gt;
2) Download static file from remote server &lt;br /&gt;
3) Create the checksum&lt;br /&gt;
4) Compare with the checksum stored in db and identify the version  &lt;br /&gt;
One of the best implementation of this technique is BlindElephant &lt;br /&gt;
&lt;br /&gt;
    reference:  http://anantshri.info/articles/web_app_finger_printing.html&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155965</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155965"/>
				<updated>2013-07-24T19:07:23Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what CMS uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Passing to WebApp Scanner''' ==&lt;br /&gt;
 &lt;br /&gt;
after pushing the research of fingerprinting techniques, and advanced in detailed design, it is apparent that is more appropriate and useful to go wider, and work on web applications in general and not only CMSs .&lt;br /&gt;
I spoke with Simon about it, and he was pleased with the proposal, so I started the implementation of the web application finger printer core methods based on existing tools such as BlindElephant and Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Application fingerprinting''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Passive search''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
is to look in the target application (HTML, HTTP headers content ...) patterns that determine how likely or definite name and version of the technology used to make this application, passive research does not change anything in requests nor in content.&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155964</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155964"/>
				<updated>2013-07-24T19:06:38Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what CMS uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Passing to WebApp Scanner''' ==&lt;br /&gt;
 &lt;br /&gt;
after pushing the research of fingerprinting techniques, and advanced in detailed design, it is apparent that is more appropriate and useful to go wider, and work on web applications in general and not only CMSs .&lt;br /&gt;
I spoke with Simon about it, and he was pleased with the proposal, so I started the implementation of the web application finger printer core methods based on existing tools such as BlindElephant and Wappalyzer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Application fingerprinting''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== == '''Passive search''' == ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
is to look in the target application (HTML, HTTP headers content ...) patterns that determine how likely or definite name and version of the technology used to make this application, passive research does not change anything in requests nor in content.&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155199</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155199"/>
				<updated>2013-07-06T18:57:41Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what CMS uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155198</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155198"/>
				<updated>2013-07-06T18:57:10Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
   - Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
   - Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what CMS uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155197</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155197"/>
				<updated>2013-07-06T16:55:11Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what CMS uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155115</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155115"/>
				<updated>2013-07-04T18:31:33Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155114</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155114"/>
				<updated>2013-07-04T18:30:18Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''a- Passive search'''=====&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''b- Agressive search''' ====&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''3- Fingerprinting module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''4- Vulnerability Enumeration module''' === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155113</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155113"/>
				<updated>2013-07-04T18:28:47Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
=== '''1- CMS detection module''' ===&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search'''&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''b- Agressive search'''&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''2- Plugin enumerating module''' ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''3- Fingerprinting module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''4- Vulnerability Enumeration module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155112</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155112"/>
				<updated>2013-07-04T18:19:54Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
    '''1- CMS detection module'''&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search'''&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''b- Agressive search'''&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''2- Plugin enumerating module'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''3- Fingerprinting module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''4- Vulnerability Enumeration module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155111</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155111"/>
				<updated>2013-07-04T18:17:52Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
'''1- CMS detection module'''&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search'''&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''b- Agressive search'''&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2- Plugin enumerating module'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''3- Fingerprinting module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4- Vulnerability Enumeration module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155110</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155110"/>
				<updated>2013-07-04T18:15:09Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
'''1- CMS detection module'''&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search'''&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''b- Agressive search'''&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2- Plugin enumerating module'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''3- Fingerprinting module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4- Enumeration Vulnerability module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155109</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155109"/>
				<updated>2013-07-04T18:09:19Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
'''1- CMS detection module'''&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search'''&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''b- Agressive search'''&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2- Plugin enumerating module'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- Aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3- Fingerprinting module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4- Enumeration Vulnerability module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155108</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155108"/>
				<updated>2013-07-04T18:02:12Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
'''1- CMS detection module'''&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search'''&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''b- Agressive search'''&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2- plugin enumerating module'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3- fingerprinting module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4- Enumeration Vulnerability module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
          [[File:flowsheet.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155107</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155107"/>
				<updated>2013-07-04T18:01:16Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
'''1- CMS detection module'''&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search'''&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''b- Agressive search'''&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2- plugin enumerating module'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3- fingerprinting module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4- Enumeration Vulnerability module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:flowsheet.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:Flowsheet.jpg&amp;diff=155106</id>
		<title>File:Flowsheet.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:Flowsheet.jpg&amp;diff=155106"/>
				<updated>2013-07-04T18:00:56Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155105</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155105"/>
				<updated>2013-07-04T18:00:26Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
'''1- CMS detection module'''&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search'''&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''b- Agressive search'''&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2- plugin enumerating module'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3- fingerprinting module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4- Enumeration Vulnerability module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''flowsheet''' ==&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155104</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155104"/>
				<updated>2013-07-04T17:57:44Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
'''1- CMS detection module'''&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search'''&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''b- Agressive search'''&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2- plugin enumerating module'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3- fingerprinting module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;br /&gt;
&lt;br /&gt;
[[File:WP_hashDB_Xml.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''4- Enumeration Vulnerability module''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to give a list of vulnerabilities that contains a given plugin, this module is called after the steps of sensing the CMS and plugin enumerating, this module use :&lt;br /&gt;
&lt;br /&gt;
1- database that contains the correspondence between name-version-plugin / vulnerability-list&lt;br /&gt;
&lt;br /&gt;
2- web search based on a list of links to useful sites&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:WP_hashDB_Xml.jpg&amp;diff=155103</id>
		<title>File:WP hashDB Xml.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:WP_hashDB_Xml.jpg&amp;diff=155103"/>
				<updated>2013-07-04T17:54:10Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155102</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155102"/>
				<updated>2013-07-04T17:52:57Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of four main modules:&lt;br /&gt;
&lt;br /&gt;
'''1- CMS detection module'''&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search'''&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''b- Agressive search'''&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2- plugin enumerating module'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3- fingerprinting module''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155101</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155101"/>
				<updated>2013-07-04T17:48:32Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of three main modules:&lt;br /&gt;
&lt;br /&gt;
'''1- CMS detection module'''&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search'''&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''b- Agressive search'''&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2- plugin enumerating module'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''3- fingerprinting module''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used to identify with controllable accuracy - overlooked used method and processing time - the version of CMS and / or plugins used, the joint research passive / aggressive  is used, using&lt;br /&gt;
&lt;br /&gt;
- Content analysis of some specific file, example: a readme file contains the following information: &amp;quot;package to Version 3.0.x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains unique file-links / paths that determines version of CMS / plugin&lt;br /&gt;
&lt;br /&gt;
- A list / database that contains the correspondence : plugin version / filePath / hashDegest, so after you have verified the presence of a unique name file, but not unique content file, comparing its digest with that present in the database, the result indicates the component version&lt;br /&gt;
here is an example of WordPress versions database :&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155099</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155099"/>
				<updated>2013-07-04T17:36:41Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of three main modules:&lt;br /&gt;
&lt;br /&gt;
'''1- CMS detection module'''&lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''a- Passive search'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''b- Agressive search'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2- plugin enumerating module'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
'''a- passive search:''' analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
'''b- aggressive research:''' using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155098</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155098"/>
				<updated>2013-07-04T17:33:39Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of three main modules:&lt;br /&gt;
&lt;br /&gt;
''''''1- CMS detection module '''''' &lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''A- Passive search'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
    1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
    2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
    3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    '''b- Agressive search'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''''2- plugins enumerating module '''''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
    1 - passive search: analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
    2 - aggressive research: using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155097</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155097"/>
				<updated>2013-07-04T17:31:43Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of three main modules:&lt;br /&gt;
&lt;br /&gt;
'''1- CMS detection module ''' &lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''A- Passive search'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
    1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
    2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
    3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''b- Agressive search'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs from a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''2- module list of plugins''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to list the plugins used in the application of the given url, both passive and active methods are always possible&lt;br /&gt;
&lt;br /&gt;
1 - passive search: analyzing the page content using regex &lt;br /&gt;
&lt;br /&gt;
2 - aggressive research: using a list of names of plugins, which will be compared with any names found in specific URLs, for example, WordPress plugins in  : url + / wp-content/plugins /&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155096</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155096"/>
				<updated>2013-07-04T17:22:00Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER (ZAP CMSS) is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''ZAP CMSS modules''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ZAP CMS scanner extension consists of three main modules:&lt;br /&gt;
&lt;br /&gt;
'''1- CMS detection module ''' &lt;br /&gt;
&lt;br /&gt;
mains to  indicate what cms uses the application of given url, two methods are used with CMS detector :&lt;br /&gt;
a- Passive search: based on page content analysis  :&lt;br /&gt;
 &lt;br /&gt;
    1 - using text string (case sensitive) &lt;br /&gt;
 &lt;br /&gt;
    2 - using regex&lt;br /&gt;
&lt;br /&gt;
these two methods are used to recognize html tags,  eg: meta tag Generator, or to extract texts from the page showing the tool with which this application is created&lt;br /&gt;
&lt;br /&gt;
    3 - using google hacks (from a list of predefined keywords)&lt;br /&gt;
&lt;br /&gt;
'''b- Agressive search'''&lt;br /&gt;
&lt;br /&gt;
Is to try known and unique URLs of CMSs for a predefined list, the presence of these paths indicates with certainty the CMS used, the problem with this method is that it will not be very effective in if several CMSs are supported, this because of the absence of a single file in this case&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155095</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155095"/>
				<updated>2013-07-04T17:12:45Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
&lt;br /&gt;
- Regular expressions&lt;br /&gt;
&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
&lt;br /&gt;
- URL recognition&lt;br /&gt;
&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
&lt;br /&gt;
- Fast&lt;br /&gt;
&lt;br /&gt;
- Low resource usage&lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155094</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=155094"/>
				<updated>2013-07-04T17:11:55Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Matches''' ==&lt;br /&gt;
&lt;br /&gt;
Matches are made with:&lt;br /&gt;
&lt;br /&gt;
- Text strings (case sensitive)&lt;br /&gt;
- Regular expressions&lt;br /&gt;
- Google Hack Database queries (limited set of keywords)&lt;br /&gt;
- MD5 hashes&lt;br /&gt;
- URL recognition&lt;br /&gt;
- HTML tag patterns&lt;br /&gt;
- Custom java code for passive and aggressive operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''features''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Control the trade off between speed/stealth and reliability&lt;br /&gt;
- Plugins include example URLs&lt;br /&gt;
- Performance tuning. Control how many websites to scan concurrently&lt;br /&gt;
- Result certainty awareness&lt;br /&gt;
- Fast&lt;br /&gt;
- Low resource usage&lt;br /&gt;
- Accurate (Low FP/FN)&lt;br /&gt;
- Resistant to hardening/banner removal&lt;br /&gt;
- Super easy to support new versions/apps&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=154640</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=154640"/>
				<updated>2013-06-28T17:53:09Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
- Fast &lt;br /&gt;
&lt;br /&gt;
- Low resource usage &lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN) &lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal &lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Vulnerable plugins , themes and Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from a well-known list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating from web search&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating using the ZAP api&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Enumerating Security measures (firewalls, security plugins  ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          [[File:CMSSModules.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=154639</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=154639"/>
				<updated>2013-06-28T17:18:10Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
            [[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
- Fast &lt;br /&gt;
&lt;br /&gt;
- Low resource usage &lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN) &lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal &lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=154638</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=154638"/>
				<updated>2013-06-28T17:17:36Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
[[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
- Fast &lt;br /&gt;
&lt;br /&gt;
- Low resource usage &lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN) &lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal &lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
                        [[File:CMSSFunctions.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=154637</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=154637"/>
				<updated>2013-06-28T17:17:01Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
[[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
- Fast &lt;br /&gt;
&lt;br /&gt;
- Low resource usage &lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN) &lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal &lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
[[File:CMSSFunctions.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:CMSSFunctions.jpg&amp;diff=154636</id>
		<title>File:CMSSFunctions.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:CMSSFunctions.jpg&amp;diff=154636"/>
				<updated>2013-06-28T17:14:54Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:CMSSModules.jpg&amp;diff=154635</id>
		<title>File:CMSSModules.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:CMSSModules.jpg&amp;diff=154635"/>
				<updated>2013-06-28T17:13:03Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:StatCMS.jpg&amp;diff=154634</id>
		<title>File:StatCMS.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:StatCMS.jpg&amp;diff=154634"/>
				<updated>2013-06-28T17:12:00Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: uploaded a new version of &amp;amp;quot;File:StatCMS.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=154633</id>
		<title>GSoC2013 Ideas/OWASP ZAP CMS SCANNER</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas/OWASP_ZAP_CMS_SCANNER&amp;diff=154633"/>
				<updated>2013-06-28T17:09:06Z</updated>
		
		<summary type="html">&lt;p&gt;Abdelhadi AZOUNI: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Introduction''' ==&lt;br /&gt;
 &lt;br /&gt;
Latest Stats Show that the usage of CMS has grown in the last 5 years Just WordPress and Joomla occupy more than 6% of the top 1 million site &lt;br /&gt;
The Usage Has Grown in Both Corporate and Personal sites And with the Chaotic Development of plugins and Components in those CMSs The risk of vulnerabilities and flows increase more and more &lt;br /&gt;
&lt;br /&gt;
[[File:statCMS.jpg]]&lt;br /&gt;
&lt;br /&gt;
OWASP ZAP CMS SCANNER is a Scanner with More specified search methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Functionalities''' ==&lt;br /&gt;
  &lt;br /&gt;
- Enumerating Plugins and Components and Themes in the CMS (Passive and Aggressive Search methods)&lt;br /&gt;
&lt;br /&gt;
- Enumerating from page content &lt;br /&gt;
&lt;br /&gt;
- Enumerating from lists (or database) &lt;br /&gt;
&lt;br /&gt;
- Version Fingerprinting (with multiple methods)&lt;br /&gt;
 &lt;br /&gt;
- Labor intensive to add signatures &lt;br /&gt;
&lt;br /&gt;
- Manually locate version in files or build regexes for headers &lt;br /&gt;
&lt;br /&gt;
- Built-in options to remove identifiers (eg, meta generator) &lt;br /&gt;
&lt;br /&gt;
- Very Generic &lt;br /&gt;
&lt;br /&gt;
- Fast &lt;br /&gt;
&lt;br /&gt;
- Low resource usage &lt;br /&gt;
&lt;br /&gt;
- Accurate (Low FP/FN) &lt;br /&gt;
&lt;br /&gt;
- Resistant to hardening/banner removal &lt;br /&gt;
&lt;br /&gt;
- Super easy to support new versions/apps&lt;br /&gt;
&lt;br /&gt;
[[File:Examplje.jpg]]&lt;/div&gt;</summary>
		<author><name>Abdelhadi AZOUNI</name></author>	</entry>

	</feed>