SSRF漏洞

SSRF漏洞

SSRF意为服务端请求伪造(Server-Side Request Forge)。攻击者利用SSRF漏洞通过服务器发起伪造请求,就这样可以访问内网的数据,进行内网信息探测或者内网漏洞利用

SSRF漏洞形成的原因是:应用程序存在可以从其他服务器获取数据的功能,但对服务器的地址没有做严格的过滤,导致应用程序可以访问任意的URL链接。攻击者通过精心构造URL连接,可以利用SSRF漏洞进行以下攻击:

  (1)     通过服务器获取内网主机、端口和banner信息

  (2)     对内网的应用程序进行攻击,例如Redis、JBoss等

  (3)     利用file://伪协议读取文件

  (4)     可以攻击内网程序,造成缓冲区溢出

SSRF高危触发点:

  (1)图片加载与下载:通过URL地址加载或下载图片

  (2)从远程服务器请求资源

  (3)数据库内置功能(Orage,MongoDB,MSSQL,Posgres,couchDB)

  (4)Web Mail收取其他邮箱邮件

  (5)文件处理、编码处理、属性信息处理(FFmpeg,docx,pdf,XML处理)

SSRF漏洞代码分析

漏洞示例代码: 

<?php
if(isset($_GET['url']))
{
$link=$_GET['url'];
$filename='./'.rand().'.txt';
$curlobj=curl_init($link);
curl_setopt($curlobj,CURLOPT_FILE,$link);
curl_setopt($curlobj,CURLOPT_HEADER,0);
$result=curl_exec($curlobj);
curl_exec($curlobj);
curl_close($curlobj);
fclose($link);
file_put_contents($filename, $result);
echo $result;
}
?>

以上代码通过curl_exe函数对访问传入的URL数据进行请求,并返回请求的结果。

1.文件读取

通过file://伪协议读取常见的文件,例如/etc/passwd  我的是windows环境所以简单测试读取windows下的win.ini文件

pyaload:

http://192.168.1.6/index.php?url=file://C:\Windows\win.ini

2.端口探测

url没有经过严格的过滤,因此攻击者就可以构造任意的URL利用SSRF漏洞。例如可以通过http://127.0.0.1:3306来探测此服务器是否开启了3306端口

测试3306端口payload:

http://192.168.1.6/index.php?url=http://127.0.0.1:3306

测试3389端口payload:

http://192.168.1.6/index.php?url=http://127.0.0.1:3389

返回数据为空,返回延迟比较长 说明不存在此端口

 3.内网应用攻击

通过SSRF漏洞可以进行端口信息探测,也可以对内网存在远程命令执行漏洞的应用进行攻击

  (1)信息探测

  利用SSRF端口信息探测方法通过内网发现了内网有一台主机开启了JB服务

  (2)访问jmx控制台

  (3)部署木马

  (4)获得webshell

  (5)执行命令

待更新。。。。。

其他常见漏洞代码

漏洞代码1  file_get_contents()

<?php
if(isset($_POST['url']))
{
$content=file_get_contents($_POST['url']);
$filename='./images/'.rand().'.img';
file_put_contents($filename,$content);
echo $_GET['url'];
$img="<img src=\"".$filename."\"/>"; }
echo $img;
?>

通过post请求传入我们要读取的文件 这样我们win.ini文件就写入到了图片中

打开图片查看 得到我们需要的信息

SSRF漏洞修复

(1)过滤请求协议,只允许http或者https开头的协议

(2)严格限制访问的IP地址,只允许访问特定的IP地址

(3)限制访问的端口,只允许访问特定的端口

(4)设置统一的错误信息,防止造成信息泄露

前言

参考学习:https://www.cnblogs.com/wangshuwin/p/7642693.html

    《web安全原理分析与实践》——SSRF漏洞

