Welcome to Django\<\/title\>",content) is not None
19 | if _ : return "Django - Python Framework"
--------------------------------------------------------------------------------
/lib/handler/audit.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding:utf-8 -*-
3 | #
4 | # @name: Wascan - Web Application Scanner
5 | # @repo: https://github.com/m4ll0k/Wascan
6 | # @author: Momo Outaadi (M4ll0k)
7 | # @license: See the file 'LICENSE.txt
8 |
9 | from plugins.audit.xst import *
10 | from plugins.audit.apache import *
11 | from plugins.audit.dav import *
12 | from plugins.audit.phpinfo import *
13 | from plugins.audit.robots import *
14 | from lib.utils.printer import *
15 |
16 |
17 | def Audit(kwargs, url, data):
18 | info("Starting audit module...")
19 | xst(kwargs, url, data).run()
20 | apache(kwargs, url, data).run()
21 | # dav(kwargs, url, data).run()
22 | phpinfo(kwargs, url, data).run()
23 | robots(kwargs, url, data).run()
24 | null()
25 |
--------------------------------------------------------------------------------
/plugins/fingerprint/server/server.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding:utf-8 -*-
3 | #
4 | # @name: Wascan - Web Application Scanner
5 | # @repo: https://github.com/m4ll0k/Wascan
6 | # @author: Momo Outaadi (M4ll0k)
7 | # @license: See the file 'LICENSE.txt
8 |
9 | from lib.request.request import *
10 | from lib.utils.rand import *
11 |
12 | class server(Request):
13 | def __init__(self,kwargs,url):
14 | Request.__init__(self,kwargs)
15 | self.url = url
16 |
17 | def run(self):
18 | server = ""
19 | try:
20 | resp = self.Send(url=self.url,method="GET",headers={r_string(5) : r_string(10)})
21 | for item in resp.headers.items():
22 | if item[0].lower() == "server":
23 | server += item[1]
24 | break
25 | return server
26 | except Exception,e:
27 | pass
--------------------------------------------------------------------------------
/plugins/fingerprint/framework/asp_mvc.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding:utf-8 -*-
3 | #
4 | # @name: Wascan - Web Application Scanner
5 | # @repo: https://github.com/m4ll0k/Wascan
6 | # @author: Momo Outaadi (M4ll0k)
7 | # @license: See the file 'LICENSE.txt
8 |
9 | from re import search,I
10 |
11 | def mvc(headers,content):
12 | _ = False
13 | for header in headers.items():
14 | _ |= header[0] == "x-aspnetmvc-version"
15 | _ |= header[0] == "x-aspnet-version"
16 | _ |= search(r"asp.net|anonymousID=|chkvalues=|__requestverificationtoken",header[1]) is not None
17 | if _ : break
18 | _ |= search(r"Web Settings for Active Server Pages",content) is not None
19 | _ |= search(r"name=\"__VIEWSTATEENCRYPTED\" id=\"__VIEWSTATEENCRYPTED\"",content) is not None
20 | if _ : return "ASP.NET Framework"
--------------------------------------------------------------------------------
/plugins/fingerprint/framework/zend.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding:utf-8 -*-
3 | #
4 | # @name: Wascan - Web Application Scanner
5 | # @repo: https://github.com/m4ll0k/Wascan
6 | # @author: Momo Outaadi (M4ll0k)
7 | # @license: See the file 'LICENSE.txt
8 |
9 | from re import search,I
10 |
11 | def zend(headers,content):
12 | _ = False
13 | for header in headers.items():
14 | _ |= search("zend",header[1]) is not None
15 | if _ : break
16 | _ |= search(r"\",content) is not None
20 | if _ : return "Zend - PHP Framework"
--------------------------------------------------------------------------------
/lib/handler/brute.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding:utf-8 -*-
3 | #
4 | # @name: Wascan - Web Application Scanner
5 | # @repo: https://github.com/m4ll0k/Wascan
6 | # @author: Momo Outaadi (M4ll0k)
7 | # @license: See the file 'LICENSE.txt
8 |
9 | from plugins.brute.adminpanel import *
10 | from plugins.brute.backdoor import *
11 | from plugins.brute.backupdir import *
12 | from plugins.brute.backupfile import *
13 | from plugins.brute.commondir import *
14 | from plugins.brute.commonfile import *
15 |
16 |
17 | def Brute(kwargs, url, data):
18 | info("Starting brute module...")
19 | backdoor(kwargs, url, data).run()
20 | backupdir(kwargs, url, data).run()
21 | backupfile(kwargs, url, data).run()
22 | commonfile(kwargs, url, data).run()
23 | commondir(kwargs, url, data).run()
24 | adminpanel(kwargs, url, data).run()
25 | null()
26 |
--------------------------------------------------------------------------------
/lib/db/errors/xpath.json:
--------------------------------------------------------------------------------
1 | {"info":{"name":"XPath","regexp":["::xpath()","XPATH syntax error\\:","XPathException","XPath\\:","XPath\\(\\)","System.Xml.XPath.XPathException\\:","MS\\.Internal\\.Xml\\.","Unknown error in XPath","org.apache.xpath.XPath","A closing bracket expected in","An operand in Union Expression does not produce a node-set","Cannot convert expression to a number","Document Axis does not allow any context Location Steps","Empty Path Expression","Empty Relative Location Path","Empty Union Expression","Expected \\'\\)\\' in","Expected node test or name specification after axis operator","Incompatible XPath key","Incorrect Variable Binding","libxml2 library function failed","xmlsec library function","error \\'80004005\\'","A document must contain exactly one root element\\.","Expected token \\']\\'","\\msxml4.dll\\<\\/font\\>","4005 Notes error: Query is not understandable"]}}
--------------------------------------------------------------------------------
/plugins/fingerprint/cms/silverstripe.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding:utf-8 -*-
3 | #
4 | # @name: Wascan - Web Application Scanner
5 | # @repo: https://github.com/m4ll0k/Wascan
6 | # @author: Momo Outaadi (M4ll0k)
7 | # @license: See the file 'LICENSE.txt'
8 |
9 | from re import search,I
10 |
11 | def silverstripe(headers,content):
12 | _ = False
13 | if 'set-cookie' in headers.keys():
14 | _ |= search(r"PastVisitor=[0-9]+.*",headers["set-cookie"],I) is not None
15 | _ |= search(r"\]*content\=\"SilverStripe",content) is not None
16 | _ |= search(r"\]*stylesheet[^>]*layout.css[^>]*\>[^<]*\]*stylesheet[^>]*typography.css[^>]*\>[^<]*\]*stylesheet[^>]*form.css[^>]*\>",content) is not None
17 | _ |= search(r"\
",content) is not None
16 | _ |= search(r"\",content) is not None
17 | _ |= search(r"Powered by \Joomla!\<\/a\>.",content) is not None
18 | if _ : return "Joomla"
--------------------------------------------------------------------------------
/lib/db/adminpanel.wascan:
--------------------------------------------------------------------------------
1 | admin
2 | admin.asp
3 | admin.aspx
4 | admin.cfm
5 | admin.cgi
6 | admin.do
7 | admin.htm
8 | admin.py
9 | sadmin
10 | cmsadmin
11 | admin.db
12 | admin.ctp
13 | admin.ini
14 | admin.tpl
15 | admin.xml
16 | admin.html
17 | admin.jsp
18 | admin.php
19 | admin.php3
20 | admin2
21 | admin_
22 | admin_login
23 | admin_logon
24 | administracion
25 | administrador
26 | administrateur
27 | administration
28 | administrator
29 | amministratore
30 | administrator
31 | adminlogon
32 | authadmin
33 | backend
34 | console
35 | fpadmin
36 | iisadmin
37 | manage
38 | manager
39 | phpmyadmin
40 | portal
41 | siteadmin
42 | staff
43 | user
44 | users
45 | usuario
46 | usuarios
47 | webadmin
48 | wp-admin
49 | wp-login.php
50 | ~admin
51 | _admin
52 | admin2.php
53 | admin.html
54 | admins.php
55 | admin.php3
56 | admin.aspx
57 | _admin.php
58 | admin1.php
59 | admin.thtml
60 | admin.rhtml
61 | xgadmin.asp
62 | pnadmin.php
--------------------------------------------------------------------------------
/lib/handler/disclosure.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding:utf-8 -*-
3 | #
4 | # @name: Wascan - Web Application Scanner
5 | # @repo: https://github.com/m4ll0k/Wascan
6 | # @author: Momo Outaadi (M4ll0k)
7 | # @license: See the file 'LICENSE.txt
8 |
9 |
10 | from plugins.disclosure.creditcards import *
11 | from plugins.disclosure.emails import *
12 | from plugins.disclosure.privateip import *
13 | from plugins.disclosure.ssn import *
14 | from lib.request.request import *
15 | from plugins.disclosure.errors import *
16 | from lib.utils.printer import *
17 |
18 | class Disclosure(Request):
19 | """ Disclosure """
20 | def __init__(self,kwargs,url,data):
21 | Request.__init__(self,kwargs)
22 | self.url = url
23 |
24 | def run(self):
25 | info('Starting disclosure module...')
26 | req = self.Send(url=self.url,method="GET")
27 | creditcards(req.content)
28 | emails(req.content)
29 | privateip(req.content)
30 | ssn(req.content)
31 | errors(req.content,req.url)
32 | null()
--------------------------------------------------------------------------------
/plugins/fingerprint/cms/drupal.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding:utf-8 -*-
3 | #
4 | # @name: Wascan - Web Application Scanner
5 | # @repo: https://github.com/m4ll0k/Wascan
6 | # @author: Momo Outaadi (M4ll0k)
7 | # @license: See the file 'LICENSE.txt'
8 |
9 | from re import search,I
10 |
11 | def drupal(headers,content):
12 | _ = False
13 | if 'set-cookie' in headers.keys():
14 | _ |= search(r"SESS[a-z0-9]{32}=[a-z0-9]{32}",headers["set-cookie"],I) is not None
15 | if 'x-drupal-cache' in headers.keys():_ |= True
16 | _ |= search(r"\"]
23 | payload += [r""]
24 | payload += [r"\'\';!--\"<"+r_string(5)+r">=&{()}"]
25 | payload += [r"