米斯特白帽培训讲义(v2)漏洞篇 SSRF

简介: 米斯特白帽培训讲义 漏洞篇 SSRF 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0很多 Web 应用都提供了从其他服务器上获取数据的功能。

米斯特白帽培训讲义 漏洞篇 SSRF

讲师:gh0stkey

整理:飞龙

协议:CC BY-NC-SA 4.0

很多 Web 应用都提供了从其他服务器上获取数据的功能。使用用户指定的 URL,web 应用可以获取图片,下载文件,读取文件内容等。这个功能如果被恶意使用,可以利用存在缺陷的 Web 应用作为代理,攻击远程和本地服务器。这种形式的攻击成为服务器请求伪造(SSRF)。

原理


$url = @$_GET['url'];
if($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    $co = curl_exec($ch);
    curl_close($ch);
    echo $co;
}

这段代码从 URL 中读取url参数,之后访问url参数所指向的 URL 资源,最后把资源显示在页面上。(当然这个代码有些简陋了,不是真正的代理,有些资源可能处理不好。)

我们将其保存为ssrf.php并部署。之后我们访问localhost/ssrf.php?url=http://www.baidu.com

可以看到显示正常。这个漏洞还可以用于访问本地的图片,我们再访问file:///C:/Windows/win.ini

页面上是乱的,但是我们查看源代码,也可以正常显示。

利用

可以对服务器所在内网以及本地进行端口扫描,获取服务的指纹信息。指纹识别通过访问默认文件来实现:

这张图中,我们访问了10.50.33.43的 Tomcat 服务的默认文件。10.50.33.43是内网,我们直接访问是访问不了的,但是通过 SSRF 就可以。并且,我们通过访问 Tomcat 的默认文件确定了这台机子上部署了 Tomcat 服务。

确定了所部署的服务之后,我们就可以有针对性的攻击内网部署的应用。比如 ST2 和 SQL 注入这种通过 GET 方法实施的攻击。

我们还可以利用该漏洞读取服务器中的配置文件,比如上面的win.ini

挖掘

以下业务场景容易出现这种漏洞:

  1. 应用从用户指定的 URL 获取图片,然后把它用一个随机名称保存在硬盘上,并展示给用户:

  2. 应用获取用户指定 URL 的数据(文件或者 HTML)。这个函数会使用 socket 和 服务器建立 TCP 连接,传输原始数据。

  3. 应用根据用户提供的 URL,抓取用户的 Web 站点,并且自动生成移动 Wap 站。

  4. 应用提供测速功能,能够根据用户提供的 URL,访问目标站点,以获取其在对应经纬度的访问速度。

Web 功能

我们从上面的概述可以看出,SSRF 是由于服务端获取其它服务器的相关信息的功能中形成的,因此我们可以列举几种在 Web 应用中,常见的从服务端获取其它服务端信息的功能。

1)分享:通过 URL 分享网页内容

早期分享应用,为了更好地提供用户体验,WEB 应用在分享功能汇总,通过会获取目标 URL 地址网页内容中的

相关文章
|
安全 搜索推荐 程序员
来看看天才“黑客”是如何让Foursquare 起死回生的
工程师Anoop Ranganath坐下来,开始和数据科学家 Blake Shaw 交谈。一切都是从这里开始的。
165 0
来看看天才“黑客”是如何让Foursquare 起死回生的
|
安全
黑客因网络钓鱼在美被判入狱八年半
  据国外媒体报道,美国一家联邦法庭在明尼苏达州判决,一名罗马尼亚移民因使用赢利性的“网络钓鱼”程序窃取大量财务和私人身份数据需入狱8年半。   来自美国密歇根州的23岁青年塞吉-D·波帕(Sergiu D. Popa)承认,他的行为导致约7000名受害者损失了70万美元,其中约有100人来自明尼苏达州。
787 0
|
安全 数据安全/隐私保护 iOS开发
|
安全 数据安全/隐私保护 Windows
米斯特白帽培训讲义(v2)漏洞篇 提权
米斯特白帽培训讲义 漏洞篇 提权 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 提权,顾名思义就是提高自己在服务器中的权限,就比如在 Windows 中你本身登录的用户是 guest,通过提权后就变成超级管理员,拥有了管理 Windows 的所有权限。
1113 0
|
监控 安全 PHP
米斯特白帽培训讲义(v2)漏洞篇 文件包含
米斯特白帽培训讲义 漏洞篇 文件包含 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 原理 文件包含就是将一个文件包含到自己的文件中执行。
1258 0
|
安全 应用服务中间件 PHP
米斯特白帽培训讲义(v2)漏洞篇 文件上传
米斯特白帽培训讲义 漏洞篇 文件上传 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 我们首先看一下文件上传的流程图。
1192 0
|
Web App开发 存储 安全
米斯特白帽培训讲义(v2)漏洞篇 XSS
米斯特白帽培训讲义 漏洞篇 XSS 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为 XSS 。
1166 0
|
安全 JavaScript 数据安全/隐私保护
米斯特白帽培训讲义(v2)漏洞篇 第三方风险
米斯特白帽培训讲义 漏洞篇 第三方风险 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 域名商 域名商就是提供域名购买的站点。
1198 0