2016-10-27 4 views
-1

Я пытаюсь войти в http://127.0.0.1/dvwa/login.php с помощью метода python request.post.Python request.post не работает с уязвимым веб-приложением login.php

В настоящее время я делаю следующее:

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

Однако это, кажется, не работает. Я должен получить код статуса 301 из объекта ответа, но я получаю только 200 кодов. Я также взял файлы cookie из своего браузера и установил их в объекте запросов; однако это не работает, а также побеждает цель того, что я пытаюсь сделать.

Я также попытался следующие без везения:.

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 следить за вашу сессию/печенья является использованием requests.Session

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

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

вместо:

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'}) 

Затем регистрирует меня правильно.