SSRF---窥探内网,必不可少

首先,可能看到本文的标题,会具有一定的疑惑,对SSRF一点都不了解的小伙伴,可能根据标题还以为是查看内网的一个什么好工具。先澄清一下,SSRF并不是工具,而是web安全的一种漏洞。


1. 小插曲---漏洞与攻击

漏洞是指一个系统存在的弱点或缺陷。
攻击是指某人非法使用或破坏某一信息系统中的资源,以及非授权使系统丧失部分或全部服务功能的行为。
自己在刚刚接触SSRF时,不知道SSRF是属于攻击手段还是安全漏洞,而且自己查看很多的文章标题也是分不清。
例如有叫称呼为SSRF漏洞:
简述CSRF、SSRF的区别
例如有叫称呼为SSRF攻击:
SSRF攻击原理与技巧
对此问题我还请教了自己的好朋友

传说中的朋友的回答

为了验证朋友的答案,我专门去找了百度百科,然而万能的百度百科也没能帮上忙,我很诧异,百度百科无所不知,无所不能,高数答案应有尽有。。。。
百度百科SSRF结果


对此我在国外进行检索,果然找到了答案,原文描述如下

SSRF, Server-Side Request Forgery, server request forgery, is a vulnerability that is constructed by an attacker to form a request initiated by the server. In general, the target of an SSRF attack is an internal system that is inaccessible from the external network.

原文中明显提到了关键词 vulnerability
有人肯定会说为什么要较真漏洞还是攻击,只要学会其原理,会挖洞,会利用,会防御,岂不是就行了?我想说的是,从应用层面来说是这样没有任何问题,但是从学术角度讲,这很容易产生概念错误,比个例子,弱口令是漏洞,暴力破解是攻击手段,两者之间的关系就是,攻击方式的选择是根据系统存在什么样的漏洞而决定。再说个不恰当的例子,如果系统存在弱口令(不存在注入漏洞),攻击手段会采用SQL注入吗?


2. SSRF简介

SSRF, Server-Side Request Forgery 服务站点请求伪造

SSRF核心思想:一般web服务器会布上web业务对外网进行开放,能够让外部的用户,通过这个web业务来进行办理相关的事务。此时的web服务器可以说是暴露在公网的内网服务器,这就是给外部提供访问内部的关键节点。由于web服务器本身布置在所属的内网环境中,所以同一内网的服务器或其他网络节点一般默认信任该web服务器一般外部用户是无法访问除该web服务器外同一内网环境的其他服务器,但是如果利用该web服务器进行访问,确是可以进行访问,探测等功能。

SSRF流程示意图

外部用户虽无法直接进行内网服务器访问,但是可通过web服务器为跳板,进行间接访问。就比如你没办法去你对象宿舍里,但是你可以挖到你对象同寝室的舍友,可以通过这个舍友(web服务器)来获取你对象宿舍的东西(真实基于你对象对该舍友的信任或者说是这个舍友拥有拿你对象物品的相关权限)


3. 漏洞危害(可以使用的攻击手段)

  1. 利用SSRF漏洞可以对对外网开发的服务器所在内网进行端口扫描,获取一些服务信息。
  2. 利用SSRF漏洞攻击内网web应用(通过get传参就可以实现的攻击,如:struct2,Sqli等)。
  3. 利用SSRF漏洞配合使用file协议对本地文件进行读取。
  4. 利用SSRF漏洞攻击fastcgi 反弹shell。
  5. 利用SSRF漏洞进行未授权访问(redis、mysql等)
  6. 利用SSRF漏洞攻击运行在内网或本地的应用程序(比如溢出)

4. CVE漏洞公布情况

Apache Olingo SSRF : CVE-2020-1925
CloudBees Jenkins SSRF : CVE-2019-1003047


5. 代码审计

PHP

<?php
curl();
file_get_contents();
fsockopen();
//等函数
?>

Java

HttpURLconnection();
HttpClient.execute();
HttpClient.executeMethod();
HttpURLConnection.connect();
HttpURLConnection.getInputStream();
URL.openStream();
HttpServletRequest();
getParameter();
URL;
HttpClient();
Request();
URLConnection();
okhttp();
BasicHttpEntityEnclosingRequest();
DefaultBHttpClientConnection();
BasicHttpRequest();
URI

6. 漏洞挖掘


  1. 通过URL关键字
    sharewapurllinksrcsourcetargetu3gdisplaysourceURLimageURLdomain
  2. 常见web功能着重关注
  • 分享:通过URL地址分享网页内容
  • 转码服务
  • 在线翻译
  • 图片加载与下载:通过URL地址加载或下载图片
  • 图片、文章收藏功能
  • 未公开的api实现以及其他调用URL的功能
  1. 通用的SSRF漏洞公告
  • Weblogic配置不当,天生ssrf漏洞
  • Discuz x2.5/x3.0/x3.1/x3.2 ssrf漏洞

7. SSRF filter ByPass

  • ip地址转换成进制来访问
    例如:ping 127.0.0.1 可以进行替换


    IP进制替换
  • ip地址采用短地址访问


    短ip地址测试
  • @ 符号致使解析URL错误绕过
    例如:https://www.baidu.com@fanyi.baidu.com会跳入至翻译页面

  • 添加端口号测试

  • URL短地址
    URL短地址生成器

    短地址生成实例

  • 非HTTP/HTTPS协议
    GOPHER协议
    File协议:File协议主要用于访问本地计算机中的文件

  • DNS解析利用


    本地DNS解析错误利用
  • DNS Rebinding 利用

8. 工具介绍

  1. WeblogicScan-master : 漏洞自动化检测工具
  2. Ground-Control :能够检测XSS,SSRF以及XXE漏洞工具
    后续继续补充。。。。。

9. 漏洞防御

  1. 限制协议为HTTP、HTTPS。
  2. URL黑名单限制访问内网IP(不建议通过正则,建议转整数后比较)。
  3. 禁止30x跳转。
  4. 统一错误信息,避免通过错误信息来判断远端服务器的端口状态
  5. 限制请求的端口为http常用的端口,比如,80,443,8080,8090

10. 参考资料

  1. SSRF学习笔记
  2. 安全客 : SSRF漏洞的挖掘经验
  3. CSDN : Web安全之SSRF漏洞
  4. Baidu:SSRF漏洞总结和防御方法
  5. Freebuf :简述CSRF、SSRF的区别
  6. 先知社区 :Web安全Day4 - SSRF实战攻防
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

  • 以下均转自:http://zeroyu.xyz/2018/03/06/introduction-to-ssrf/ ...
    这是什么娃哈哈阅读 903评论 0 0
  • 很多 Web 应用都提供了从其他服务器上获取数据的功能。使用用户指定的 URL,web 应用可以获取图片,下载文件...
    Splunker阅读 878评论 0 0
  • SSRF漏洞是如何产生的? SSRF(Server-Side Request Forgery:服务器端请求伪造) ...
    BerL1n阅读 57,465评论 1 21
  • 米斯特白帽培训讲义 漏洞篇 SSRF 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 很...
    布客飞龙阅读 1,494评论 0 9
  • SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务...
    Seaer阅读 1,555评论 0 3