Вопрос по httpconnection, python, http-status-codes – код состояния Python http

1

я пишу свой собственный каталог каталогов на Python, и яЯ тестирую его на моем веб-сервере в безопасной и надежной среде. Этот скрипт в основном пытается извлечь общие каталоги с данного веб-сайта и, глядя на код состояния HTTP ответа, может определить, доступна ли страница или нет.

Для начала сценарий считывает файл, содержащий все интересующие каталоги, которые необходимо найти, а затем отправляет запросы следующим образом:

for dir in fileinput.input('utils/Directories_Common.wordlist'):

    try:
        conn = httplib.HTTPConnection(url)
        conn.request("GET", "/"+str(dir))
        toturl = 'http://'+url+'/'+str(dir)[:-1]
        print '    Trying to get: '+toturl
        r1 = conn.getresponse()
        response = r1.read()
        print '   ',r1.status, r1.reason
        conn.close()

Затем ответ анализируется и если код состояния равен200" возвращается, то страница доступна. Я'мы реализовали все это следующим образом:

if(r1.status == 200):
    print '\n[!] Got it! The subdirectory '+str(dir)+' could be interesting..\n\n\n'

Мне кажется, что все в порядке, за исключением того, что скрипт помечает как доступные страницы, которые на самом деле нет. На самом деле, алгоритм собирает единственные страницы, которые возвращают "200 ОК ", но когда я вручную просматривал эти страницы, я обнаружил, что они были перемещены навсегда или имеют ограниченный доступ. Что-то пошло не так, но я не могу определить, где именно исправить код, любая помощь приветствуется ..

Ваш Ответ

2   ответа
1
2

за исключением того, что он почти не читается. Я переписал его в этот рабочий фрагмент:

import httplib

host = 'www.google.com'
directories = ['aosicdjqwe0cd9qwe0d9q2we', 'reader', 'news']

for directory in directories:
    conn = httplib.HTTPConnection(host)
    conn.request('HEAD', '/' + directory)

    url = 'http://{0}/{1}'.format(host, directory)
    print '    Trying: {0}'.format(url)

    response = conn.getresponse()
    print '    Got: ', response.status, response.reason

    conn.close()

    if response.status == 200:
        print ("[!] The subdirectory '{0}' "
               "could be interesting.").format(directory)

Выходы:

$ python snippet.py
    Trying: http://www.google.com/aosicdjqwe0cd9qwe0d9q2we
    Got:  404 Not Found
    Trying: http://www.google.com/reader
    Got:  302 Moved Temporarily
    Trying: http://www.google.com/news
    Got:  200 OK
[!] The subdirectory 'news' could be interesting.

Кроме того, я использовалГОЛОВА HTTP-запрос вместо GET, так как он более эффективен, если вам не нужно содержимое и вас интересует только код состояния.

я пытаюсь использовать пример, который вы только что показали мне, когда я делаю запросы в Google, я всегда получаю: 400 неправильных запросов при использовании вашего кода я получаю код состояния, который вы 'я написал в этом посте .. не знаю, что не так .. может ям где-то чего-то не хватает .. если вы хотите взглянуть на основную часть кода здесь:ссылка на сайт user1405417
Большое спасибо, ясделаю его более читабельным, и яЯ постараюсь решить проблему, глядя на вашу реализацию. user1405417
Я взял твой сценарий и начал играть с ним,мы изменили способ получения каталогов, и я использовал: "для каталога в файле fileinput.input ('Utils / Directories_Common.wordlist»):» так как я've все каталоги, перечисленные в этом файле .. с этой модификацией я всегда получаю 400 неверных запросов ... user1405417
Этот файл содержит список всех каталогов для поиска, по одной записи для каждой строки. user1405417

Похожие вопросы