[10期]浅谈SSRF安全漏洞
引子:SSRF 服务端请求伪造攻击
很多web应用都提供从其他服务器上获取数据的功能。使用用户指定的URL,web应用可以从其他服务器获取图片,下载文件,读取文件内容等。
这个功能被恶意使用的话,可以利用存在此缺陷功能的web应用作为代理(读取其他服务器攻击载荷),攻击远程和本地服务器。这种形式的攻击叫SSRF。 以上攻击载荷都是客户端编写URL让服务端完成加载,最后由服务端执行与发起。
剧透,本文所有知识,方式均借鉴于www.wooyun.org 该网站未被弹劾时,是国内白帽子的学习天堂,有点国内哈佛的环境,无所不言,无所不思。乌云没了,就感觉你最重要的人走了的这种心痛。良药苦口,以后遇到说你的东西存在严重问题时,你可以不理睬,但一定要克制住自己,不要利用关系痛下杀手,排挤别人出局。 还是附带一个参考源吧:https://www.shentoushi.top/knowledge
分析知识源:得到各程序的代码功能性知识,利用功能性做验证,检查是否存在缺陷。要掌握这种挖洞能力需要具备以下几点:
1.需要阅读源代码(从软件工程的角度)学习软件功能而不是从每一句话,每一个函数,从一整块功能性的代码入手。
2.需要引子,功能性代码别人是如果发现与测试出来的?有一个例子先行,然后模仿它,举一反三(你改了这里做测试,那我明白了,改一下其他地方做做实验)。
师傅不教你踩离合器挂上一档,或者你没看过教学视频,你是不会举一反三挂上二三四五档和倒挡的,就是这个学习心理。
防御也是一样:攻击步骤你都不清楚,你知道在哪里做防御吗?下载安全狗,搞好防火墙。最后发现一样被莫名其妙的攻击了。
学语言是为了看懂功能性的代码,知道功能性是为了发现漏洞,学安全是为了得到实际的经验然后开窍自己FQ上YouTube找到一手教学信息。
因为,国内大部分的开源教学都是从国外网站,YouTube搬运过来的。有的甚至拿这个信息差割韭菜收你的费用。
可以利用该漏洞实现的攻击方式:
信息收集:对外网、服务器所在内网、本地进行端口扫描,获取一些服务的bannar信息。对内网web应用进行指纹识别,访问默认文件实现。
在下图方式入手: 可以发现其实就是在GET方式或者POST方式上面尝试提交URL
这里可以用python写一个脚本,判断端口返回的信息是否为空,来完成信息收集 【本地进行端口扫描】
提交得到的URL看是否可以识别,如果可以就说明用的tomcat
执行指令:主要是使用GET参数(比如struts2,sqli等)
执行指令(溢出):攻击运行在内网或本地的应用程序(比如溢出)
信息收集:利用file协议读取本地文件等
以下业务场景容易出现这种漏洞:
1.应用从用户指定的URL获取图片。然后把它用一个随机文件名保存在硬盘上,并展示给用户
2.应用获取用户指定URL的数据(文件或HTML)。这个函数会使用socket跟服务器建立tcp连接,传输原始数据
3.应用根据用户提供的URL,抓取用户的web站点,并自动生成移动wap站
4.应用提供测速功能,根据用户提供的URL,访问目标站点,以获取其在对应经纬度的访问速度
1)分享:通过URL地址分享网页内容
2)转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
3)在线翻译:通过URL地址翻译对应文本的内容
4)图片加载与下载:通过URL地址加载或下载图片
5)图片、文章收藏功能
6)未公开的API实现以及其他调用URL的功能
7)URL关键词寻找 在对功能上存在SSRF漏洞中URL地址特征的观察,大致有以下关键字:
share wap url image link src source target u 3g display sourceURL domain
SSRF漏洞验证 以下在客户端都看见了发起请求了,那就不是服务端发起的,所以不是SSRF漏洞
现在大多数修复SSRF的方法基本都是区分内外网来做限制(暂不考虑利用此问题来发起请求,攻击其他网站,从而隐蔽攻击者IP,防御此问题就要做请求的地址白名单)
实例验证
防御:
绕过
[10期]浅谈SSRF安全漏洞的更多相关文章
- 通过JBoss反序列化(CVE-2017-12149)浅谈Java反序列化漏洞
前段时间学校学习J2EE,用到了jboss,顺便看了下jboss的反序列化,再浅谈下反序列化漏洞. Java序列化,简而言之就是把java对象转化为字节序列的过程.而反序列话则是再把字节序列恢复为ja ...
- 在net中json序列化与反序列化 面向对象六大原则 (第一篇) 一步一步带你了解linq to Object 10分钟浅谈泛型协变与逆变
在net中json序列化与反序列化 准备好饮料,我们一起来玩玩JSON,什么是Json:一种数据表示形式,JSON:JavaScript Object Notation对象表示法 Json语法规则 ...
- 浅谈SSRF漏洞
SSRF漏洞是如何产生的? SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF是要目标网站 ...
- 浅谈SSRF
前言 最近主要是在思考考研的事.还是没想好-- 这几天的话写了一篇简单代审投稿了星盟,看了会SSRF.今天简单写下SSRF. 本文所有思路均来自互联网,并没有新想法.仅仅只是做个记录. 本文可能会有大 ...
- 浅谈PHP反序列化漏洞原理
序列化与反序列化 序列化用途:方便于对象在网络中的传输和存储 0x01 php反序列化漏洞 在PHP应用中,序列化和反序列化一般用做缓存,比如session缓存,cookie等. 常见的序列化格式: ...
- 10分钟浅谈CSRF突破原理,Web安全的第一防线!
CSRF攻击即跨站请求伪造(跨站点请求伪造),是一种对网站的恶意利用,听起来似乎与XSS跨站脚本攻击有点相似,但实际上彼此相差很大,XSS利用的是站点内的信任用户,而CSRF则是通过伪装来自受信任用户 ...
- 浅谈python反序列化漏洞
最近看到p神一篇讲python反序列化的文章,结合redis未授权访问组合漏洞,感觉在flask和redis的构架中比较常见,便记录下来. p神原文:https://www.leavesongs.co ...
- 浅谈SQL注入漏洞以及防范策略
--HeShiwei 2014-5-15 什么是SQL注入 SQL注入,指的是用户通过向登录框输入恶意字符,利用代码的字符串拼接漏洞进行网站注入攻击,最终导致整个网站用户表信息泄露的攻击方式.黑客就是 ...
- 浅谈php反序列化漏洞
关于php的反序列化漏洞要先说到序列化和反序列化的两个函数,即: serialize() 和unserialize(). 简单的理解: 序列化就是将一个对象变成字符串 反序列化是将字符串恢复成对象 这 ...
随机推荐
- redis防止抢购商品超卖
前言: redis不仅仅是单纯的缓存,它还有一些特殊的功能,在一些特殊场景上很好用. 本篇博文用来测试下使用redis来防止抢购商品超卖问题. 内容: 使用redis的list进行测试 思路是设置一个 ...
- 几个有关FPGA的概念
<数字设计——原理和实践>(John F.Wakerly)的书 FPGA同步时钟设计 简单说就是 一个系统中(或系统中的一部分)都采用同一个时钟触发.系统中的(D)触发器全部都连接到一个时 ...
- Python学习笔记-列表的增删改查
- 013-linux系统管理——系统资源查看
linux系统管理——系统资源查看 ############# vmstat 命令 监控系统资源 ############# vmstat [刷新时间 刷新次数] [root@zabbix ~]# v ...
- dying relu 和weight decay
weight decay就是在原有loss后面,再加一个关于权重的正则化,类似与L2 正则,让权重变得稀疏: 参考:https://www.zhihu.com/question/24529483 dy ...
- larval 使用redis做缓存
1.存redis 使用setex命令可以同时设置数据和保存时间 $data = [ 'name'=>zhangsan, 'age' => 28, 'sex' => 1 ]; Redi ...
- DevOps书单:调研了101名专家,推荐这39本必读书籍
任何一个领域都遵循从新人到熟手,从熟手到专家的路径.在成长过程中,DevOps人经常会陷入没人带,没人管,找不到职业方向的迷茫. DevOps是在商业演进与企业协作的进化过程中诞生的一个全新职业,被很 ...
- 关于js节流函数throttle和防抖动debounce
废话不多说,直奔主题. 什么是throttle和debounce? 这两个方法的主要目的多是用于性能优化.最常见的应用尝尽就是在通过监听resize.scroll.mouseover等事件时候的性能消 ...
- redis面试题集錦
1为什么Redis需要把所有数据放到内存中? Redis为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘.所以Redis具有快速和数据持久化的特性.如果不将数据放到内存中,磁盘 ...
- LOJ#3097 [SNOI2019]通信 最小费用最大流+cdq分治/主席树/分块优化建图
瞎扯 我们网络流模拟赛(其实是数据结构模拟赛)的T2. 考场上写主席树写自闭了,直接交了\(80pts\)的暴力,考完出来突然发现: woc这个题一个cdq几行就搞定了! 题意简述 有\(n\)个哨站 ...