欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > Web漏洞之CSRF和SSRF

Web漏洞之CSRF和SSRF

2025/2/24 9:12:39 来源:https://blog.csdn.net/2301_79518550/article/details/144750779  浏览:    关键词:Web漏洞之CSRF和SSRF

Web漏洞之CSRF和SSRF

CSRF

CSRF(Cross Site Request Forgery,跨站请求伪造)是一种通过利用用户身份认证信息,诱导用户执行非预期请求的攻击方式。

一、基础知识

1. 漏洞原理

CSRF 的核心在于黑客利用用户的身份认证信息,让用户在不知情的情况下向受信任的网站发送请求。例如,黑客可能诱导用户执行银行转账操作,而银行由于接收到用户的身份认证信息,误以为这是合法请求,从而导致损失。

2. 与 XSS 的区别
  • CSRF:通过借用用户的权限完成攻击,攻击者并未直接获取用户的权限。
  • XSS:攻击者直接窃取用户的权限,实施破坏。
3. 攻击过程
  1. 用户访问受信任网站 A,并登录。
  2. 网站 A 返回 Cookie 信息,用户可以正常操作。
  3. 用户未退出网站 A 的情况下,打开另一个恶意网站 B。
  4. 网站 B 返回恶意代码,并触发对网站 A 的请求。
  5. 浏览器携带用户的 Cookie 信息,向网站 A 发送请求。网站 A 误以为请求来自合法用户,从而执行操作。
4. 实例

黑客 Mallory 创建一个带有如下代码的恶意网站:

<img src="http://bank.example/withdraw?account=bob&amount=1000000&for=Mallory" />

当受害者 Bob 登录银行后访问该恶意网站时,浏览器会自动发送该请求,附带 Bob 的 Cookie 信息。银行服务器在未识别请求来源的情况下,执行了转账操作,导致 Bob 的损失。

二、防御措施

1. 验证用户操作

在执行敏感操作(如转账)时,要求用户重新输入密码。

2. 验证 HTTP Referer 字段

通过检查 HTTP Referer 确保请求来源于受信任的页面。例如,银行网站的请求来源应为自身域名。缺点是部分浏览器可能被篡改 Referer 或用户自行关闭 Referer。

3. 请求地址中添加 Token

在请求中加入难以伪造的 Token,服务端验证 Token 的正确性。例如:

  • 对于 GET 请求:http://example.com/action?token=uniqueToken
  • 对于 POST 请求:
<input type="hidden" name="csrftoken" value="uniqueToken" />

Token 的安全性需特别注意,避免被外部恶意用户获取。

4. 设置验证码

在关键操作中要求用户完成验证码验证,防止自动化攻击。


SSRF

SSRF(Server Side Request Forgery,服务器端请求伪造)是一种通过伪造服务器请求,利用服务器访问攻击者无法直接访问资源的漏洞。

一、基础知识

1. 漏洞原理

SSRF 攻击通常利用网站提供的从远程服务器获取数据的功能,构造恶意请求,诱使服务器访问内部系统。例如:某网站允许用户输入图片链接以加载远程图片,攻击者可输入恶意链接,触发服务器访问内网。

2. 示例

某网站允许通过 URL 参数加载文章内容:

http://www.example.com/article.php?url=https://blog.example.com/article

攻击者可构造以下恶意 URL:

  • 访问本地文件:http://www.example.com/article.php?url=file:///etc/passwd
  • 访问本地服务:http://www.example.com/article.php?url=http://127.0.0.1:22
  • 使用其他协议:
    • dict://127.0.0.1:22/data:data2
    • gopher://127.0.0.1:2233/_test

通过这些 URL,攻击者可以利用服务器获取内部系统信息。

二、挖掘方法

1. 从功能上寻找
  • 分享功能:通过 URL 分享内容。
  • 转码服务:对 URL 内容进行优化处理。
  • 在线翻译:通过 URL 翻译文本。
  • 图片加载或下载:通过 URL 加载或下载图片。
  • 未公开 API:通过 URL 访问 API 功能。
2. 从 URL 关键字上寻找

关键字包括:shareurllinksrcsourcetargetimageURL 等。

三、防御措施

1. 限制请求协议

仅允许 HTTP 和 HTTPS 协议,禁止如 file://dict://gopher:// 等协议。

2. 限制访问 IP 地址

仅允许访问白名单内的外部 IP 地址,禁止访问本地或内网地址(如 127.0.0.1192.168.0.0/16)。

3. 限制访问端口

禁止访问敏感端口(如 223306 等),避免访问非必要服务。

4. 统一错误处理

设置统一的错误页面,防止信息泄露。例如,不返回具体的错误信息,而是返回通用提示。


通过了解 CSRF 和 SSRF 的原理及防御方法,可以有效地保护 Web 应用程序免受此类攻击,提高系统的安全性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词