def pickProvidersToClip(): providers = ProviderInfo.getProviders() pIndexes = [] providersToClip = [] print "[+] Available CAPTCHA Providers =>" i = 0 for provider in providers: print "\t" + str(i) + ": \t" + provider.name i = i+1 indexes = raw_input("[?] Choose CAPTCHA Providers by typing space separated indexes below or press enter to clip all : ") indexes = indexes.split() for i in indexes: try: idx = int(i) if(idx > len(providers) - 1 or idx < 0): print "[-] Indexes must represent a valid CAPTCHA provider. Exiting!" sys.exit() pIndexes.append(idx) except ValueError: print "[-] Indexes must be integers. Exiting!" sys.exit() pIndexes = list(set(pIndexes)) pIndexes.sort() for i in pIndexes: providersToClip.append(providers[i]) if(len(providersToClip) == 0): return providers return providersToClip
def pickProvidersToClip(): providers = ProviderInfo.getProviders() pIndexes = [] providersToClip = [] print "[+] Available CAPTCHA Providers =>" i = 0 for provider in providers: print "\t" + str(i) + ": \t" + provider.name i = i + 1 indexes = raw_input( "[?] Choose CAPTCHA Providers by typing space separated indexes below or press enter to clip all : " ) indexes = indexes.split() for i in indexes: try: idx = int(i) if (idx > len(providers) - 1 or idx < 0): print "[-] Indexes must represent a valid CAPTCHA provider. Exiting!" sys.exit() pIndexes.append(idx) except ValueError: print "[-] Indexes must be integers. Exiting!" sys.exit() pIndexes = list(set(pIndexes)) pIndexes.sort() for i in pIndexes: providersToClip.append(providers[i]) if (len(providersToClip) == 0): return providers return providersToClip
def parseOptions(argv): modes = 0 logFile = 'clipcaptcha.log' logLevel = logging.WARNING listenPort = 7777 killSessions = False operationMode = Mode.MONITOR providersToClip = [] runningMode = "" secretString = None listProviders = False configFile = "config.xml" try: #Parse the arguments and store the options in opts. args basically gets ignored. # the ':' indicates that the option expects an argument to be passed. opts, args = getopt.getopt(argv, "s:amdrf:p:lhc:", ["secret=", "monitor", "avalanche", "dos", "random", "file=", "port=", "list", "help", "config="]) # go over each option, store individual options in opt and arg. Then go through the ifelse structure and initialize various options. for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit() elif opt in ("-m", "--monitor"): operationMode = Mode.MONITOR runningMode = "Monitor" modes = modes + 1 elif opt in ("-a", "--avalanche"): operationMode = Mode.AVALANCHE runningMode = "Avalanche" modes = modes + 1 elif opt in ("-s", "--stealth"): secretString = arg operationMode = Mode.STEALTH runningMode = "Stealth" modes = modes + 1 elif opt in ("-d", "--dos"): operationMode = Mode.DOS runningMode = "DoS" modes = modes + 1 elif opt in ("-r", "--random"): operationMode = Mode.RANDOM runningMode = "Random" modes = modes + 1 elif opt in ("-c", "--config"): configFile = arg elif opt in ("-f", "--file"): logFile = arg elif opt in ("-p", "--port"): listenPort = arg elif opt in ("-l", "--list"): listProviders = True # elif opt in ("-p", "--post"): # logLevel = logging.WARNING # elif opt in ("-s", "--ssl"): # logLevel = logging.INFO # elif opt in ("-a", "--all"): # logLevel = logging.DEBUG # elif opt in ("-k", "--killsessions"): # killSessions = True if(modes > 1): print "[-] Choose only one mode." print "" usage() sys.exit() if(modes < 1): print "[+] No mode selected. Defaulting to Monitor mode " runningMode = "Monitor" ProviderInfo.initProviders(configFile) if(listProviders == True): providers = ProviderInfo.getProviders() print "Available CAPTCHA Providers:" i = 0 for provider in providers: print "\n\n######################################################################" print "\t" + str(i) + ": \t" + provider.name #print provider.hostname #print provider.path #print "============================ success ==" #print provider.sCode #print provider.sCodeStr #print provider.sHeaders #print provider.sBody #print "============================ failure ==" #print provider.fCode #print provider.fCodeStr #print provider.fHeaders #print provider.fBody i = i+1 sys.exit() providersToClip = pickProvidersToClip() clippedNames = [] for p in providersToClip: clippedNames.append(p.name) clipped = ", ".join(clippedNames) print "[+] Cool, I am clipping these CAPTHA providers => "+ clipped print "[+] Running in " + runningMode + " mode" #return all options return (logFile, logLevel, listenPort, killSessions, secretString, operationMode, providersToClip) #Catch the exception, show usage and exit except getopt.GetoptError: usage() sys.exit(2)
def parseOptions(argv): modes = 0 logFile = 'clipcaptcha.log' logLevel = logging.WARNING listenPort = 7777 killSessions = False operationMode = Mode.MONITOR providersToClip = [] runningMode = "" secretString = None listProviders = False configFile = "config.xml" try: #Parse the arguments and store the options in opts. args basically gets ignored. # the ':' indicates that the option expects an argument to be passed. opts, args = getopt.getopt(argv, "s:amdrf:p:lhc:", [ "secret=", "monitor", "avalanche", "dos", "random", "file=", "port=", "list", "help", "config=" ]) # go over each option, store individual options in opt and arg. Then go through the ifelse structure and initialize various options. for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit() elif opt in ("-m", "--monitor"): operationMode = Mode.MONITOR runningMode = "Monitor" modes = modes + 1 elif opt in ("-a", "--avalanche"): operationMode = Mode.AVALANCHE runningMode = "Avalanche" modes = modes + 1 elif opt in ("-s", "--stealth"): secretString = arg operationMode = Mode.STEALTH runningMode = "Stealth" modes = modes + 1 elif opt in ("-d", "--dos"): operationMode = Mode.DOS runningMode = "DoS" modes = modes + 1 elif opt in ("-r", "--random"): operationMode = Mode.RANDOM runningMode = "Random" modes = modes + 1 elif opt in ("-c", "--config"): configFile = arg elif opt in ("-f", "--file"): logFile = arg elif opt in ("-p", "--port"): listenPort = arg elif opt in ("-l", "--list"): listProviders = True # elif opt in ("-p", "--post"): # logLevel = logging.WARNING # elif opt in ("-s", "--ssl"): # logLevel = logging.INFO # elif opt in ("-a", "--all"): # logLevel = logging.DEBUG # elif opt in ("-k", "--killsessions"): # killSessions = True if (modes > 1): print "[-] Choose only one mode." print "" usage() sys.exit() if (modes < 1): print "[+] No mode selected. Defaulting to Monitor mode " runningMode = "Monitor" ProviderInfo.initProviders(configFile) if (listProviders == True): providers = ProviderInfo.getProviders() print "Available CAPTCHA Providers:" i = 0 for provider in providers: print "\n\n######################################################################" print "\t" + str(i) + ": \t" + provider.name #print provider.hostname #print provider.path #print "============================ success ==" #print provider.sCode #print provider.sCodeStr #print provider.sHeaders #print provider.sBody #print "============================ failure ==" #print provider.fCode #print provider.fCodeStr #print provider.fHeaders #print provider.fBody i = i + 1 sys.exit() providersToClip = pickProvidersToClip() clippedNames = [] for p in providersToClip: clippedNames.append(p.name) clipped = ", ".join(clippedNames) print "[+] Cool, I am clipping these CAPTHA providers => " + clipped print "[+] Running in " + runningMode + " mode" #return all options return (logFile, logLevel, listenPort, killSessions, secretString, operationMode, providersToClip) #Catch the exception, show usage and exit except getopt.GetoptError: usage() sys.exit(2)