• [web安全原理分析]-SSRF漏洞入门


    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:Windowswin.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漏洞

  • 相关阅读:
    ISO/IEC 9899:2011 条款5——5.2.2 字符显示语义
    ISO/IEC 9899:2011 条款5——5.2.1 字符集
    ISO/IEC 9899:2011 条款5——5.2 环境上的考虑
    nVidia GPGPU vs AMD Radeon HD Graphics执行模式对比
    ISO/IEC 9899:2011 条款5——5.1.2 执行环境
    ISO/IEC 9899:2011 条款5——5.1.1 翻译环境
    ISO/IEC 9899:2011 条款5——5.1 概念模型
    ISO/IEC 9899:2011 条款5——环境
    ISO/IEC 9899:2011 条款4——标准顺从
    php利用phpexcel导出数据
  • 原文地址:https://www.cnblogs.com/xhds/p/12331965.html
Copyright © 2020-2023  润新知