CSRF&SSRF

一、CSRF

0x01.CSRF原理

跨站请求伪造(Cross-site request forgery)CSRF是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。当用户访问含有恶意代码的网页时,会向指定正常网站发送非本人意愿的数据请求包(如转账给hack,向hack发送API等)如果此时用户恰好登录了该正常网站(也就是身份验证是正常的)就会执行该恶意代码的请求,从而造成CSRF。

0x02.CSRF攻击过程

条件:网站A没有验证referer信息;

用户访问登录受信任网站A——>网站A返回个cookie给用户浏览器——>黑客利用网站A存在CSRF的功能点构造恶意网站B——>用户在与网站A会话未过期的前提下,在同个浏览器又访问了网站B——>B网站收到用户请求后返回攻击性代码,构造访问网站A的语句——>浏览器收到攻击性代码后,在用户不知情的情况下携带cookie信息请求了网站 A                                      

0x03.pikachu靶场

  • GET型

用户A登录已知网站修改个人信息

黑客得知到用户正在修改个人信息通过一些手段(ARP欺骗劫持、中间人监听、流量嗅探等)获取用户数据包,这里利用burp的构造csrf poc功能生成网站B修改用户的性别和电话号码(现实中需要公网服务器)

 

诱使用户访问(可以构造成url)

  • Post型

用户发现信息被修改后想改回来

此时黑客得知想娱乐下,又把用户的add改为1234

 

用户又被黑客诱使访问了黑客构造的网站

 

 

0x04.CSRF攻击的防御

  • 验证 HTTP Referer 字段;
  • 在请求地址中添加 token 并验证(Anti-CSRF token)

二、SSRF

 0x01.SSRF原理

 SSRF:服务器端请求伪造(Server-Side Request Forgery)是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。SSRF攻击的目标一般是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统);

 SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。利用的是服务端的请求伪造。ssrf是利用存在缺陷的web应用作为代理攻击远程和本地的服务器。

0x02.常见漏洞点

1)分享:通过URL地址分享网页内容

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

3)在线翻译:通过URL地址翻译对应文本内容 如:百度,有道

4)图片加载与下载:通过URL地址加载与下载图片

5)图片 文章收藏功能

6)未公开的API实现以及其他调用URL的功能

0x03.靶场测试

http、dict探测内网端口

file读取文件

 

 

0x04.SSRF防御

1)、统一错误信息
2)、限制请求的端口
3)、过滤返回的信息
4)、黑名单内网ip
5)、禁用其他协议,允许http,https;

<think>好的,用户问的是CSRF和SSRF是不是同一个东西。首先,我需要确认这两个术语的定义和区别。 CSRF,跨站请求伪造,攻击者诱使用户在已认证的情况下执行非本意的操作。比如,用户登录了银行网站,攻击者诱导用户点击链接,导致用户 unknowingly 发起转账请求。这通常涉及用户的浏览器向目标网站发送恶意请求。 SSRF,服务器端请求伪造,攻击者让服务器向内部或外部资源发送恶意请求。例如,利用有缺陷的Web应用,让服务器访问内部系统,可能泄露敏感信息或者攻击内网服务。这里的关键是服务器作为请求的发起者,而不是用户的浏览器。 接下来,用户可能混淆这两个缩写,因为都有SRF。我需要明确它们的攻击目标和场景不同。CSRF针对的是用户的会话,而SSRF针对的是服务器端的资源访问。同时,防御方法也不同:CSRF通常用Token验证,检查Referer,SameSite Cookie;SSRF则需要过滤输入,限制服务器请求的范围。 还要注意用户可能的背景,可能对网络安全概念不太熟悉,所以需要举例说明,避免技术术语过于复杂。确保回答结构清晰,分点对比,帮助用户逐步理解两者的区别。最后总结它们不是同一个概念,强调关键差异,这样用户能明确区分。</think>CSRF(跨站请求伪造)和SSRF(服务器端请求伪造)是两种完全不同的网络安全攻击类型,以下是具体对比分析: ### 一、定义对比 **CSRF (Cross-Site Request Forgery)** - 攻击对象:已认证用户的浏览器 - 攻击原理:诱导用户在已登录状态下执行非预期操作 - 示例场景: ```markdown 用户登录银行网站后访问恶意网站 → 恶意网站自动提交转账请求 → 浏览器携带银行Cookie完成转账 ``` **SSRF (Server-Side Request Forgery)** - 攻击对象:服务端应用程序 - 攻击原理:利用服务端发起非预期网络请求 - 示例场景: ```markdown 攻击者构造特殊请求 → 服务端访问内部元数据接口(如AWS 169.254.169.254) → 泄露云服务器敏感信息 ``` ### 二、攻击流程对比 | 特征 | CSRF | SSRF | |-------------|-------------------------------|-------------------------------| | 请求发起方 | 用户浏览器 | 服务器 | | 利用凭证 | 用户的会话Cookie | 服务器的网络权限 | | 攻击目标 | 用户已认证的Web应用功能 | 内部系统/云元数据/第三方服务 | | 危害范围 | 用户账户级操作 | 系统级数据泄露/内网渗透 | ### 三、防御方案对比 **CSRF防御:** 1. 同步令牌验证(Anti-CSRF Token) $$ X-CSRF-Token: \text{RANDOM_128BIT_STRING} $$ 2. SameSite Cookie属性设置 3. 关键操作二次认证(如短信验证) **SSRF防御:** 1. 输入校验白名单(协议/域名/IP) ```python if not url.startswith('https://api.trusted.com/'): raise ValidationError ``` 2. 禁用危险协议(file://, gopher://, ftp://) 3. 网络隔离(将服务器部署在独立DMZ区) ### 四、历史案例分析 - **CSRF经典案例**:2007年Gmail邮件过滤器漏洞,攻击者可远程修改用户邮件规则 - **SSRF重大事件**:2021年Capital One数据泄露(攻击者通过SSRF访问AWS元数据获取密钥) ### 五、检测方法差异 - **CSRF检测**: - 检查请求是否缺少Token - 验证Referer头来源 - **SSRF检测**: - 使用DNS重绑定技术测试 - 尝试访问`http://169.254.169.254/latest/meta-data/` ### 总结 二者核心区别在于: $$ \text{CSRF} \subseteq \text{客户端安全} \quad vs \quad \text{SSRF} \subseteq \text{服务端安全} $$ 虽然名称相似,但属于完全不同的安全领域,防御时需采取针对性措施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值