SSRF(服务器端请求伪造)浅析

0x00 SSRF漏洞的定义与成因

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF是要目标网站的内部系统。(因为他是从内部系统访问的,所有可以通过它攻击外网无法访问的内部系统,也就是把目标网站当中间人)
SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。
上边这些都是一些在百度上可以查到的,感觉很难理解,下面说一下我个人的理解。配上我自己画的粗糙的结构图
在这里插入图片描述
我们就是代表的pc机,企业环境里有两个服务器A和B分别对应两个网站。其中A是一个外网网站,是所有人都可以访问到的,B是一个内网网站。
在这里我们的pc机就相当与一个连接外网的普通用户,我们只能访问到A,访问不到B。但是既然A,B
都在一个企业环境下,我们是否可以利用A靶机作为跳板,也就是中间人来访问B网站,对B网站搞些动作。

来看一下正常用户访问网站的流程是:

输入A网站URL --> 发送请求 --> A服务器接受请求(没有过滤),并处理 -->返回用户响应

但是我们有没有印象在一些网站中有这样的URL

http://www.xxxxxxx.com/xxx.php?image=URL

一个网站引用了其他网站的一个图片,或者其他东西,如果在网站后台对这个引用的网站没有严格的过滤,那我们是不是可以将其修改为我们想要的网站,比如我们访问不到的内网网站B一些网页,这样不就相当与我们通过A的服务器来访问B的服务器,就算不能显示网页内容,但是不是可以通过回显出来的状态码判断网页是否存在。

0x01 SSRF的用处

  1. 可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;

  2. 攻击运行在内网或本地的应用程序(比如溢出);

  3. 对内网web应用进行指纹识别,通过访问默认文件实现;

  4. 攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);

  5. 可以使用file、dict、gopher[11]、ftp协议进行请求访问相应的文件。

  6. DoS攻击

0x02 SSRF常出现的地方

  1. 社交分享功能

  2. 转码服务

  3. 在线翻译

  4. 图片加载/下载:

  5. 图片/文章收藏功能:

  6. 云服务厂商:

  7. 网站采集,网站抓取的地方

  8. 数据库内置功能

  9. 邮件系统:比如接收邮件服务器地址

  10. 编码处理, 属性信息处理,文件处理

  11. 未公开的api实现以及其他扩展调用URL的功能:可以利用google 语法加上这些关键字去寻找SSRF漏洞的一些的url中的关键字:share、wap、url、link、src、source、target、u、3g、display、sourceURl、imageURL、domain……

  12. 从远程服务器请求资源(upload from url 如discuz!;import & expost rss feed 如web blog;使用了xml引擎对象的地方 如wordpress xmlrpc.php)

0x03 SSRF的验证方法

  1. 通过抓包分析,所发送的请求是否是来自服务器,来验证是否存在SSRF漏洞
  2. 在页面源码中查看所引用的地址看看是否符合我上边所说的http://www.xxxxxxx.com/xxx.php?image=URL的这种格式,如果是就可能存在SSRF
  3. 利用dnslog等工具进行测试,看是否被访问
  4. 当然有可能会是bool型SSRF这要注意的点

0x04 SSRF实例

在这里给大家推荐一个靶场,叫做bWAPP(buggy web Application),这是一个集成型的靶场,有很多漏洞的环境,可以自己下载下来尝试,网上有很多相关教程,我这里也就不在过多赘述。

0x05 参考文章

[1] https://xz.aliyun.com/t/2115
[2] https://www.jianshu.com/p/d1d1c40f6d4c
[3] https://www.freebuf.com/articles/web/20407.html
[4] http://blog.safebuff.com/2016/07/03/SSRF-Tips/

程声明:该课程是教学使用,视频内涉及漏洞利用方法,请勿在互联网环境中使用;维护互联网安全,人人有责。实验所需环境:vmware;kali虚拟机一台;windows server一台;有docker环境的Linux虚拟机环境下载地址在购买课程后单独发送 【课程配套资源】1、Python脚本(Margin老师自研,不光能学漏洞,还能学Python,实在是划算)2、与Margin老师实时互动3、免费的CISP-PTE考试技巧指导(Margin老师与CISP-PTE的负责人很熟的,非常多的一手消息^o^)4、Margin老师的内部直播可以优先参加5、Margin老师的课程基于CISP-PTE的知识体系进一步扩展,使课程内容更贴近实战   【课程主要解决问题】1、CSRF、SSRF搞不清楚?2、SSRF原理是什么?危害大小?如何利用SSRF获取主机权限?如果使用Python提高挖洞效率?3、Gopher协议、Dict协议?完全没听过啊,没关系,看完课程后你门清。4、SSRF透Redis数据库,Redis客户端和服务器端怎么通信?通信报文是怎么样的?看这里就行。5、SSRF透Struts2总是失败?不知道如何编码?不知道如何使用Gopher协议?来这里。6、SSRF表面简单,实则有无数坑,通过视频提高学习效率吧。 【CISP-PTE介绍】1、CISP-PTE是进入网络安全行业的TOP1认证,能帮你梳理完整的网络安全知识体系2、有PTE证书在网络安全公司是免技术笔试的,怎么样?是不是很棒。3、Margin老师的课程基于CISP-PTE的知识体系进一步扩展,使课程内容更贴近实战本课程属于CISP-PTE透测试工程师认证体系的课程,但内容更加丰富。CISP-PTE是国内第一个以动手实操为主的网络安全认证,该注册考试是为了锻炼考生世界解决网络安全问题的能力,持续增强我国的网络安全水平和防御能力,促进国内网络防御能力的不断提高。考试内容从多个层面进行,考点和网络安全动态相结合,真实的反应出真实的网络环境中发现的各种问题。如果要考取CISP-PTE证书需要掌握以下内容:1、Web安全基础,注入漏洞、上传漏洞、跨站脚本漏洞、访问控制漏洞、会话管理漏洞哦等。2、中间件的安全知识,如:Apache,IIS,Tomcat,以及 JAVA 开发的中间件 Weblogic,Jboss, Websphere 等,且要了解中间件加固方法,在攻与防的能力上不断提升。3、操作系统安全,包含Windows和Linux操作系统,从账户管理、文件系统权限、日志审计等方面讲解,了解常见的漏洞方式和加固方法。4、数据库安全,包含MSSQL、MYSQL、ORACLE、REDIS数据,了解常用的数据库漏洞和题全方法,保证数据库的安全性。 【关于Margin老师】· Margin/教育系统网络安全保障人员认证首批讲师/高级讲师· 擅长CTF/Web安全透测试 /系统安全· 3年研发/擅长Java/Python/某银行现金循环机业务系统开发者· 曾参与开发网络安全认证教材· 知乎专栏/CISP-PTE透测试工程师学习· 4年线下网络安全讲师/2000+线下学员/100000+线上学员
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值