SSRF原理及漏洞演示

1、漏洞简介

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的
一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。正是因为它是由服务端发 起的,所以它能够请求到与它相连而与外网隔离的内部系统。

1.1 漏洞原理

SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与 限制。
通过控制功能中的发起请求的服务来当作跳板攻击内网中其他服务。比如,通过控制前台的请求远程地
址加载的响应,来让请求数据由远程的URL域名修改为请求本地、或者内网的IP地址及服务,来造成对 内网系统的攻击。

1.2 漏洞危害

1、扫描内网开放服务 2、向内部任意主机的任意端口发送payload来攻击内网服务 3、DOS攻击(请求大文件,始终保持连接Keep-Alive
Always) 4、攻击内网的web应用,例如直接SQL注入、XSS攻击等 5、利用file、gopher、dict协议读取本地文件、执行命令等

2、检测与绕过

2.1 漏洞检测

假设一个漏洞场景:某网站有一个在线加载功能可以把指定的远程图片加载到本地,功能链接如下:
http://www.xxx.com/image.php?image=http://www.xxc.com/a.jpg
那么网站请求的大概步骤应该是类似以下: 用户输入图片地址->请求发送到服务端解析->服务端请求链接地址的图片数据->获取请求的数据加载到 前台显示。
这个过程中可能出现问题的点就在于请求发送到服务端的时候,系统没有效验前台给定的参数是不是允 许访问的地址域名,例如,如上的链接可以修改为:
http://www.xxx.com/image.php?image=http://127.0.0.1:22
如上请求时则可能返回请求的端口banner。如果协议允许,甚至可以使用其他协议来读取和执行相关 命令。例如
http://www.xxx.com/image.php?image=file:///etc/passwd
http://www.xxx.com/image.php?image=dict://127.0.0.1:22/data:data2 (dict可以向服务
端口请求data data2)
http://www.xxx.com/image.php?image=gopher://127.0.0.1:2233/_test (向2233端口发送数
据test,同样可以发送POST请求) 对于不同语言实现的web系统可以使用的协议也存在不同的差异,其中: php:
http、https、file、gopher、phar、dict、ftp、ssh、telnet… java:
http、https、file、ftp、jar、netdoc、mailto…
判断漏洞是否存在的重要前提是,请求是服务器发起的,以上链接即使存在并不一定代表这个请求是服 务器发起的。因此前提不满足的情况下,不需要考虑SSRF。
http://www.xxx.com/image.php?image=http://www.xxc.com/a.jpg
前端获取链接后,是由js来获取对应参数交由window.location来处理相关的请求,或者加载到当前的 iframe框架中,此时并不存在SSRF
,因为请求是本地发起,并不能产生攻击服务端内网的需求。

2.2 漏洞出现点

分享 通过url 地址分享文章,例如如下地址:
http://share.magedu.com/index.php?url=http://127.0.0.1
通过url参数的获取来实现点击链接的时候跳到指定的分享文章。如果在此功能中没有对目标地址的范围 做过滤与限制则就存在着SSRF漏洞。

图片加载与下载 通过URL地址加载或下载图片
http://image.magedu.com/image.php?image=http://127.0.0.1
图片加载存在于很多的编辑器中,编辑器上传图片处,有的是加载本地图片到服务器内,还有一些采用
加载远程图片的形式,本地文章加载了设定好的远程图片服务器上的图片地址,如果没对加载的参数做 限制可能造成SSRF。

图片、文章收藏功能
http://title.magedu.com/title?title=http://title.magedu.com/as52ps63de
例如title参数是文章的标题地址,代表了一个文章的地址链接,请求后返回文章是否保存、收藏的返回
信息。如果保存、收藏功能采用了此种形式保存文章,则在没有限制参数的形式下可能存在SSRF。

利用参数中的关键字来查找 例如以下的关键字: share wap url link

src source target u 3g display sourceURl imageURL domain …

2.3 漏洞绕过

部分存在漏洞,或者可能产生SSRF的功能中做了白名单或者黑名单的处理,来达到阻止对内网服务和资
源的攻击和访问。因此想要达到SSRF的攻击,需要对请求的参数地址做相关的绕过处理,常见的绕过方 式如下:

