Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # usage : python path.py -u [URL] -f [path.txt=file contains paths] -k [keyword]
- import Queue
- import argparse
- import threading
- import requests
- print "\n[+] Coded By UzunDz\n[+] UzunDz@gmail.com\n"
- class Checker(threading.Thread):
- def __init__(self, url, queue, numTotal):
- threading.Thread.__init__(self)
- self.queue=queue
- self.url=url
- self.numTotal=numTotal
- def run(self):
- while True:
- temp="\t{0:10}"
- dataRecieved=self.queue.get()
- try :
- num = int(dataRecieved[0])+1
- path = dataRecieved[1]
- if dataRecieved[2]:
- keyword = dataRecieved[2]
- else :
- keyword = '404'
- statutcode = [200,500]
- req = requests.get(self.url+'/'+path)
- errorcode = len(requests.get(self.url+'/NOTFOUND').text)
- if req.status_code in statutcode:
- if len(req.text) == errorcode :
- print temp.format('(-) %d/%d : %s/%s'%(num, self.numTotal, self.url, path))
- else :
- if keyword in req.text :
- print temp.format('(-) %d/%d : %s/%s'%(num, self.numTotal, self.url, path))
- else :
- print temp.format('(+) %d/%d : %s/%s [%s]'%(num, self.numTotal, self.url, path, req.status_code))
- res = open("result.txt", 'a')
- res.write(self.url+'/'+path+'\n')
- else:
- print temp.format('(-) %d/%d : %s/%s'%(num, self.numTotal, self.url, path))
- self.queue.task_done()
- res.close()
- except:
- pass
- queue=Queue.Queue()
- parser = argparse.ArgumentParser()
- parser.add_argument("-u", help="SET A URL")
- parser.add_argument("-f", help="SET A FILE")
- parser.add_argument("-k", help="PUT A KEYWORD FROM ERROR PAGE")
- args = parser.parse_args()
- url = args.u
- path = args.f
- keyword = args.k
- if url and path:
- paths=open(path, "r").read().split('\n') # list Paths.
- print '[+] Loaded %d paths : \n'%len(paths)
- print '[+] Start Checking ...\n'
- thread_num=10 # Threads Number.
- for i in range(thread_num):
- worker=Checker(url, queue, len(paths))
- worker.setDaemon(True)
- worker.start()
- for num,path in enumerate(paths):
- data = [num, path, keyword]
- queue.put(data)
- queue.join()
- print '\n[+] Done.'
- else :
- parser.print_help()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement