CSRF&SSRF的简介与危害
CSRF(Cross-Site Request Forgery)和SSRF(Server-Side Request Forgery)都是网络安全领域中常见的攻击类型。
-
CSRF(跨站请求伪造):
- 简介:CSRF攻击利用用户在已登录的情况下,通过伪装成用户的请求来执行未经授权的操作。攻击者可以通过伪造包含恶意请求的链接或者图片等方式,诱使用户在不知情的情况下触发这些请求。
- 危害:CSRF攻击可以导致用户在不知情的情况下执行恶意操作,比如修改账户信息、发起转账等。由于攻击者无法直接获取受害者的敏感信息,但可以执行一些非常危险的操作,所以这种攻击也被称为“受害者的身份攻击”。
-
SSRF(服务器端请求伪造):
- 简介:SSRF攻击是指攻击者能够通过欺骗应用程序服务器发起请求,使服务器执行请求并将结果返回给攻击者。攻击者通常通过控制输入参数来伪装服务器发起请求的目标,从而使服务器执行不可信任的操作。
- 危害:SSRF攻击可以导致服务器执行各种危险操作,包括访问内部系统、绕过防火墙访问内部资源、执行端口扫描等。攻击者甚至可以通过SSRF攻击在内部网络中执行命令、读取敏感文件等,这可能导致数据泄露、服务拒绝或者整个系统被入侵。
防范:为了防止这些攻击,开发者需要采取一系列安全措施,比如在应用程序中实施CSRF令牌、严格限制服务器端请求的目标等。
1.搭建pikachu靶场
GitHub - zhuifengshaonianhanlu/pikachu: 一个好玩的Web安全-漏洞测试平台
修改参数
2.搭建恶意网站
先F12,然后修改个人信息,修改成功点击第一个返回请求。
复制这个网址。
在虚拟机中放入phpsudy的www目录中,创建一个名为ssrf.htnl的文件,写入并保存恶意网站。(没有phpstudy的私信)
然后查看靶场的ip。
然后去宿主机浏览器访问该网站,但是我们要干一件坏事,把恶意网站的源代码改一下。
成功了,刷新一下pikachu的页面。
成功了修改了他的信息,我们可以把自己的电脑当成目标,虚拟机是攻击者,我们用自己搭建的网站,诱骗目标,可以对url伪装一下。
3.通过生成工具页面
bp生成
把生成的页面改成csrf1.html
继续改下参数。
点一下这个摁键。
刷新一下。
修改成功,同样的道理,要诱骗目标去点击摁键,可以把摁键做的不一样点,比如那些...你懂得。
1.CSRF
攻击前提
1.有这个漏洞
2.用户已经登录
3.对协议包很了解
4.浏览器支持
5.用户点击
实战复现
案例2,zblog
原因分析
4.SSRF的危害与简介
SSRF(Server-Side Request Forgery,服务端请求伪造)是一种安全漏洞,允许攻击者发送伪造的请求,使目标服务器在其内部网络或本地系统上执行操作,而无需直接与攻击者进行通信。这种漏洞通常发生在应用程序未正确验证用户提供的输入并将其用作远程资源的请求目标时。
SSRF 的危害包括:
-
内部网络访问: 攻击者可以利用 SSRF 漏洞访问目标服务器内部网络上的资源,包括敏感数据、配置信息等。这可能导致信息泄露或其他更严重的攻击。
-
攻击本地系统: 攻击者可以利用 SSRF 攻击访问目标服务器上本地系统的资源,包括文件系统、数据库等。这可能导致数据泄露、数据篡改或系统崩溃等问题。
-
攻击其他服务器: 攻击者可以利用 SSRF 漏洞发送伪造的请求,以访问其他受信任的服务器或服务。这可能导致对这些服务进行滥用或攻击,从而对整个网络基础设施造成危害。
-
攻击云环境: 在云环境中,SSRF 可能导致攻击者绕过防火墙或其他安全控制,访问受限资源,甚至可能获取敏感凭据或操作关键基础设施。
要缓解 SSRF 漏洞的危害,应该实施严格的输入验证和过滤,限制应用程序可以访问的资源,以及使用白名单机制限制可以访问的目标。此外,还应该更新和维护服务器软件以修复已知的漏洞,并定期进行安全审计和漏洞扫描。
新建 ssr f.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html ; char set=utf-8" />
<title>SSRF</title>
</head>
<body>
远程图片加载器
<form action="" method="POST">
请输入图片地址:<input type='text' name='url'>
<input type='submit' value="提交">
</form>
</body>
<?php
$_POST['url'] ;
$ch = curl_in it() ;
curl_setopt($ch, CURLOPT_URL, $_POST['url']) ;
curl_setopt($ch, CURLOPT_HEADER, false) ;
curl_exec($ch) ;
curl_close($ch) ;
?>
案例 1: 内网探测 http
案例 2:读取本地文件 file
案例 3:探测 ftp
总结危害
1.端口扫描
2.内网 Web 应用指纹识别
3.攻击内网 Web 应用
4.读取本地文件
HFS漏洞
HFS 是 HTTP File Server,一款 HTTP 文件服务器软件
以上是ssrf的大概的总结,都比较接近实战。
SSRF的成因与防御
SSRF(Server-Side Request Forgery,服务端请求伪造)的成因通常涉及应用程序未正确验证用户输入并将其用作远程资源的请求目标。这可能导致攻击者利用各种技术发送伪造的请求,以访问目标服务器上的资源,甚至攻击内部网络或本地系统。以下是一些常见的 SSRF 成因和防御方法:
成因:
-
缺乏输入验证和过滤: 应用程序未对用户提供的输入进行充分验证和过滤,使得攻击者可以通过发送特殊构造的请求来利用漏洞。
-
信任任意用户提供的 URL: 如果应用程序信任用户提供的 URL,并将其用作远程资源的请求目标,而不经过充分的验证和授权,则可能存在 SSRF 漏洞。
-
不安全的网络配置: 在某些情况下,服务器配置可能会使得应用程序能够访问本地系统资源或其他受信任的网络服务,从而导致 SSRF 漏洞的出现。
防御方法:
-
严格的输入验证和过滤: 应用程序应该对所有用户提供的输入数据进行严格的验证和过滤,确保只允许有效的 URL 或特定格式的输入。
-
使用白名单机制: 应用程序应该使用白名单机制,限制可以访问的远程资源或目标,而不是简单地信任用户提供的任意 URL。
-
限制访问权限: 应该根据应用程序的需要,限制服务器可以访问的资源范围,避免过度的权限赋予。
-
网络隔离: 在可能的情况下,应该将应用程序和其依赖的服务放置在独立的网络段中,并限制对内部系统的访问。
-
更新和维护: 确保服务器软件和相关组件处于最新状态,以修复已知的漏洞,并定期进行安全审计和漏洞扫描。
通过采取这些防御措施,可以有效减轻 SSRF 漏洞带来的安全风险,提高应用程序的安全性和可靠性。
本文章仅作为技术分享,请勿使用此技术用于违法犯罪,后果自负!!!