[web安全原理分析]-SSRF漏洞入门的更多相关文章

  1. [web安全原理分析]-XEE漏洞入门

    前言 1 前言 XXE漏洞 XXE漏洞全称(XML External Entity Injection)即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致 ...

  2. [web安全原理]PHP反序列化漏洞

    前言 这几天一直在关注新管状病毒,从微博到各大公众号朋友圈了解感觉挺严重的看微博感觉特别严重看官方说法感觉还行那就取中间的吧 自己要会对这个东西要有理性的判断.关注了好两天所以耽搁了学习emmm 希望 ...

  3. web安全原理-文件包含漏洞

    前言 起来吃完早饭就开始刷攻防世界的题,一个简单的文件包含题我竟然都做不出来我服了  拿出买的书开始从头学习总结文件包含漏洞! 一.文件包含漏洞 文件包含漏洞 文件包含函数的参数没有经过过滤或者严格的 ...

  4. SSRF漏洞入门篇

    SSRF漏洞,又名服务端请求伪造漏洞. PHP中下列函数使用不当会导致SSRF: file_get_contents().fsockopen().curl_exec()函数(源码审计的时候注意点儿): ...

  5. [web安全原理分析]-文件上传漏洞基础

    简介 前端JS过滤绕过 待更新... 文件名过滤绕过 待更新 Content-type过滤绕过 Content-Type用于定义网络文件的类型和网页编码,用来告诉文件接收方以什么形式.什么编码读取这个 ...

  6. web安全原理分析-SQL注入漏洞全解

    简介 靶场:榆林学院信息安全协会--入侵榆大实验靶场 数字型注入 1 字符型注入 1 布尔注入 1.布尔注入简介 mysql bool注入是盲注的一种.与报错注入不同,bool注入没有任何报错信息输出 ...

  7. [web安全原理]PHP命令执行漏洞基础

    前言 PHP命令执行漏洞 应用程序的某些功能功能需要调用可以执行系统命令的函数,如果这些函数或者函数的参数被用户控制,就有可能通过命令连接符将恶意命令拼接到正常的函数中,从而随意执行系统命令,这就是命 ...

  8. 【Android漏洞复现】StrandHogg漏洞复现及原理分析_Android系统上的维京海盗

    文章作者MG1937 CNBLOG博客:ALDYS4 QQ:3496925334 0x00 StrandHogg漏洞详情 StrandHogg漏洞 CVE编号:暂无 [漏洞危害] 近日,Android ...

  9. Linux内核[CVE-2016-5195] (dirty COW)原理分析

    [原创]Linux内核[CVE-2016-5195] (dirty COW)原理分析-二进制漏洞-看雪论坛-安全社区|安全招聘|bbs.pediy.com https://bbs.pediy.com/ ...

随机推荐

  1. 列表的嵌套,元组和range()方法

    列表嵌套: 列表内嵌套列表 li = ['a','b',[1,2,3,["李白",'苏轼'],4,5],'c'] #取出"李白" print(li[2][3][ ...

  2. Java安全之Commons Collections2分析

    Java安全之Commons Collections2分析 首发:Java安全之Commons Collections2分析 0x00 前言 前面分析了CC1的利用链,但是发现在CC1的利用链中是有版 ...

  3. 作用域 - Js深入理解笔记

    执行期上下文 当函数执行时,会创建一个称为执行上下文的内部对象 一个执行期上下文定义了一个函数所执行时的环境,函数每次执行时对应的执行上下文都是独一无二的,多次调用一个函数会导致创建多个执行上下文,当 ...

  4. TCMalloc 内存分配原理简析

    一.TCMalloc TCMalloc简介 为啥要介绍 TCMalloc? 因为golang的内存分配算法绝大部分都是来自 TCMalloc,golang只改动了其中的一小部分.所以要理解golang ...

  5. 基于web的图书管理系统设计与实现(附演示地址)

    欢迎访问博主个人网站,记得收藏哦,点击查看 - - - >>>> 公众号推荐:计算机类毕业设计系统源码,IT技术文章分享,游戏源码,网页模板 小程序推荐:网站资源快速收录--百 ...

  6. 在CentOS 8 上 部署 .Net Core 应用程序

    在Centos 8 上 部署 .Net Core 应用程序     -- 记录篇 1.更新dnf 源 1 dnf update 2.安装 Asp.Net Core 运行时 1 dnf install ...

  7. 《Head First 设计模式》:迭代器模式

    正文 一.定义 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示. 要点: 迭代器模式把在元素之间游走的责任交给迭代器,而不是聚合对象.这样简化了聚合的接口和实现,也让责 ...

  8. Lucas(卢卡斯)定理模板&&例题解析([SHOI2015]超能粒子炮·改)

    Lucas定理 先上结论: 当p为素数: \(\binom{ N }{M} \equiv \binom{ N/p }{M/p}*\binom{ N mod p }{M mod p} (mod p)\) ...

  9. 学习写简单的RPC框架demo

    学习实现一个简单的RPC框架. 工程主要目录分级结构: rpc-common: 公共基础包,能力提供包 rpc-provider: 服务提供者 rpc-consumer:服务消费者 rpc-servi ...

  10. 【Javac编译异常】javac编译提示jdk中的包找不到的问题error: package jdk.internal.org.objectweb.asm does not exist 和 error: cannot find symbol

    一.复现步骤 1)编写待编译的java类 package f_asm_and_javassist; import jdk.internal.org.objectweb.asm.*; import ja ...