场景1:限制为http://www.xxx.com 域名时
可以尝试采用http基本身份认证的方式绕过,http://www.xxx.com@www.xxc.com。 在对@解析域名
中,不同的处理函数存在处理差异,例如: http://www.aaa.com@www.bbb.com@www.ccc.com
在PHP的parse_url中会识别www.ccc.com,而libcurl则识别为www.bbb.com

场景2:限制请求IP不为内网地址 即限制访问所有内网IP,可采用短网址绕过,短网址转换。 可以使用在线进制转换,
127转换16进制为7f,系统中表示16进制前面要加0x,8进制前加0
可以解析为127.0.0.1采用进制转换,127.0.0.1八进制:0177.0.0.1。十六进制:0x7f.0.0.1。十进制: 2130706433

![](https://img-
blog.csdnimg.cn/img_convert/6b3541868eb6b50f5e62ad15c898391b.png)

场景3:限制请求只为http协议 采用302跳转,百度短地址,或者使用短地址生成其他

场景4:利用句号绕过 127。0。0。1 >>> 127.0.0.1
其他绕过形式可以查看:https://www.secpulse.com/archives/65832.html

3、查看是否存在SSRF漏洞

  1. 排除法:浏览器F12查看源代码看是否是在本地进行了请求 举例:该资源地址类型为 http://www.xxx.com/a.php?image=(地址)的就可能存在SSRF漏洞。 2、Dnslog等工具进行测试,查看是否被访问 生成一个域名用于伪造请求,看漏洞服务器是否发起 DNS 解析请求,若成功访问在 http://DNSLog.cn 上就会有解析日志。 3、抓包分析发送的请求是不是由服务器的发送的,如果不是客户端发出的请求,则有可能是,接着找 存在HTTP服务的内网地址。 4、访问日志检查:伪造请求到自己控制的公网服务器,然后在服务器上查看访问日志是否有来自漏洞 服务器的请求。 5、扫描工具

4、Pikachu演示

4.1 SSRF(curl)

首先我们大概了解一下在PHP中curl函数是用来干什么的。curl是一个库,能让你通过URL和许多不同种
的服务器进行交流,并且还支持许多协议,重点是可以用来请求Web服务器。curl可以支持https认证、 http
post、ftp上传、代理、cookies、简单口令认证等等功能。

![](https://img-
blog.csdnimg.cn/img_convert/2fbd944a106e53df5fa6d1798686a1c7.png)

观察URL,发现它传递了一个URL给后 台

我们可以把 url 中的内容改为百度
http://127.0.0.1/vul/ssrf/ssrf_fgc.php?url=https://www.baidu.com

![](https://img-
blog.csdnimg.cn/img_convert/f5a58764b27ae31e82bb3850d9ee8bb5.png)

还可以利用file协议读取本地文件

![](https://img-
blog.csdnimg.cn/img_convert/966b6c483a0cdd6e84d2a77589a354d6.png)

http://10.0.0.7:81/vul/ssrf/ssrf_curl.php?url=file:///etc/passwd

4.2 SSRF(file_get_content)

file_get_contents() 函数把整个文件读入一个字符串中,是用于将文件的内容读入到一个字符串中的首
选方法。如果操作系统支持,还会使用内存映射技术来增强性能。 php://filter:是一种元封装器, 设计用于数据流打开时的筛选过滤应用。
对于一体式(all-in-one)的 文件函数非常有用,类似 readfile()、 file() 和
file_get_contents(),在数据流内容读取之前没有机会应 用其他过滤器。 php://filter 目标使用以下的参数作为它路径的一部分。
复合过滤链能够在一个路径上指定。详细使用 这些参数可以参考具体范例。 [PHP: php:// -
Manual](https://www.php.net/manual/zh/wrappers.php.php#:~:text=php%3A%2F%2Ffilter%20php%3A%2F%2Ffilter%20%E6%98%AF%E4%B8%80%E7%A7%8D%E5%85%83%E5%B0%81%E8%A3%85%E5%99%A8%EF%BC%8C%20%E8%AE%BE%E8%AE%A1%E7%94%A8%E4%BA%8E%E6%95%B0%E6%8D%AE%E6%B5%81%E6%89%93%E5%BC%80%E6%97%B6%E7%9A%84%20%E7%AD%9B%E9%80%89%E8%BF%87%E6%BB%A4%20%E5%BA%94%E7%94%A8%E3%80%82%20%E8%BF%99%E5%AF%B9%E4%BA%8E%E4%B8%80%E4%BD%93%E5%BC%8F%EF%BC%88all-
in-
one%EF%BC%89%E7%9A%84%E6%96%87%E4%BB%B6%E5%87%BD%E6%95%B0%E9%9D%9E%E5%B8%B8%E6%9C%89%E7%94%A8%EF%BC%8C%E7%B1%BB%E4%BC%BC%20readfile,%E3%80%81%20file%20%28%29%20%E5%92%8C%20file_get_contents%20%28%29%20%EF%BC%8C%20%E5%9C%A8%E6%95%B0%E6%8D%AE%E6%B5%81%E5%86%85%E5%AE%B9%E8%AF%BB%E5%8F%96%E4%B9%8B%E5%89%8D%E6%B2%A1%E6%9C%89%E6%9C%BA%E4%BC%9A%E5%BA%94%E7%94%A8%E5%85%B6%E4%BB%96%E8%BF%87%E6%BB%A4%E5%99%A8%E3%80%82)

file_get_contents里面带有php://filter 我们用这个就可以来读取php源码,所以我们来构造URL:

http://127.0.0.1/vul/ssrf/ssrf_fgc.php?file=php://filter/resource=ssrf.php
http://127.0.0.1:8000/vul/ssrf/ssrf_fgc.php?
file=php://filter/read=convert.base64-encode/resource=ssrf.php

直接使用 resource 指定 ssrf.php 文件,可以看到访问成功

![](https://img-
blog.csdnimg.cn/img_convert/f1b5c08eebc77e09502c065c85965a67.png)

但是php文件被解析了,我们希望拿到网站的源代码,那么我们需要对代码做一层编码,不让他解析,
拿到之后我们再进行解码,这样就拿到了网站的源代码;在read参数中加入 convert.base64-encode PHP: 转换过滤器 -
Manual

http://127.0.0.1:8000/vul/ssrf/ssrf_fgc.php?file=php://filter/read=convert.base64-encode/resource=ssrf.php

然后网页出现了base64编码的代码

![](https://img-
blog.csdnimg.cn/img_convert/af2f147f0908ccff971bf7fa0b518ba8.png)

利用解码工具或hackbar:

![](https://img-
blog.csdnimg.cn/img_convert/12bf811133ab841e6a86c340c689f6d9.png)

5、漏洞修复

1、设置URL白名单或者黑名单内网IP; 2、过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。如果web应用是去获取某一种类
型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准;
3、禁用不需要的协议,仅仅允许http和https请求,可以防止类似于file:///,gopher://,ftp:// 等引起的问 题。

题外话

初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:

2023届全国高校毕业生预计达到1158万人,就业形势严峻;

国家网络安全宣传周公布的数据显示,到2027年我国网络安全人员缺口将达327万。

一方面是每年应届毕业生就业形势严峻,一方面是网络安全人才百万缺口。

6月9日,麦可思研究2023年版就业蓝皮书(包括《2023年中国本科生就业报告》《2023年中国高职生就业报告》)正式发布。

2022届大学毕业生月收入较高的前10个专业

本科计算机类、高职自动化类专业月收入较高。2022届本科计算机类、高职自动化类专业月收入分别为6863元、5339元。其中,本科计算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。

具体看专业,2022届本科月收入较高的专业是信息安全(7579元)。对比2018届,电子科学与技术、自动化等与人工智能相关的本科专业表现不俗,较五年前起薪涨幅均达到了19%。数据科学与大数据技术虽是近年新增专业但表现亮眼,已跻身2022届本科毕业生毕业半年后月收入较高专业前三。五年前唯一进入本科高薪榜前10的人文社科类专业——法语已退出前10之列。

“没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。

网络安全行业特点

1、就业薪资非常高,涨薪快 2022年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!

img

2、人才缺口大,就业机会多

2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。
img

行业发展空间大,岗位非常多

网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…

职业增值潜力大

网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。

随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。

从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

行业发展空间大,岗位非常多

网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…

职业增值潜力大

网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。

随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。

从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值