2016-10-27 6 views
-1

私はhttp://127.0.0.1/dvwa/login.phpにログインしようとしていますが、Python requests.postメソッドを使用しています。次のようにPython requests.postが脆弱なWebアプリケーションlogin.phpで動作しない

現在、私はやっている:

import requests 
payload = {'username':'admin','password':'password'} 
response = requests.post('http://127.0.0.1/dvwa/login.php', data=payload) 

それが動作していないようですが。レスポンスオブジェクトから301ステータスコードを取得するはずですが、200コードしか受信できません。私はまた、ブラウザからクッキーを取り出してリクエストオブジェクトに設定しました。しかし、これはうまくいかず、また私がやろうとしていることの目的を破ります。

また、私は運で、次の試してみた:上記の方法の

from requests.auth import HTTPBasicAuth 
import requests 
response = requests.get("http://127.0.0.1/dvwa/login.php",auth=HTTPBasicAuth('admin','password')) 

from requests.auth import HTTPBasicAuth 
import requests 
cookies = {'PHPSESSID':'07761e3f52ae72fa7d0e2c57569c32a7'} 
response = requests.get("http://127.0.0.1/dvwa/login.php",auth=HTTPBasicAuth('admin','password'),cookies=cookies) 

なし、私は単純にログインしている、したい/必要との結果が得られていない

+0

'response.history'をチェックしてください。 – sytech

答えて

0

デフォルトでは、リクエストはリダイレクトに従います。 response.status_codeが究極の場所のステータスコードになります。リダイレクトされているかどうか確認する場合は、response.historyをご覧ください。

import requests 
response = requests.get("http://google.com/") #301 redirects to 'www.google.com' 
response.status_code 
#200 
response.history 
#[<Respone [301]>] 
response.url 
#'http://www.google.com/' 

また、良い方法は、あなたのセッション/クッキーのrequestsキープトラックを持っている私はあなたの答えに感謝

import requests 
with requests.Session() as sesh: 
    sesh.post(the_url, data=payload) 
    #do more stuff in session 
0

requests.Sessionを使用することです、しかし、私は私の答えの質問を見つけました。他の誰かが同じ問題を抱えている場合は、次のようになります。

の代わり:

import requests 
response = requests.post('http://127.0.0.1/dvwa/login.php',data={'username':'admin','password':'password'}) 

次のようにまた、ペイロードに格納されたログイン・トークンを必要とする:

import requests 
response = requests.post('http://127.0.0.1/dvwa/login.php',data={'username':'admin','password':'password','Login':'Login'}) 

それはその後、正しくで私を記録します。

関連する問題