CSRF SSRF

CSRF SSRF

1.CSRF的基本概念、缩写、全称

CSRF(Cross-site request forgery):跨站请求伪造。

PS:中文名一定要记住。英文全称,如果记不住也拉倒。

2.CSRF的攻击原理

用户是网站A的注册用户,且登录进去,于是网站A就给用户下发cookie。

从上图可以看出,要完成一次CSRF攻击,受害者必须满足两个必要的条件:

(1)登录受信任网站A,服务器并在本地生成Cookie。(如果用户没有登录网站A,那么网站B在诱导的时候,请求网站A的api接口时,会提示你登录)

(2)在不登出A的情况下,访问危险网站B(其实是利用了网站A的漏洞)。

我们在讲CSRF时,一定要把上面的两点说清楚。

温馨提示一下,cookie保证了用户可以处于登录状态,但网站B其实拿不到 cookie。

3、CSRF如何防御

方法一、Token 验证:(用的最多)

(1)服务器发送给客户端一个token;

(2)客户端提交的表单中带着这个token。

(3)如果这个 token 不合法,那么服务器拒绝这个请求。

方法二:隐藏令牌:

把 token 隐藏在 http 的 head头中。

方法二和方法一有点像,本质上没有太大区别,只是使用方式上有区别。

方法三、Referer 验证:

Referer 指的是页面请求来源。意思是,只接受本站的请求,服务器才做响应;如果不是,就拦截。

CSRF 和 XSS 的区别

区别一:

CSRF:需要用户先登录网站A,获取 cookie。XSS:不需要登录。

区别二:(原理的区别)

CSRF:是利用网站A本身的漏洞,去请求网站A的api。XSS:是向网站 A 注入 JS代码,然后执行 JS 里的代码,篡改网站A的内容。

xss的32个事件触发

1.SSRF的基本概念、缩写、全称

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。 一般情况下,SSRF是要目标网站的内部系统。(因为他是从内部系统访问的,所有可以通过它攻击外网无法访问的内部系统,也就是把目标网站当中间人

2.ssrf 发生场景

只要当前服务器有发送请求的地方都可能存在ssrf

支持请求方式
gopher://
file:///
dict://
ftp://
ldap://
Ssh://
Telent://
tftp://
Php://

漏洞函数:file_get_contents()
fsockopen()
curl_exec()

ssrf 如何防御

1.禁止私有Ip访问
2.限制远程连接的域名
3.防火墙限制
4.限制请求方式
5.过滤协议使用https

ssrf 绕过

1.通过url解析绕过只解析@后面的域名 列如: http://www.baidu.com@127.0.0.1
2.通过dns解析绕过私有地址限制探测内网 列 www.127.0.0.1.xip.io
3.编码进制绕过列如
利用八进制IP地址绕过 0177.0.0.1
利用十六进制IP地址绕过 0x7f000001
利用十进制的IP地址绕过 2130706433
4.TCP数据流绕过

0254.20.13.26

<think>好的,用户问的是CSRFSSRF是不是同一个东西。首先,我需要确认这两个术语的定义区别。 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、付费专栏及课程。

余额充值