SSRF

article/2025/11/4 21:27:52

一、SSRF是什么?

SSRF是由一种攻击者构造请求,由服务器端发起请求的安全漏洞。一般情况下SSRF的攻击目标是外网无法访问到的内部系统。(正因为请求是由服务器发起的,所以服务器端能请求到与自身相连而与外网隔离的内部系统。)

二、SSRF是怎样形成的?

SSRF的形成大多是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。

三、SSRF主要攻击方式

(1)对外网,服务器所在内网、本地进行端口扫描,获取一些服务的banner信息。
(2)攻击运行在内网或本地的应用程序。
(3)对内网web应用进行指纹识别,识别企业内部的资产信息。
(4)攻击内外网的应用程序,主要是使用HTTP GET请求就可以实现的攻击。例如struts2、SQli等。
(5)利用file协议读取本地文件等。

四、pikachu实例演示

<1>curl()函数
首先我们大概了解一下在PHP中curl函数是用来干什么的。curl是一个库,能让你通过URL和许多不同种的服务器进行交流,并且还支持许多协议。curl可以支持https认证、http post、ftp上传、代理、cookies、简单口令认证等等功能。接下来我们先看一下curl函数源码:
在这里插入图片描述
可以看到对前端传入的URL不做过滤,那我们就可以curl_exec()函数去执行一些恶意操作 。
(1)这里我们可以看到是直接通过URL直接获取资源,所以我们可以更改URL去跳转其他网站或者是对内网(IP)进行探测,这里我们就以我的kali机作演示。
首先我们在kali上用python开启一个监听8080端口的服务器,然后我们访问kali上的wu.txt文件,成功读取,同时在kali可以看到回显。
在这里插入图片描述
在这里插入图片描述
(2)探测本机是否开放某些端口服务,例如:3306、8081(这里是我burp的代理监听端口)。其实这里有些服务是没有回显的,所以我们可以根据回显的速度来判断某个端口是否开放。
在这里插入图片描述
在这里插入图片描述
(3)利用file协议读取本地文件,例如:file:///C:\Windows\win.ini。
在这里插入图片描述
<2>file_get_content()函数
file_get_content()函数的功能是对本地和远程的文件进行读取。
(1)读取本地或者远程文件,读取本地文件时可以不用file协议,直接加路径即可;远程的需要加上域名。
(2)获取源码,这里我们获取网站根目录下的ws.php的源码,这里是用base64编码的,我们可以用解码工具进行解码。
在这里插入图片描述
在这里插入图片描述
PS:php://filter简单理解
php://filter 是php中独有的一个协议,可以作为一个中间流来处理其他流,可以进行任意文件的读取;根据名字,filter,可以很容易想到这个协议可以用来过滤一些东西。使用不同的参数可以达到不同的目的和效果:
在这里插入图片描述
另外用read的解释:

<?php /* 这会以大写字母输出 www.example.com 的全部内容 */ 
readfile("php://filter/read=string.toupper/resource=http://www.examp
le.com"); /* 这会和以上所做的一样,但还会用 ROT13 加密。 */ 
readfile("php://filter/read=string.toupper|string.rot13/resource=htt
p://www.example.com"); ?>

上例中我们应用了read参数和resource参数,当然还可以用write参数,这时我们可以通过指定写的方式来对文件进行一些改变。

五、防御方法

1、过滤返回的信息,如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。

2、统一错误信息,避免用户可以根据错误信息来判断远程服务器的端口状态。

3、限制请求的端口,比如80,443,8080,8090。

4、禁止不常用的协议,仅仅允许http和https请求。可以防止类似于file:///,gopher://,ftp://等引起的问题。

5、使用DNS缓存或者Host白名单的方式。


http://chatgpt.dhexx.cn/article/5qS4c6mG.shtml

相关文章

XSS、CSRF攻击

XSS: XSS攻击是一种代码注入攻击&#xff0c;通过恶意注入脚本在浏览器运行&#xff0c;然后盗取用户信息 造成XSS攻击其实本质上还是因为网站没有过滤恶意代码&#xff0c;与正常代码混在一起之后&#xff0c;浏览器没有办法分辨哪些是可信的&#xff0c;然后导致恶意代码也被…

XSS,CSRF,SSRF,RCE

#cookie session 用户凭据&#xff1a;通过凭据可以判断对方身份信息 cookie 存储本地 存活时间较长 小中型 session 会话 存储服务器 存活时间较短 大型 有可能项目有错误&#xff0c;原因就是不能放在其他文件夹的路径中 admin 123456 一般来说只要前后端数据交互的地方就有…

CSRF+Self XSS

目录 前言 CSRF漏洞检测 复现 环境 1.构造xss(反射型)poc 2.构造csrf poc 3.使用CSRFTester工具生成CSRF poc 3.1打开工具 3.2设置浏览器代理 3.3用户登录 3.4抓取和伪造请求 4.访问修改后的url(模仿用户访问) 前言 CSRF&#xff0c;跨站请求攻击&#xff0c;简单…

XSRF 防御

XSRF 又名 CSRF (opens new window)&#xff0c;跨站请求伪造&#xff0c;它是前端常见的一种攻击方式&#xff0c;我们先通过一张图来认识它的攻击手段。 CSRF 的防御手段有很多&#xff0c;比如验证请求的 referer&#xff0c;但是 referer 也是可以伪造的&#xff0c;所以杜…

8、防护XSRF的方式:post请求之类伪造请求

“学习或者了解人工智能小伙伴福利来了&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。” 想了解或者学习人工智能可以看一下&#xff0c;我觉得学习起来挺有趣的&#xff01;&#xff01;&am…

【xss结合csrf实验】

文章目录 前言一、实验介绍二、实验步骤1.用户登录2.抓取信息修改的url3.构造xss语句4.插入xss语句5.查看用户信息已被修改 总结 前言 通常xss漏洞可以和csrf漏洞结合使用&#xff0c;今天就做一个小的实验举例 一、实验介绍 漏洞主要利用的是用户修改敏感信息的未退出状态&a…

XSS和CSRF攻击

一、XSS攻击&#xff08;跨脚本攻击&#xff09; 是一种普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中&#xff0c;当正常用户访问该页面时&#xff0c;则可导致嵌入的恶意脚本代码的执行&#xff0c;从而达到恶意攻击用户的目的…

前端安全之XSS和XSRF攻击,及其解决方案

xss攻击&#xff1a; Cross Site Scripting&#xff1a;跨站脚本 &#xff08;不用CSS&#xff0c;是因为CSS已经代表了样式。而X有未知和扩展的含义。&#xff09; 通过document.cookie获取用户的cookie&#xff0c;解决方案&#xff1a;重要的cookie要HttpOnly请求&#xf…

【安全】CSRF与XSS

CSRF和XSS概念 CSRF&#xff1a;跨站请求伪造&#xff08; cross site request forgery)&#xff1a;盗用用户在某网站的身份&#xff0c;以用户名义向某网站发起恶意请求。原理见下图&#xff1a; 上图中的恶意站点B&#xff0c;有时候可能其实是一个正常的网站。这时候通常…

jupyter ‘_xsrf‘ argument missing from post 解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

详解XSS和CSRF

关于XSS xss是跨站脚本攻击&#xff0c;攻击者通过“注入”&#xff0c;在网页中插入恶意代码&#xff0c;从而被浏览器执行所造成的一种攻击方式。 举一些实例&#xff0c;它可以进行如下操作&#xff1a; 1.窃取用户的cookie信息。恶意代码可以通过执行 ”doccument.cooki…

XSRF CRFS(跨站请求伪造,单点登录攻击) 特点和原理

CSRF 特点和原理 CSRF&#xff1a;Cross Site Request Forgery&#xff0c;跨站请求伪造 概念&#xff1a;跨站请求伪造&#xff08;英语&#xff1a;Cross-site request forgery&#xff09;&#xff0c;也被称为 one-click attack 或者 session riding&#xff0c;通常缩写为…

Linux常用命令——tail命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) tail 在屏幕上显示指定文件的末尾若干行 补充说明 tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个&#xff0c;则在显示的每个文件前面加一个文件名…

Linux中tail命令的使用

tail 命令可用于查看文件的内容&#xff0c;有一个常用的参数 -f 常用于查阅正在改变的日志文件。 tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上&#xff0c;并且不断刷新&#xff0c;只要 filename 更新就可以看到最新的文件内容。 tail [参数] [文件] …

Linux tail 命令

tail 命令可用于查看文件的内容&#xff0c;有一个常用的参数 -f 常用于查阅正在改变的日志文件。 tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上&#xff0c;并且不断刷新&#xff0c;只要 filename 更新就可以看到最新的文件内容。 命令格式&#xff1a…

关于tail 命令

tail命令 用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个&#xff0c;则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”&#xff0c;则读取标准输入。 1.如果给定的文件不止一个&#xff0c;则在…

Linux命令-tail

1、tail 对应中文意思为“尾巴”“跟踪” 2、Linux系统中tail 命令用于将每个文件的最后10行打印到标准输出 3、tail -f filename 会把filename文件里的最尾部的内容显示在屏幕上 并且不断刷新 只要filename更新就可以看到最新的文件内容 常用于追踪文件内容 4、实例 tail …

tail命令,实时查看日志文件

一、前言 Linux 实时查看日志文件&#xff0c;最主要使用的就是tail命令。 linux tail命令用于显示文件尾部的内容&#xff0c;默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个&#xff0c;则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名…

Linux - tail命令详解

一、作用 查看应用项目日志信息 说明&#xff1a;一般在应用项目目录下有个logs的目录文件&#xff0c;会存放日志文件&#xff0c;有个xxx.log的文件&#xff0c;可以用tail -f 动态实时查看后端日志二、语法 tail [选项] 文件名选项说明-f实时读取-1000查看最近1000行日志 …

windows下使用tail命令

tail 命令为linux 下的常用查看日志命令&#xff0c;可惜在windows下没有&#xff0c;还好有好心人开发了一个可以在Windows下的运行的小工具&#xff0c;来给分享一下: 链接: https://pan.baidu.com/s/1-LiogYgYcAEbZUstdEZURg 密码: 1w6p 使用方法&#xff1a; 下载后解压…