2

私はmechanizeで遊んでいます私のウェブサイトにブルートフォースを作ろうとしていますフォームが正常に送信されたかどうかを確認する方法を考えています

これまでのところ:

import mechanize
import cookielib
import urllib
import HTMLParser
import re
# Browser
br = mechanize.Browser()

# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)

url = 'http://mywebsite'
pattern = '''Welcome (.*)'''

passwords = ('lol','lol1','correctPassword')

r = br.open(url)
try:
    br.select_form(nr=0)
    br.form['username']='Matt'
    found = False
    i=0
    while not found:
        br.form['password']=passwords[i]
        # here I want to check if br.submit() was successful 
        # than break the loop (or simply make found = True)
        # if not, increment i
        br.submit()
except:
    print "Not Good"
html = br.response().read()
message = re.findall(pattern, html)

parser = HTMLParser.HTMLParser()
print parser.unescape(message)
4

1 に答える 1

2

同様の質問がありました。そして、それに関する文書はありません。まだ知られていない場合。br.click()を使用することをお勧めします

Webページのエラー要素を見てエラーを確認しました。このようなもの

request = br.click(name='login')
 response = br.open(request)
 mainpage = response.read()
 if mainpage.find('<the error text>')==-1
        #print "Could not login"
        success = True

お役に立てれば

于 2012-09-28T22:50:41.833 に答える