Python脚本实现xss攻击

实验环境: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

Python脚本实现xss攻击_第1张图片

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

主要是我们需要知道他们处理的参数是什么

image-20231001172634716

Python脚本实现xss攻击_第2张图片

实践

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

Python脚本实现xss攻击_第3张图片

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漏洞

Python脚本实现xss攻击_第4张图片

你可能感兴趣的:(python,xss,开发语言)