| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 浅析SSRF漏洞 -> 正文阅读 |
|
[网络协议]浅析SSRF漏洞 |
一、概念SSRF(Server-Side Request Forgery:服务器端请求伪造) SSRF漏洞(服务器端请求伪造):是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统) 我的理解是,正常情况下,我们无法访问内网,或者说无法向内网发送报文,但是ssrf是通过服务器访问内网,由于服务器属于内部系统,那么内网就不会拒绝服务器的请求,从而达到一个访问内网的目的。 正常我们发送请求的过程: 可以看到,最后发送目标地址的报文是由服务器发出的,倘若服务器对客户端的url不加以过滤处理,就可能造成srrf漏洞 二、ssrf漏洞实例理解一个漏洞的最快方法就是通过实例取了解它 这里有一个网站,它希望我们通过GET输入其他的网站,从而跳转到我们输入的网页 这就是一个简单的ssrf漏洞例子 产生漏洞后,产生的危害有 三、ssrf漏洞产生原因这里有一个网上大佬总结的ssrf漏洞的图,总结的很详细
首先这是我搭建的一个网页,它的想法是希望我们输入一个url,从而跳转到那个网页 下面是后端代码
curl()可以利用的协议有很多 file,duct,gopher都可以
使用dict爆破端口 在gopher协议中,由于是服务器通过curl向内网发生报文,我们需要对gopher-path内容进行两次编码 同时还要注意编码过程中换行符%0A要全部替换成%0D%0A,其原因时在linux系统里面换行符的url编码是%0A,而windos是%0D0A,国内大部分在线编码器都是转换成%0A 注意
关于渗透的方式这里有一个大佬写的非常好,甚至很多我都不会,看来仍需学习,链接放这儿了ssrf渗透方法 常见的过滤与绕过常见的过滤
绕过方法
关于ssrf漏洞可能出现的场景
ssrf漏洞的防范一、首先就是要对获取url进行一个过滤,过滤掉内网ip,最好是设置一个白名单 二、对进制不需要的协议,仅允许http和https请求 三、禁止302跳转,或每跳转一次检查新的host是否为内网ip,后禁止
以上代码就对各种伪协议加上了限制,同时设置跳转重定向为True(也就是默认不跳转) 四、限制请求的端口为HTTP常用的端口,比如 80,443,8080,8088等 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/29 10:29:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |