实验环境:zd靶场、vscode
知识点
requests.session()
首先我们需要先利用python requests模块进行登录,然后利用开启session记录,保持之后的操作处于同一会话当中
requests.session()用于创建一个会话(session)的实例对象。使用requests库发送多个HTTP请求时,可以通过创建一个会话对象,使得接下来的访问中都保持在同一个会话中。
所以我们需要在访问zd靶场之前,先申明开启session会话
需要注意的是:在之后的发包过程中我们就不能使用requests.post而是使用session.post进行访问,它表示在创建的session下用post发起登录请求
url
也算一个需要注意的地方,我们可以看到在zd靶场中登录界面访问的文件是login.php,并且通过开发者工具我们也可以查看到对应字段的参数名称
但是当前访问的login.php只是作为一个html表单,它并不会对输入的数据进行处理,而是会跳转到logCheck.php对其进行处理,所以我们请求的url应该为logCheck.php

同样的在留言界面我们也需要访问messageSub.php,对于这两个页面,如果不熟悉html表单代码的话就只能看源码了,比如说我
主要是我们需要知道他们处理的参数是什么


实践
需要的知识点就这么多,首先咱们可以在本地上留言测试一下,先删去所有评论

import requests
session = requests.session()
url = "http://localhost:81/zd/user/logCheck.php"
data = {
'user':'123123',
'pass':'123',
'submit':'submit'
}
zd_login = session.post(url, data = data )
print(zd_login.status_code)
url_1 = "http://localhost:81/zd/messageSub.php"
data_1 = {
'message':'asdasdadasd',
'username':'123123',
'submit':'submit'
}
zd_message = session.post(url_1, data = data_1)
if zd_message.status_code == 200:
print(zd_message.text)
运行代码后直接刷新就可以看到,出现了一个新的留言,所以我们这时候就只需要更改注入信息,就可以实现xss漏洞














![fashion_mnist.load_data()出现[winError 10054] 远程主机强迫关闭了一个现有的连接解决方法](https://img-blog.csdnimg.cn/5aec4d19ec974642884e7d0c7b968d46.png)





