created plugin scripts to parse the plugins the website uses, will be adding more

This commit is contained in:
ekultek 2017-12-06 09:33:15 -06:00
parent bd558714b1
commit e547265dbd
24 changed files with 454 additions and 0 deletions

0
lib/core/parse.py Normal file
View file

24
lib/plugins/1024.py Normal file
View 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
View 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
View 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
View 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
View 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
View 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

View 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
View file

19
lib/plugins/aardvark.py Normal file
View 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
View 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
View 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
View 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

View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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

View 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
View 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