python模拟登录dvwa(带token)

2021/10/5 11:10:56

本文主要是介绍python模拟登录dvwa(带token),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

有时候网站进行登录的时候会携带一个token值,如dvwa的登录

而这个token值在每次请求页面的时候都会进行刷新,我们要想进行登录就必须携带这个token,而这个token值怎么才能获取到了?其实这个token就是在前端页面中生成的,我们可以右键查看元素找到它。然后提取它出来就行

import requests
from lxml import etree

url = "http://192.168.43.206/2_Shotting_Range/DVWA/login.php"
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
}

# 1.创建session对象
session = requests.session()
pag_text = session.get(url=url,headers=headers).text

# 2.实例化一个etree对象,方便后面对页面进行数据解析
tree = etree.HTML(pag_text)

# 3.提取user_token值
user_token = tree.xpath('//*[@id="content"]/form/input/@value')[0]

#封装登录数据包并登录
data = {
    'username': 'admin',
    'password': 'password',
    'Login': 'Login',
    'user_token': user_token
    }
response_headers = session.post(url=url,headers=headers,data=data,allow_redirects = False).headers
if "'Location': 'index.php'" in str(response_headers):
    print("登录成功")
else:
    print("登录失败")
# 请求登录后的主页
index_text = session.post(url="http://192.168.43.206/2_Shotting_Range/DVWA/index.php").text
with open('dvwa.html','w',encoding='utf-8') as f:
    f.write(index_text)


这篇关于python模拟登录dvwa(带token)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程