Advertisement
UZUNDZ

Paths Chercker

Jul 6th, 2015
368
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.16 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # usage : python path.py -u [URL] -f [path.txt=file contains paths] -k [keyword]
  3. import Queue
  4. import argparse
  5. import threading
  6. import requests
  7.  
  8. print "\n[+] Coded By UzunDz\n[+] UzunDz@gmail.com\n"
  9.  
  10. class Checker(threading.Thread):
  11.     def __init__(self, url, queue, numTotal):
  12.         threading.Thread.__init__(self)
  13.         self.queue=queue
  14.         self.url=url
  15.         self.numTotal=numTotal
  16.        
  17.     def run(self):
  18.         while True:
  19.             temp="\t{0:10}"
  20.             dataRecieved=self.queue.get()
  21.             try :
  22.                 num = int(dataRecieved[0])+1
  23.                 path = dataRecieved[1]
  24.                 if dataRecieved[2]:
  25.                     keyword = dataRecieved[2]
  26.                 else :
  27.                     keyword = '404'
  28.                    
  29.                 statutcode = [200,500]
  30.                 req = requests.get(self.url+'/'+path)
  31.                 errorcode = len(requests.get(self.url+'/NOTFOUND').text)
  32.                
  33.                 if req.status_code in statutcode:          
  34.                     if len(req.text) == errorcode :
  35.                         print temp.format('(-) %d/%d : %s/%s'%(num, self.numTotal, self.url, path))                    
  36.                     else :
  37.                         if keyword in req.text :
  38.                             print temp.format('(-) %d/%d : %s/%s'%(num, self.numTotal, self.url, path))
  39.                         else :
  40.                             print temp.format('(+) %d/%d : %s/%s [%s]'%(num, self.numTotal, self.url, path, req.status_code))
  41.                             res = open("result.txt", 'a')
  42.                             res.write(self.url+'/'+path+'\n')
  43.                 else:
  44.                     print temp.format('(-) %d/%d : %s/%s'%(num, self.numTotal, self.url, path))
  45.                 self.queue.task_done()
  46.                 res.close()
  47.             except:
  48.                 pass   
  49.                
  50. queue=Queue.Queue()
  51. parser = argparse.ArgumentParser()
  52. parser.add_argument("-u", help="SET A URL")
  53. parser.add_argument("-f", help="SET A FILE")
  54. parser.add_argument("-k", help="PUT A KEYWORD FROM ERROR PAGE")
  55. args = parser.parse_args()
  56. url = args.u
  57. path = args.f
  58. keyword = args.k
  59. if url and path:
  60.     paths=open(path, "r").read().split('\n') # list Paths.
  61.     print '[+] Loaded %d paths : \n'%len(paths)
  62.     print '[+] Start Checking ...\n'
  63.     thread_num=10 # Threads Number.
  64.     for i in range(thread_num):
  65.         worker=Checker(url, queue, len(paths))
  66.         worker.setDaemon(True)
  67.         worker.start()
  68.     for num,path in enumerate(paths):
  69.         data = [num, path, keyword]
  70.         queue.put(data)
  71.     queue.join()
  72.     print '\n[+] Done.'
  73. else :
  74.     parser.print_help()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement