Python请求.post不使用易受攻击的web应用程序php登录名

2024-10-06 12:39:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Python登录到http://127.0.0.1/dvwa/login.php请求.post方法。在

目前我正在做如下工作:

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

然而,它似乎不起作用。我应该从响应对象得到301状态代码,但我只收到200个代码。我还从我的浏览器中取出cookies并将它们设置在requests对象中;但是,这不起作用,而且也破坏了我所要做的事情的目的。在

我也尝试过以下几种方法,但运气不佳:

^{pr2}$

以及

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)

以上方法都没有给出我需要/想要的结果,这只是登录。在


Tags: 对象方法代码importhttpadminresponselogin
2条回答

我很感激你的回答,但是我找到了我的答案问题。以下是为了防止其他人有同样的问题。在

而不是:

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

您还需要有效负载中存储的登录令牌,如下所示:

^{pr2}$

然后让我正确登录。在

默认情况下,请求将遵循重定向。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跟踪会话/cookies的一个好方法是使用requests.Session

^{pr2}$

相关问题 更多 >