Показать сообщение отдельно

  #4  
Старый 01.03.2012, 17:19
Unknown
Новичок
Регистрация: 21.06.2005
Сообщений: 1
С нами: 10992741

Репутация: 0
По умолчанию

Обновление v1.1



Changelog!: Программа прошла полной переработкой. Ограничения вставленные на входящие аргументы (имеется ввиду порядок записи или обязательный префикс http) уже не действительны. Добавлены новые функция. Работа с аргументами изменена:​

Код:
optional arguments:
  -h, --help  show this help message and exit
  -u U        Remote site URL
  -f F        Joomla components list file
  -t T        Timeout (sec)
  -T T        Randomization timeout (from 0 to N)
  -p P        HTTP Proxy server (PROXY:PORT)(example: 127.0.0.1:1080)
Объясню только один аргумент (остальное и так понятно): -T - это новая функция, таймаут с рандомизацией, т.е. вы задаете число N а скрипт генерирует случайное число от 0 до N и использует как таймоут.​

Что нового
  1. Поддержка Proxy сервера. К сожалению поддерживается только HTTP прокси (без аутентификации).
  2. Новая функция рандомизации таймаута

Screenshot



[CODE]
#!/usr/bin/env python

import os
import time
import random
import urllib2 as u2
import argparse as ap

sub_url = "/components/"
#------------------------------------------------------
# Args set
def add_args():
p = ap.ArgumentParser()
p.add_argument("-u", help = "Remote site URL")
p.add_argument("-f", help = "Joomla components list file")
p.add_argument("-t", help = "Timeout (sec)")
p.add_argument("-T", help = "Randomization timeout (from 0 to N)")
p.add_argument("-p", help = "HTTP Proxy server (PROXY:PORT)(example: 127.0.0.1:1080)")
return p.parse_args(), p
#------------------------------------------------------

#------------------------------------------------------
# Timeout
def timeout(args):
if args.T:
time.sleep(random.randint(0, int(args.T)))
elif args.t:
time.sleep(int(args.t))

#------------------------------------------------------
#------------------------------------------------------
# Scan through HTTP server
def scan_through_proxy(args, com_name, op):
try:
url = args.u + sub_url + com_name
op.open(url)
except:
raise
return True
#------------------------------------------------------
#------------------------------------------------------
# Scan directly
def scan(args, com_name):
try:
url = args.u + sub_url + com_name
req = u2.Request(url)
u2.urlopen(req)
except:
raise
return True
#------------------------------------------------------

a, p = add_args()
if not a.u or not a.f:
p.print_usage()
p.exit()
else:
if a.u.find("http://")
 
Ответить с цитированием