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

SSRF漏洞

SSRF漏洞

[web安全原理分析]-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

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

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

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

测试3389端口payload:

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

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

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

 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文件就写入到了图片中 

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

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

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

SSRF漏洞修复

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

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

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

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

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

前言

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

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

 

上一篇:好用的绘图工具推荐-draw.io


下一篇:SSRF