SSRF漏洞

2023-10-27

  1. ssrf漏洞介绍
    Server-Side Request Forgery:服务器端请求伪造
    由于服务端提供了,从其他服务器应用获取数据的功能而没有对目标地址做过滤和限制,服务端请求伪造,利用存在缺陷的WEB应用作为代理攻击远程和本地的服务器。
  2. ssrf 漏洞常见功能点
    社交分享功能:获取超链接的标题等内容进行显示
    转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
    在线翻译:给网址翻译对应网页的内容
    图片加载/下载:例如富文本编辑器中的点击下载图片到本地、通过URL地址加载或下载图片
    图片/文章收藏功能:主要其会取URL地址中title以及文本的内容作为显示以求一个好的用具体验
    云服务厂商:它会远程执行一些命令来判断网站是否存活等,所以如果可以捕获相应的信息,就可以进行ssrf测试
    网站采集,网站抓取的地方:一些网站会针对你输入的url进行一些信息采集工作
    数据库内置功能:数据库的比如mongodb的copyDatabase函数
    邮件系统:比如接收邮件服务器地址
    编码处理、属性信息处理,文件处理:比如ffpmg,ImageMagick,docx,pdf,xml处理器等
    未公开的api实现以及其他扩展调用URL的功能:可以利用google语法加上这些关键字去寻找SSRF漏洞。一些的url中的关键字有:share、wap、url、link、src、source、target、u、3g、display、sourceURl、imageURL、domain……
    从远程服务器请求资源
  3. 常出现漏洞的参数名
    share
    wap
    url
    link
    src
    source
    target
    u
    3g
    display
    sourceURL
    imageURL
    domain
    4.ssrf漏洞用途
    内外网的端口和服务扫描
    主机本地敏感数据的读取
    内外网主机应用程序漏洞的利用
    内外网web站点漏洞的利用
  4. ssrf 常见函数
    (1)file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。
<?php

$url = $_GET['url'];;

echo file_get_contents($url);

?>

(2)fsockopen() 函数打开一个网络连接或者一个Unix套接字连接

<?php`在这里插入代码片`
$host=$_GET['url'];
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: $host\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

(3)curl_exec() 执行一个 curl 会话

<?php 
if (isset($_GET['url'])){
    $link = $_GET['url'];
    $curlobj = curl_init(); // 创建新的 cURL 资源
    curl_setopt($curlobj, CURLOPT_POST, 0);
    curl_setopt($curlobj,CURLOPT_URL,$link);
    curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1); // 设置 URL 和相应的选项
    $result=curl_exec($curlobj); // 抓取 URL 并把它传递给浏览器
    curl_close($curlobj); // 关闭 cURL 资源,并且释放系统资源

    // $filename = './curled/'.rand().'.txt';
    // file_put_contents($filename, $result); 
    echo $result;
}
?>


(4)SoapClient() 类为SOAP 1.1,SOAP 1.2服务器提供客户端。它可以在 WSDL 或非 WSDL 模式下使用。

// ssrf.php
<?php
$a = new SoapClient(null,array('uri'=>'http://47.xxx.xxx.72:2333', 'location'=>'http://47.xxx.xxx.72:2333/aaa'));
$b = serialize($a);
echo $b;
$c = unserialize($b);
$c->a();    // 随便调用对象中不存在的方法, 触发__call方法进行ssrf
?>

6.ssrf测试代码:

<?php
function curl($url){
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_HEADER, 0);
      curl_exec($ch);
      curl_close($ch);
}
$url = $_GET['url'];
curl($url);
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSRF漏洞 的相关文章

  • PDO SQLSRV 和 PDO MySQL 在获取 int 或 float 时返回字符串

    当您获取时 PDO MS SQL Server 和 PDO MySQL 都会返回一个字符串数组 即使列的 SQL 类型本应是数字类型 例如 int 或 float 我设法解决了这个问题 但我想了解为什么它们一开始就这样设计 是不是因为PDO
  • 按通用值对值进行分组:userid 和 ipaddress

    我正在解决数据库中的一个问题 我正在尝试查找使用多个帐户的用户 我有一个用户 ID 和使用的 IP 地址的列表 如下所示 用户 ID IP 地址 1 IP 地址 13 2 IP 地址 23 1 IP 地址 12 4 IP地址56 9 IP
  • PHP - Filter_var 替代方案?

    我构建了一个 php 脚本来输出以表单形式发布的数据 但遇到了问题 网站将运行的服务器运行 PHP 5 1 6 此版本的 PHP 不支持 filter var 我需要知道短期内的替代方案 最好是昨天 但在 Google 或 Stack Ov
  • 自定义 WP 主题时,我应该将导航栏放在“”标签之前还是之后?

    我正在通过制作子主题来自定义 WP 主题 我将 Bootstrap 中的导航栏放入子主题目录中的 header php 文件中 但是 我不确定在哪里放置导航栏代码 我可以把它都放在前面and之后标记成功 例如 无论我选择哪一个 导航栏都显示
  • 如何在 Laravel 查询中使用多个 OR,AND 条件

    我需要 Laravel 查询帮助 我的自定义查询 返回正确结果 Select FROM events WHERE status 0 AND type public or type private 如何写这个查询Laravel Event w
  • 在值中包含换行符

    我有一个 Word 模板 其中 php 代码中定义了值 在PHP代码中 document gt setValue Value1 value1 在word模板中 Value1 如何将包含两个值之间的断线的值包含在单词的值中 Replace n
  • Yii2 异常:ApcCache 需要加载 PHP apc 扩展

    在高级模板前端的主配置中配置缓存组件时 我收到异常 在我的 php ini 上启用了扩展 rsults 如何解决此问题 前端 config main php cache gt class gt yii caching ApcCache ke
  • .htaccess 异常导致主目录出现问题

    这是我的目录结构 localhost or livehost app bootstrap public vendor code demo 这是我的 htaccess
  • zip 文件的校验和

    我目前正在开发一个工具 它上传一组文件 然后使用 md5 校验和将文件与上一批上传的文件进行比较 并告诉您哪些文件已更改 对于常规文件 这工作正常 但某些上传的文件是 zip 存档 即使其中的文件相同 它们几乎总是会发生变化 有没有一种方法
  • 如何使用 Twig 的属性函数访问嵌套对象属性

    我试图使用一个树枝变量来访问另一个树枝变量的属性 直到我找到 属性 函数为止 该变量才起作用 除了需要访问嵌套属性的情况外 效果很好 当包含属性的变量实际上是对象 属性时 它不起作用 例如 attribute object1 variabl
  • 将 Google 信任徽章添加到 Magento

    我正在尝试将 Google Trust Badge 添加到我的 magento 商店 我尝试在 Magento 网站上搜索扩展程序 但找不到 我是否需要将以下代码粘贴到产品和结账页面 还是必须对其进行更改 如果有人能引导我走向正确的方向 我
  • 如何解码 eval( gzinflate( base64_decode(

    我已将此代码注入到我的网站中 如何解码尾随字符串 我需要知道发生了什么以及其背后的代码是什么 这应该输出将被执行的代码eval 我希望这就是您正在寻找的
  • 语法错误,第 288 行出现意外的“endif”(T_ENDIF)[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我一直在离线处理我的 WordPress 网站的此代码错误 解析错误 语法错误 homez 541 photoher marie
  • fgetcsv 在特定行打开?

    有没有办法使用 fgetcsv 在特定行上打开 我有一个非常大的 csv 想通过 ajax 一次运行大约 100 行 我可以轻松停止 while 循环 但如何在特定行上打开 或者这是不可能的 从第 100 行开始读取没有简单的方法 但您可以
  • apache_request_headers() 与 $_SERVER

    据我所知 apache request headers 提供与以下相同的信息 SERVER 但按键略有不同 为什么有人应该使用apache request headers 而不仅仅是从那里获取这些信息 SERVER 我在 Centos 上使
  • phpunit测试调用其他需要mock的类方法的方法

    我正在尝试创建一个非常标准的单元测试 在其中调用一个方法并断言它的响应 但是我正在测试的方法调用同一类中的另一个方法 该方法做了一些繁重的工作 我想模拟该方法 但仍按原样执行我正在测试的方法 仅使用从调用另一种方法返回的模拟值 我简化了示例
  • MVC 模式中的验证层

    验证模型将使用的数据的最佳位置在哪里 例如 考虑登记表 我们有一些来自注册表的数据 那么验证这些数据的最佳位置在哪里 我们应该通过 if 语句或特殊的验证器类来检查每个数据 这意味着大量的编码 所以我想了解在哪里可以做到这一点 在控制器中
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 使用 php-ews(Exchange Web 服务)在特定日期后获取电子邮件

    在我的 PHP 脚本中 我需要弄清楚如何检索指定消息 ID 之后或特定日期之后的所有电子邮件 两者都可以 我只需要检索自上次抓取收件箱以来的新电子邮件 这个收件箱每天收到数千封电子邮件 而且我在 30 天内无法删除任何电子邮件 对于初始导入
  • 为什么我的会话仍然存在?

    我一定很愚蠢 因为似乎一件相当明显的事情现在让我完全困惑 我有一个会议 ie SESSION handbag id 在某个时刻 我需要彻底终止这个会话 ie at the start of the page session start el

随机推荐

  • 【北京工业大学申请个人学生邮箱】

    北京工业大学申请个人学生邮箱 由于近期想要购买苹果设备 但是苹果更新了unidays认证 需要用到学生邮箱认证 因此花了几个小时查找北工大的邮箱注册方法 一趟下来 说实在的流程有些阴间 在此进行下记录 也方便后人的查找 一 进入 内网综合服
  • 商品上架、es应用到商品上架-35

    一 商品上架 上架的商品才可以在网站展示 上架的商品需要可以被检索 es是将数据保存到内存当中 所以我们不能将什么数据都保存到es当中 我们需要将重要的数据保存到es中 例如商品名称 规格型号 价格等信息 当需要的数据较多时 我们可以将主键
  • 我的博客地图

    最新更新时间 2020年03月12日11 37 13 猛戳 查看我的博客地图 总有你意想不到的惊喜 我的博客首页 我的博客创作中心 前端漫漫路 我的GitHub 我的站点 前言 由于自己写的文章越来越多 查看和查找具体内容变得格外耗时 因此
  • 【算法学习笔记】26:匈牙利算法(二分图最大匹配)

    1 简述 给定一个二分图 例如 匈牙利算法能够快速的计算出一种匹配方式 使得匹配的数量最多 注意 一个成功的匹配方式中 没有两条边是共用了同一个点的 形象的说 这个问题可以理解成二分图两边分别是男生和女生 有连线的表示可以凑成一对 匈牙利算
  • Flutter控件封装之视频进度条

    视频控制器 三方所提供的样式 有时很难满足我们的需求 对于此情况 我们不得不在此基础上自行封装 今天所分享的文章就是一个很简单的控制器封装案例 包含了基本的播放暂停 全屏和退出全屏 以及时间和进度的展示 封装了事件回调以及各个属性的控制 基
  • 英语快速记忆-后缀

    英语快速记忆 后缀 后缀在缀合法中只起改变词性的作用 不改变词根的含意 因词性不同 后缀可分为名词性 形容词性 动词性及副词性后缀 现列举于下 一 名词性后缀 1 age为抽象名词后缀 表示行为 状态和全体总称percentage百分数 百
  • 【idea】IDEA中TODO以及FIXME等关键字不高亮显示修复

    1 概述 最近突然碰到IDEA中TODO以及FIXME关键字不高亮显示的问题 同时TODO标签页无法搜索 如下 开始我的小写的显示颜色 大写的不显示颜色 后来发现这里区分大小写 同时在这里可以配置颜色 其他几个地方配置的好像不管用 如果配置
  • 邻接表创建

    邻接矩阵是个不错的图储存结构 但我们发现 对于边数相对顶点较少的图 这种结构是存在对储存空间的极大浪费的 关于邻接矩阵的相关知识在这里 邻接矩阵的创建 因此我们要考虑另外一种存储结构方式 我们在学习线性表时就注意到顺序存储结构预先分配空间会
  • CentOS Mono Nginx 部署 MVC4+WebApi

    CentOS Mono Nginx 部署 MVC4 WebApi CentOS Mono Nginx 部署 MVC4 WebApi 经过几天的折磨 终于在CentOS上成功部署了MVC4 WebApi Mono上的服务器推荐两种 Jexus
  • 令牌提交的身份验证失败_基于令牌的身份验证的来龙去脉

    令牌提交的身份验证失败 介绍 Introduction Token based authentication is prominent everywhere on the web nowadays With most every web c
  • 【操作系统】操作系统极速入门

    了解一下 相当于语文里面的略读 一是看下学习操作系统到底是在学习哪些内容 二是为后面更深层次的理解打个基础 操作系统我大概分成三个部分去 了解一下 第一部分 是操作系统的一些基础认知 比如是什么 为什么 哲学的三步走 是什么 为什么 怎么办
  • memcached for linux安装

    author skate time 2010 12 18 linux下 memcached 1 4 5 安装 os版本 CentOS release 4 7 一 安装 libevent 下载地址 http www monkey org pr
  • ESP32 LVGL ILI9488 3.5寸屏幕显示GIF图片

    先展示一下效果 lvgl展示gif这里有一个比较坑的地方 虽然是8 0版本以上的都自带了gif库 可以方便的进行调用 这里只需要需改几个简单的地方就可以 首先修改lv conf h define LV MEM CUSTOM 1 define
  • idea远程调试

    部署jar包 虚拟机ip为192 168 40 100 jar包启动参数 1 启动参数 参数 agentlib jdwp transport dt socket server y suspend n address 4000 最终启动命令
  • ImportError: Missing optional dependency ‘openpyxl‘. Use pip or conda to install openpyxl.

    点击文件file 往往遇到这类的问题不要慌张 首先理清逻辑思路 确保思路清晰 逻辑没有出错 然后再来找问题 判断问题可能出错的地方 并进行逐个验证 找到问题 解决问题 下面来详细讲解一下问题处理和安装的过程 First 首先我们点击file
  • 基于SSM的毕业论文答辩系统

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SSM 前端 采用Vue技术开发 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA Eclipse 是否Mave
  • Error: Flash Download failed - “Cortex-M4“ 解决方法

    stm32用仿真器下载代码时 我们需要配置keil中flash download列表下的芯片flash对应的型号 但是stm32产品比较丰富 有F0 F1系列的 F4 F7系列等等 而安装keil软件时 软件并没有包含所有系列芯片的flas
  • 使用nodejs+puppeteer+mysql+electron+vue等解决自动化弹幕之熊猫直播

    使用nodejs puppeteer mysql electron vue等解决自动化弹幕之熊猫直播 coding
  • Vue.js中的两大指令:v-on和v-bind,实现页面动态渲染和事件响应

    Vue js中的两大指令 v on和v bind 实现页面动态渲染和事件响应 一 Vue指令 一 v bind指令 二 v on指令 1 基本使用 1 最基本的语法 2 Vue中获取事件对象 了解 3 v on 事件修饰符 4 按键修饰符
  • SSRF漏洞

    ssrf漏洞介绍 Server Side Request Forgery 服务器端请求伪造 由于服务端提供了 从其他服务器应用获取数据的功能而没有对目标地址做过滤和限制 服务端请求伪造 利用存在缺陷的WEB应用作为代理攻击远程和本地的服务器