网络安全-ssrf

news2025/1/10 3:16:27

目录

一、环境

二、漏洞讲解

三、靶场讲解

四、可利用协议 

4.1 dict协议

4.2 file协议

4.3 gopher协议

五、看一道ctf题吧(长亭的比赛)

5.1环境

5.2开始测试

​编辑


一、环境

pikachu,这里我直接docker拉取的,我只写原理,靶场都是随便找的

docker run --name piakchu -d -p 8000:80 area39/pikachu 

二、漏洞讲解

SSRF(Server-Side Request Forgery:服务器端请求伪造)

其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制

导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据

数据流:攻击者----->服务器---->目标地址

根据后台使用的函数的不同,对应的影响和利用方法又有不一样

PHP中下面函数的使用不当会导致SSRF:
file_get_contents()
fsockopen()
curl_exec()
            
如果一定要通过后台服务器远程去对用户指定("或者预埋在前端的请求")的地址进行资源请求,则请做好目标地址的过滤

三、靶场讲解

首先点进来是一首诗,点击后url后面会有参数,请求本地的一个资源,?url=http://127.0.0.1/vul/ssrf/ssrf_info/info1.php

去看看源码吧,用vscode直接远程连接docker里面

请求的东西在这里

 代码不等于空就执行,最后curl_exec执行

 比如访问百度,就会把百度加载出来,那这有什么用呢????有什么危害

可以通过各种协议读取文件等等,我们一个一个研究

四、可利用协议 

4.1 dict协议

dict 协议是一个在线网络字典协议,这个协议是用来架设一个字典服务的。不过貌似用的比较少,所以网上基本没啥资料(包括谷歌上)。可以看到用这个协议架设的服务可以用 telnet 来登陆,说明这个协议应该是基于 tcp 协议开发的。

所以像 mysql 的服务,因为也是基于 tcp 协议开发,所以用 dict 协议的方式打开也能强行读取一些 mysql 服务的返回内容,比如我本地开的mysql我们尝试读取

利用点在于,可以探测内网端口(比如我们渗透的时候遇到的不出网协议),fastcgi,redis

pass:readis【6379】未授权访问(写入webshell,物理路径,写入任务计划(反弹webshell),写入公钥(直接登录服务器))很盛行,因为低版本90%的人基本上不会设置密码,但到2024年有些企业很注意这个点了,大部分人也开始设置了 

4.2 file协议

读取文件

包括php连接文件,可以读出来mysql的账号和密码

4.3 gopher协议

可以发送发送gopher get请求

我们gethub上面开源了一款工具叫做gopherus这个工具

可以攻击点就这么多,可以想象这个漏洞的危害,已经可以直接写一句话木马了

我刚刚克隆了一下这个工具给大家展示一下作用

 问反弹shell还是写入phpshell

而这个协议最重要的还是物理路径,如果网站的debug没关的话,也许我们日常挖洞的时候可以爆出来,我docker里面做测试我已经知道本地物理路径这里只展示

 我们来看一下它写入解码后的一个值是 ,很明显可以看到它在将我写入的内容存入到shell.php这个目录下,相当于是内存数据落盘

来看看反弹shell是怎么回事

任务计划root权限

 还有一个写公钥的功能它并没有,但这个也合理正常来说公钥是我们自己生成的,用-t就可以了,这样就可以实现免密登录了

五、看一道ctf题吧(长亭的比赛)

5.1环境

自己网上找,名字web-ssrfme.md

5.2开始测试

访问如下,限制了协议file、dict、localhost,不能探测内网端口和文件

访问是可以但是没什么用

当我们去探测内网端口的时候直接nonono

 但是它给了提示可以用info打印出phpinfo,可以看出使用的是apache7.0

看出它的docker里面的ip

 那我们去访问一下看看,又打印了一次,那我可以用它来探测端口,3306和6379都没有反应,好像什么服务都没装

 bp爆破探测一下看看

但是不好的消息是好像只开放了80,那没必要在这个服务器浪费时间了

手工探测一下0.1,0.3等等,先看看,很明显0.2和0.1是有服务器的,但0.1是默认html文件对我们用处不大去看看0.2吧

 爆破0.2很明显有6379和80端口

那我们就需要考虑传webshell但是我们不知道物理路径,先猜吧/var/www/html ,用刚才的Gopherus工具生成个payload

 很明显并没有写进去

用上帝视角去看一下updload给的权限这么高,很明显就是上面我们所讲的

但正常做题我们并没有上帝视角,一般都是用gethub上面开源的目录等等,我们做题只模拟,假设我们字典只有这五个

用bp抓包,然后爆破,假设我们扫出来了,那我们gopherus的目录就要变了,我们接着写入才有可能会成功

 还是没有成功,很快就结束了,并没有下一步动作

考虑一下二次编码

 再次测试,很明显已经成功实现了

但是我们发现id并没有进行一个执行

 排一下错,我们上帝视角改一下看看

这样是执行成功了

 那说明我们写的解析有问题,重新写下看看

这下是ok的,那就证明正常解法就是如此,那我正常入侵的时候写webshell和反弹shell也ok

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

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

相关文章

【H2O2|全栈】关于CSS(5)如何制作一个搜索网页的首页?

目录 CSS基础知识 前言 准备工作 简单网页的组成部分 案例 浏览器的窗口大小 划分主要部分 固定定位 头部导航(左侧) 头部导航(右侧) LOGO ​编辑搜索框 热搜标题 热搜内容 文字简介 资源 预告和回顾 后话 CSS…

孙怡带你深度学习(2)--PyTorch框架认识

文章目录 PyTorch框架认识1. Tensor张量定义与特性创建方式 2. 下载数据集下载测试展现下载内容 3. 创建DataLoader(数据加载器)4. 选择处理器5. 神经网络模型构建模型 6. 训练数据训练集数据测试集数据 7. 提高模型学习率 总结 PyTorch框架认识 PyTorc…

Visual Studio 2019/2022 IntelliCode(AI辅助IntelliSense)功能介绍

IntelliCode 不知在多久以前,我装上了Visual Studio 2019,写代码时,就注意到了下面这样的东西:带五角星的提示。 这个带五角星的提示功能叫做IntelliCode。 我们知道Visual Studio 有个强大的功能叫做Intellisense(智能感知)&am…

【Linux系统编程】信号的保存与处理

目录 一,信号的保存 1-1,core与Term终止信号 1-2,进程退出与信号的关系 1-3,信号在内核中的表示 1-4,信号操作函数 二,信号的处理 2-1,信号被处理的时期 2-2,内核实现信号的…

马匹行为识别系统源码分享

马匹行为识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

C++ Primer Plus(速记版)-高级主题

第十七章 用于大型程序的工具 C 解决问题规模多样,对复杂问题尤其需用异常处理、命名空间和多重继承增强代码管理、库整合和概念表达,以适应大规模编程对错误处理、模块组合及高级功能设计的高要求。 17.1. 异常处理 异常处理允许C程序中不同部分通过抛…

解决Tez报错问题

在启动hive的时候,发现该报错 1、检测HADOOP_PATH环境变量 echo $HADOOP_CLASSPATH 如果没有输出,说明我们的配置文件没有生效,这时候需要重写source一下 2、刷新配置文件生效 source /etc/profile 有输出,环境生效 3、再次运…

Matlab simulink建模与仿真 第十八章(Stateflow状态机)

参考视频:Simulink/stateflow的入门培训_哔哩哔哩_bilibili 一、概述 Stateflow是集成于Simulink中的图形化设计与开发工具,主要用于针对控制系统中的复杂控制逻辑进行建模与仿真,或者说,Stateflow适用于针对事件响应系统进行建模…

Java项目实战II基于Java+Spring Boot+MySQL的校园社团信息管理系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在当今高校…

DSC+DW实时+异步搭建部署

DSCDW实时异步搭建部署 实例及IP规划 配置 DMDSC实时备机配置 dmarch.ini--DSC节点1--DSC节点2 配置 dm.ini 配置实时备库(实时备库上执行)--初始化备库在DCS1执行,将备份文件上传到实时备机在实时备库执行还原 配置 dm.ini1.DSC节点1配置 dm…

PyCharm 安装教程

传送门 PyCharm 是一款由 JetBrains 开发的强大的 Python 集成开发环境(IDE)。它支持多种功能,包括调试、代码补全、智能代码分析、版本控制集成等,特别适合开发 Python 项目。接下来,我们将详细介绍如何在不同操作系…

# 深度学习笔记(6)Hugginface -Transformer

深度学习笔记(6)Hugginface -Transformer 文章目录 深度学习笔记(6)Hugginface -Transformer一、工具包二、 Tokenizer三、 模型加载四、 输出五,padding的作用5.1 attention_mask5.2 不同padding方法 六,数…

C++——哈希的应用(位图、布隆)

目录 前言 一、位图、布隆是什么? 二、位图 1.面试题 2.位运算 3 位图的应用 三、布隆过滤器 1、代码实现 2、 布隆过滤器的查找 3、 布隆过滤器删除 4、 布隆过滤器优点 5、 布隆过滤器缺陷 总结 前言 我们学习了哈希算法,我们知道存储数据可以构建一…

如何在自动化测试中应用装饰器、多线程优化自动化架构?

1、装饰器概念 装饰器是Python中用于修改函数或类的语法结构的工具。它以函数作为输入参数,并返回一个函数作为一个输出函数,在不改变原有函数的代码情况下,给函数增加功能或改变函数行为。 装饰器的使用方式是在函数定义的上方使用 decorato…

大数据新视界 --大数据大厂之数据驱动决策:如何利用大数据提升企业竞争力

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

3.信号量与互斥量

队列:用来传递数据 如果不想传递数据,只是"通知"呢? 这个时候,我们就可以使用"信号量","信号量"的本质:item_size等于 0 的队列 信号量里面有什么呢? 1.一个计数值 2.一个"队伍",就是一个链表:用来记录等待的对应信号量的任务 …

小阿轩yx-Prometheus监控系统部署

小阿轩yx-Prometheus监控系统部署 前言 Prometheus 由 Go 语言编写而成,采用 Pull 方式获取监控信息,并提供了多维度的数据模型和灵活的査询接口。Prometheus 不仅可以通过静态文件配置监控对象,还文持自动发现机制,能通过 Kube…

关于std::swap原理

swap 操作交换两个相同类型容器的内容。调用swap之后&#xff0c;两个容器中的元素将会 交换&#xff1a; vector<striong> svec1(10); //10个元素的vector vector<string> svec2(24); //24个元素的vector swap(svec1,svec2); 调…

红帽7—Mysql的源码编译

到官网选择源码进行安装 使用wget命令下载链接 下载安装后对文件包进行解压 [rootnginx ~]# tar zxf mysql-boost-5.7.44.tar.gz 安装cmake编译工具 [rootnginx ~]# yum install cmake 使用源码编译安装mysql [rootmysql-node10 mysql-5.7.44]# cmake \ -DCMAKE_INSTALL_PRE…