mirror of
https://github.com/Ekultek/Zeus-Scanner.git
synced 2026-03-11 08:55:51 +00:00
created plugin scripts to parse the plugins the website uses, will be adding more
This commit is contained in:
parent
bd558714b1
commit
e547265dbd
24 changed files with 454 additions and 0 deletions
0
lib/core/parse.py
Normal file
0
lib/core/parse.py
Normal file
24
lib/plugins/1024.py
Normal file
24
lib/plugins/1024.py
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
import re
|
||||
|
||||
|
||||
__product__ = "1024-CMS"
|
||||
__description__ = (
|
||||
"1024 is one of a few CMS's leading the way with "
|
||||
"the implementation of the AJAX technology into "
|
||||
"all its areas. This includes dynamic administration "
|
||||
"and user interaction. 1024 offers you to ability to "
|
||||
"set up your own community forums, download area, news "
|
||||
"posts, member management and more."
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r".1024cms.", re.I),
|
||||
re.compile(r"<.+>powered.by.1024.cms<.+.>", re.I),
|
||||
re.compile(r"1024.cms", re.I)
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
23
lib/plugins/360.py
Normal file
23
lib/plugins/360.py
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import re
|
||||
|
||||
|
||||
__product__ = "360 Web Manager"
|
||||
__description__ = (
|
||||
"1024 is one of a few CMS's leading the way with the "
|
||||
"implementation of the AJAX technology into all its "
|
||||
"areas. This includes dynamic adminstration and user "
|
||||
"interaction. 1024 offers you to ability to set up your "
|
||||
"own community forums, download area, news posts, member management and more."
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r"powered.by.360.web.manager", re.I),
|
||||
re.compile(r"360webmanager.software", re.I),
|
||||
re.compile(r"http(s)?.\S{2}(www.)?360webmanager(.com)?", re.I),
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
25
lib/plugins/3com.py
Normal file
25
lib/plugins/3com.py
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
import re
|
||||
|
||||
|
||||
__product__ = "3COM-NBX"
|
||||
__description__ = (
|
||||
"3COM NBX phone system. The NBX NetSet utility is a web "
|
||||
"interface in which you configure and manage the NBX "
|
||||
"system. NBX systems present the NBX NetSet utility "
|
||||
"through an embedded web server that is integrated in system software."
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r"nbx.netset", re.I),
|
||||
re.compile(r"<.+>nbx.netset<.+.>", re.I),
|
||||
re.compile(r"3com.corporation", re.I),
|
||||
re.compile(r"nbx.corporation", re.I),
|
||||
re.compile(r"http(s)?.//(www.)?nbxhelpdesk.com", re.I),
|
||||
re.compile(r"nbx.help.desk", re.I)
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
23
lib/plugins/3dcart.py
Normal file
23
lib/plugins/3dcart.py
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import re
|
||||
|
||||
import lib.core.common
|
||||
|
||||
|
||||
__product__ = "3dcart"
|
||||
__description__ = (
|
||||
"The 3dcart Shopping Cart Software is a complete e-commerce solution for anyone."
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
headers = kwargs.get("headers", None)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r"3dcart.stats", re.I),
|
||||
re.compile(r"/3dvisit/", re.I)
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
if plugin.search(headers.get(lib.core.common.HTTP_HEADER.SET_COOKIE, "")) is not None:
|
||||
return True
|
||||
19
lib/plugins/4d.py
Normal file
19
lib/plugins/4d.py
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
import re
|
||||
|
||||
import lib.core.common
|
||||
|
||||
|
||||
__product__ = "4D"
|
||||
__description__ = (
|
||||
"4D web application deployment server"
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
headers = kwargs.get("headers", None)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r"/^4D_v[\d]{1,2}(_SQL)?\/([\d\.]+)$/", re.I),
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(headers.get(lib.core.common.HTTP_HEADER.SERVER, "")) is not None:
|
||||
return True
|
||||
23
lib/plugins/4images.py
Normal file
23
lib/plugins/4images.py
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import re
|
||||
|
||||
|
||||
__product__ = "4images"
|
||||
__description__ = (
|
||||
"4images is a powerful web-based image gallery "
|
||||
"management system. Features include comment system, "
|
||||
"user registration and management, password protected "
|
||||
"administration area with browser-based upload and HTML "
|
||||
"templates for page layout and design."
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
plugin_protection_schema = (
|
||||
re.compile(r"http(s)?.//(www.)?4homepages.\w+", re.I),
|
||||
re.compile(r"powered.by.<.+>4images<.+.>", re.I),
|
||||
re.compile(r"powered.by.4images", re.I)
|
||||
)
|
||||
for plugin in plugin_protection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
19
lib/plugins/68classified.py
Normal file
19
lib/plugins/68classified.py
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
import re
|
||||
|
||||
|
||||
__product__ = "68-Classifieds-Script"
|
||||
__description__ = (
|
||||
"68 Classifieds Script - Requires PHP"
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r"http(s)?.//(www.)?68classifieds.com", re.I),
|
||||
re.compile(r"68.classifieds.script", re.I),
|
||||
re.compile(r"68.classifieds", re.I)
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
0
lib/plugins/__init__.py
Normal file
0
lib/plugins/__init__.py
Normal file
19
lib/plugins/aardvark.py
Normal file
19
lib/plugins/aardvark.py
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
import re
|
||||
|
||||
|
||||
__product__ = "Aardvark-Topsites-PHP"
|
||||
__description__ = (
|
||||
"Aardvark Topsites PHP is a free topsites script built on PHP and MySQL"
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r"powered.by.aardvark.topsites.php", re.I),
|
||||
re.compile(r"aardvark.topsites.php", re.I),
|
||||
re.compile(r"http(s)?.//(www.)?aardvarktopsitesphp.com", re.I)
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
20
lib/plugins/abyss.py
Normal file
20
lib/plugins/abyss.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
import re
|
||||
|
||||
import lib.core.common
|
||||
|
||||
|
||||
__product__ = "Abyss-Web-Server"
|
||||
__description__ = (
|
||||
"Abyss Web Server is a compact web server available "
|
||||
"for Windows, Mac OS X, Linux, and FreeBSD operating systems"
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
headers = kwargs.get("headers", None)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r"/^Abyss\/([^\s]+)/", re.I),
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(headers.get(lib.core.common.HTTP_HEADER.SERVER, "")) is not None:
|
||||
return True
|
||||
22
lib/plugins/accellion.py
Normal file
22
lib/plugins/accellion.py
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
import re
|
||||
|
||||
import lib.core.common
|
||||
|
||||
|
||||
__product__ = "Accellion-Secure-File-Transfer"
|
||||
__description__ = (
|
||||
"Accellion Secure File Transfer (SFT)"
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
headers = kwargs.get("headers", None)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r"/sfcurl.deleted./", re.I),
|
||||
re.compile(r"/\/courier\/[\d]+@\/mail_user_login\.html\?$/", re.I),
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(headers.get(lib.core.common.HTTP_HEADER.LOCATION, "")) is not None:
|
||||
return True
|
||||
if plugin.search(headers.get(lib.core.common.HTTP_HEADER.SET_COOKIE, "")) is not None:
|
||||
return True
|
||||
19
lib/plugins/atomfeed.py
Normal file
19
lib/plugins/atomfeed.py
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
import re
|
||||
|
||||
|
||||
__product__ = "Atom Feed"
|
||||
__description__ = (
|
||||
"Atom Feeds allow software programs to check for updates published on a website"
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r"<link.\w+.[\"]?atom.xml[\"]?", re.I),
|
||||
re.compile(r"type.[\"]?application.atom.xml[\"]?", re.I),
|
||||
re.compile(r"title.[\"]?sitewide.atom.feed[\"]?", re.I)
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
21
lib/plugins/b2evolution.py
Normal file
21
lib/plugins/b2evolution.py
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
import re
|
||||
|
||||
|
||||
__product__ = "b2evolution"
|
||||
__description__ = (
|
||||
"b2evolution is a powerful blog tool you can install on your own website"
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r"b2evolution", re.I),
|
||||
re.compile(r"powered.by.b\devolution", re.I),
|
||||
re.compile(r"powered.by.b\devolution.\d{3}\w+.gif", re.I),
|
||||
re.compile(r"http(s)?.//(www.)?b2evolution.net", re.I),
|
||||
re.compile(r"visit.b2evolution.s.website", re.I)
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
16
lib/plugins/bmcremedy.py
Normal file
16
lib/plugins/bmcremedy.py
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
import re
|
||||
|
||||
|
||||
__product__ = "BMC Remedy"
|
||||
__description__ = (
|
||||
"BMC Remedy is an IT management ticketing system designed by BMC Software"
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r"<.+>bmc.\w+.remedy.\w+.mid.\w+.tier.\w+.\d+.\d+...login<.+.>", re.I),
|
||||
re.compile(r".bmc.remedy.action.request.system.", re.I),
|
||||
re.compile(r"class.[\'\"]?caption[\'\"]?.\W{1,3}\w+..[0-9]{4}.bmc.software[,]?.inc[orporated]?.", re.I)
|
||||
)
|
||||
27
lib/plugins/bomgar.py
Normal file
27
lib/plugins/bomgar.py
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
import re
|
||||
|
||||
import lib.core.common
|
||||
|
||||
|
||||
__product__ = "Bomgar"
|
||||
__description__ = (
|
||||
"Bomgar simplifies support by letting technicians control "
|
||||
"remote computers, servers, smartphones and network devices "
|
||||
"over the internet or network. With Bomgar, a support rep can "
|
||||
"see what customers see or control their computers for support"
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
headers = kwargs.get("headers", None)
|
||||
plugin_detection_schema = (
|
||||
re.compile(".bomgar.", re.I),
|
||||
re.compile(r"http(s)?.//(www.)?bomgar.com", re.I),
|
||||
re.compile(r"alt.[\'\"]?remote.support.by.bomgar[\'\"]?", re.I)
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(headers.get(lib.core.common.HTTP_HEADER.SERVER, "")) is not None:
|
||||
return True
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
20
lib/plugins/googleapi.py
Normal file
20
lib/plugins/googleapi.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
import re
|
||||
|
||||
|
||||
__product__ = "Google API"
|
||||
__description__ = (
|
||||
"Google APIs is a set of application programming interfaces (APIs) developed by Google "
|
||||
"which allow communication with Google Services and their integration to other services"
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r"src.[\'\"]?http(s)?.//googleapis.com", re.I),
|
||||
re.compile(r"src.[\'\"]?http(s)?.//ajax.googleapis.com", re.I),
|
||||
re.compile(r".googleapis.", re.I)
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
20
lib/plugins/html5.py
Normal file
20
lib/plugins/html5.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
import re
|
||||
|
||||
|
||||
__product__ = "HTML5"
|
||||
__description__ = (
|
||||
"HTML5 is a markup language used for structuring and presenting "
|
||||
"content on the World Wide Web. It is the fifth and current major "
|
||||
"version of the HTML standard."
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r".html5.", re.I),
|
||||
re.compile(r"\bhtml\d+", re.I)
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
25
lib/plugins/ihtml.py
Normal file
25
lib/plugins/ihtml.py
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
import re
|
||||
|
||||
import lib.core.common
|
||||
|
||||
|
||||
__product__ = "iHTML"
|
||||
__description__ = (
|
||||
"iHTML is a server side internet/web programming and scripting "
|
||||
"language in used by thousands of sites worldwide to deliver "
|
||||
"cost effective dynamic database driven web sites"
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
headers = kwargs.get("headers", None)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r".ihtml.", re.I),
|
||||
re.compile(r"\bihtml.", re.I)
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
if plugin.search(headers.get(lib.core.common.HTTP_HEADER.X_POWERED_BY, "")) is not None:
|
||||
return True
|
||||
20
lib/plugins/jquery.py
Normal file
20
lib/plugins/jquery.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
import re
|
||||
|
||||
|
||||
__product__ = "JQuery"
|
||||
__description__ = (
|
||||
"A fast, concise, JavaScript that simplifies how to traverse "
|
||||
"HTML documents, handle events, perform animations, and add AJAX"
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r"src.[\'\"]?http(s)?.//ajax.googleapis.com.ajax.libs.jquery.\d.\d.\d", re.I),
|
||||
re.compile(r".jquery.", re.I),
|
||||
re.compile(r"jquery.min.js", re.I)
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
25
lib/plugins/opengraph.py
Normal file
25
lib/plugins/opengraph.py
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
import re
|
||||
|
||||
|
||||
__product__ = "Open-Graph-Protocol"
|
||||
__description__ = (
|
||||
"The Open Graph protocol enables you to integrate "
|
||||
"your Web pages into the social graph. It is currently "
|
||||
"designed for Web pages representing profiles of real-world "
|
||||
"things. Things like movies, sports teams, celebrities, "
|
||||
"and restaurants. Including Open Graph tags on your Web page, "
|
||||
"makes your page equivalent to a Facebook Page"
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r".og.title.", re.I),
|
||||
re.compile(".fb.admins.", re.I),
|
||||
re.compile(r".og.type.", re.I),
|
||||
re.compile(r".fb.app.id.", re.I)
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
24
lib/plugins/openxchange.py
Normal file
24
lib/plugins/openxchange.py
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
import re
|
||||
|
||||
import lib.core.common
|
||||
|
||||
|
||||
__product__ = "Open-Xchange-Server"
|
||||
__description__ = (
|
||||
"Open Xchange Mail Server"
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
headers = kwargs.get("headers", None)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r"open.xchange.server", re.I),
|
||||
re.compile(r"javascript.to.access.the.open.xchange.server", re.I),
|
||||
re.compile(r"/^http(s)?://(www.)?[^\/]+\/ox6\/ox\.html$/", re.I)
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
if plugin.search(headers.get(lib.core.common.HTTP_HEADER.LOCATION, "")) is not None:
|
||||
return True
|
||||
20
lib/plugins/rssfeed.py
Normal file
20
lib/plugins/rssfeed.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
import re
|
||||
|
||||
|
||||
__product__ = "RSS Feed"
|
||||
__description__ = (
|
||||
"RSS (Rich Site Summary) is a type of web feed which allows "
|
||||
"users to access updates to online content in a standardized, "
|
||||
"computer-readable format"
|
||||
)
|
||||
|
||||
|
||||
def search(html, **kwargs):
|
||||
html = str(html)
|
||||
plugin_detection_schema = (
|
||||
re.compile(r"type.[\'\"]?application/rss.xml[\'\"]?", re.I),
|
||||
re.compile(r"title.[\'\"]?rss.feed[\'\"]?", re.I)
|
||||
)
|
||||
for plugin in plugin_detection_schema:
|
||||
if plugin.search(html) is not None:
|
||||
return True
|
||||
0
lib/tamper_scripts/multispace2comment_encode.py
Normal file
0
lib/tamper_scripts/multispace2comment_encode.py
Normal file
Loading…
Reference in a new issue