首页 > 其他分享 >5、请求伪造漏洞

5、请求伪造漏洞

时间:2023-05-23 09:12:43浏览次数:39  
标签:请求 SSRF 0.1 URL 漏洞 服务器 伪造

请求伪造漏洞:SSRF(服务器端请求伪造)、CSRF(跨站请求伪造)

一、SSRF漏洞概念:

 攻击者构造形成由服务器端发起请求的一个安全漏洞,攻击目标是从外网无法访问的内部系统,可以对内外网或者本地进行端口扫描,某些情况下端口的Banner会回显出来(比如3306),使用file:///协议读取本地文件。

  首先,我们要对目标网站的架构了解,脑子了要有一个架构图。比如 : A网站,是一个所有人都可以访问的外网网站,B网站是一个他们内部的OA网站,我们普通用户只可以访问a网站,不能访问b网站。但是我们可以同过a网站做中间人,访问b网站,从而达到攻击b网站需求

二、SSRF漏洞出现原因:

  很多web都会提供从其他服务器上获取数据的功能,使用用户指定的URL,web应用可以获取图片,下载文件,读取文件内容等,这个功能如果被恶意使用,可以利用存在去缺陷的web应用作为代理攻击远程和本地的服务器。当攻击者提供的是一个企业私网ip时,服务器可能会访问对应网址把结果返回。

  如果应用程序对用户提供的URL和远端服务器返回的信息没有进行合适的验证和过滤,就可能存在服务器请求伪造的缺陷。攻击者利用SSRF可以实现的攻击主要为绕过网络限制攻击企业内网

  SSRF漏洞就是通过篡改获取资源的请求发送给服务器,但是服务器并没有检测这个请求是否合法的,然后服务器以他的身份来访问其他服务器的资源。

三、攻击方式

信息收集:可对内外,本地端口进行扫描,获取一些服务的banner信息

信息收集:对内网web应用进行指纹识别,通过访问默认文件实现

执行指令:攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts,sql等)

执行指令(溢出):攻击运行在内网或本地的应用程序(比如溢出)

信息收集:利用file协议读取本地文件等。

四、SSRF漏洞监测方法

  PHP:检测是否有file_get_contens()、fsockopen()、curl_exec()这三个函数使用不当会造成SSRF漏洞

  JSP:以下集中引用不当会造成SSRF,需要进行检测Request类,URL类的openStream,HttpClient类,URLConnection和HttpURLConnection类,

五、SSRF漏洞检测方法

  (一)绕过方法(需要检测)

  (二)添加端口号,短网址绕过,指向任意IP的域名xip.io;ip限制绕过;

    10.0.0.1.xip.io  resolves to 10.0.0.1

    www.10.0.01.xip.io  resolves to 10.0.0.1

    mysite.10.0.0.1.xip.io  resolves to 10.0.0.1

   (三) 十进制转换,八进制转换,十六进制转换,不同进制组合转换;

  对于这种过滤我们可以采用改编IP的写法的方式进行绕过,例如192.168.0.1这个IP地址我们可以改写成:

  (1)、8进制格式:0300.0250.0.1    64*3.64*2+8*5.0.1

  (2)、16进制格式:0xC0.0xA8.0.1

  (3)、10进制整数格式:3232235521

  (4)、16进制整数格式:0xC0A80001

  还有一种特殊的省略模式,例如10.0.0.1这个IP可以写成10.1

  (四)协议限制绕过,比如:在某些情况下,后端程序可能会对访问的URL进行解析,对解析出来的host地址进行过滤。这时候可能会出现对URL参数解析不当,导致可以绕过过滤。

http://[email protected]/

当后端程序通过不正确的正则表达式(比如将http之后到com为止的字符内容,也就是www.oldboyedu.com,认为是访问请求的host地址时)对上述URL的内容进行解析的时候,很有可能会认为访问URL的host为www.oldboyedu.com,而实际上这个URL所请求的内容都是192.168.0.1上的内容。

 

六、SSRF漏洞修复方法

  过滤返回信息,验证远程服务器对请求的响应是比较容易的方法

  如果web应用是获取某一种类的文件,那么把返回结果展示给用户之前先验证返回的信息是否符合标准。限制请求的端口为常用HTTP端口,比如80,443、8080、8090,黑名单内网IP,避免应用被用来获取内网数据,攻击内网。

禁用不需要的协议,仅仅允许http和https请求。

七、SSRF的防御方法(黑名单)

 

(1)过滤10.0.0.0/8 、172.16.0.0/12、192.168.0.0/16、localhost私有地址​、IPv6地址

 

(2)过滤file:///、dict://、gopher://、ftp:// 危险schema

 

(3)​对返回的内容进行识别

 

(4)内网服务开启鉴权​(Memcached, Redis, Elasticsearch and MongoDB)

最佳防护:

(1)使用地址白名单

(2)对返回内容进行识别

(3)需要使用互联网资源(比如贴吧使用网络图片)而无法使用白名单的情况:首先禁用 CURLOPT_FOLLOWLOCATION;然后通过域名获取目标ip,并过滤内部ip;最后识别返回的内容是否与假定内容一致

 

标签:请求,SSRF,0.1,URL,漏洞,服务器,伪造
From: https://www.cnblogs.com/zwj611/p/17414378.html

相关文章

  • drf——反序列化校验源码(了解)、断言、drf之请求和响应、视图之两个视图基类
    1.模块与包#模块与包 模块:一个py文件被别的py文件导入使用,这个py文件称之为模块,运行的这个py文件称之为脚本文件包:一个文件夹下有__init__.py#模块与包的导入问题'''1.导入模块有相对导入和绝对导入,绝对导入的路径是从环境变量开始的2.导入任何模块,如果......
  • 端口-协议-漏洞
    计算机网络七层模型中对应的协议应用层:用户接口(FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS、SNMP)表示层:定义数据格式(JPEG、ASCLL、GIF、DES、MPEG)会话层:定义了开始、控制、结束一个会谈(RPC、SQL、NFS)传输层:差错恢复、数据包的重新排列(TCP、UDP、SPX)网络层:端到端的包定义(IP、IP......
  • charles 选中某个请求后,下方不展示 response 小窗口
    今天使用charles抓包,选中某个请求后,发现下方只有Request窗口,并没有Response的窗口,发现需要点击Conent之后才能看到Response窗口......
  • 【JAVA】调用第三方接口发送request请求
    一、通过JDK网络类Java.net.HttpURLConnection通过统一资源定位器(java.net.URL)获取连接器(java.net.URLConnection)。设置请求的参数。发送请求。以输入流的形式获取返回内容。关闭输入流。 1、发送post请求packagecom.Run;importjava.io.*;importjava.net.HttpU......
  • 一文读懂面试官都在问的Fastjson漏洞
    Fastjson1.2.24-RCE漏洞漏洞简介fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。即fastjson的主要功能就是将JavaBean序列化成JSON字符串,这样得到字符串之后就可以通过数据库等方式......
  • WEB漏洞—简要SQL注入
    前言:在本系列课程学习中,SQL注入漏洞将是重点部分,其中SQL注入又非常复杂,区分各种数据库类型,提交方法,数据类型等注入,需要按部就班的学习,才能学会相关SQL注入的核心。同样此类漏洞是WEB安全中严重的安全漏洞,学习如何利用,挖掘,修复也是很重要的。 SQL注入安全测试中危害:危害数据和......
  • WEB—漏洞必懂知识点
     CTF,SRC,红蓝对抗,实战等SRC:针对与网站上面的漏洞,进行提交漏洞并证实可以获得相应的佣金。偏向于实战,重点掌握获取网站权限 漏洞等级划分高危:SQL注入,文件上传,文件包含,代码执行,未授权访问——直接影响到网站权限和数据库权限,能够直接获取数据或者获取到一些敏感信息只要涉......
  • ajax的几种请求方式
    1$.ajax({2type:'get',3url:'js/cuisine_area.josn',4async:true5})67//忽略返回值,传递参数8$.get('url',{name:'nihao'})910//有返回值,有参数11$.get('url',{name:'nihao'......
  • Android 教你一步步搭建MVP+Retrofit+RxJava网络请求框架
    1.什么是MVP? MVP(ModelViewPresenter)其实就是一种项目的整体框架,能让你的代码变得更加简洁,说起框架大家可能还会想到MVC、MVVM。由于篇幅原因,这里我们先不讲MVVM,先来看一下MVC。其实Android本身就采用的是MVC(ModelViewControllor)模式、其中Model指的是数据逻辑和实体模型......
  • 解决Anroid7.0以上版本无法抓取微信浏览器中Https请求
    为什么安卓7.0以上的系统,微信7.0版本以上无法抓取https包?原因:1.安卓7.0之后,提高了系统安全性。APP默认不信任用户域的证书2.微信7.0以后更新了安全机制,加入了防止中间人attack的机制详情可搜索sslpinning了解防止中间人attackSSLPinninghttps的网站使用使用伪证书可以抓到,但app......