首页 > 其他分享 >08CSRFSSRF:为什么避免了XSS,还是“被发送”了一条微博?

08CSRFSSRF:为什么避免了XSS,还是“被发送”了一条微博?

时间:2023-09-11 23:46:26浏览次数:46  
标签:XSS 请求 用户 攻击者 微博 黑客 08CSRFSSRF CSRF 服务端

CSRF攻击时如何产生的?

当用户在网站上进行登录认证后,网站会为其生成一个会话(session),并为该会话分配一个唯一的标识符(session ID)。这个标识符通常存储在用户的浏览器的cookie中。

当用户点击一个链接或提交一个表单时,浏览器会自动包含当前网站的cookie信息,包括会话标识符。这样,用户发起的请求就会携带有效的身份认证信息,网站会根据该信息判断请求的合法性,并执行相应的操作。

在CSRF攻击中,攻击者通过诱使用户点击恶意链接或提交恶意表单,利用了浏览器自动发送cookie的特性。由于网站无法区分是用户自己发起的请求还是攻击者伪造的请求,所以会错误地认为这是用户的合法操作。

以银行转账为例子,来详细讲解一下这个攻击过程。

黑客可以构造一个如下的空白网页。我们假设这个网页的地址为 hacker.com。

图解:

通过CSRF攻击,黑客能做什么?

和 XSS 一样,CSRF 也可以仿冒用户去进行一些功能操作的请求,比如修改密码、转账等等,相当于绕过身份认证,进行未授权的操作。

如何进行CSRF防护

  1. 使用CSRF令牌(token):在每个表单或请求中包含一个随机生成的令牌,确保请求是合法的。服务器在验证请求时会检查令牌的有效性。
  2. 启用同源策略:确保网站只接受来自同一域名下的请求,限制跨域请求的执行。
  3. 使用验证码:要求用户在执行敏感操作之前输入验证码,增加额外的身份验证层级。
  4. 设置短期有效的会话:确保用户在一段时间后需要重新进行身份认证,减少攻击者利用已认证会话发起攻击的机会。
  5. 避免使用GET请求执行敏感操作:GET请求容易被攻击者伪造,因此应该使用POST等更安全的请求方法。

SSRF(Server-Side Request Forgery服务端请求伪造

在 CSRF 中,黑客通过诱导用户访问某个网站,让用户的浏览器发起一个伪造的请求。那么,如果服务端发起了这个伪造的请求,又会发生什么呢?

我们知道,服务端也有代理请求的功能:用户在浏览器中输入一个 URL(比如某个图片资源),然后服务端会向这个 URL 发起请求,通过访问其他的服务端资源来完成正常的页面展示。

这个时候,只要黑客在输入中提交一个内网 URL,就能让服务端发起一个黑客定义的内网请求,从而获取到内网数据。这就是 SSRF(Server Side Request Forgery,服务端请求伪造)的原理。而服务端作为内网设备,通常具备很高的权限,所以,这个伪造的请求往往因为能绕过大部分的认证和授权机制,而产生很严重的后果。

通过ssrf攻击,黑客能做什么?

要会有这样两种动作:内网探测和文件读取。

1、内网探测:攻击者可以通过SSRF攻击访问内部网络的敏感数据,如数据库、配置文件等。

例如黑客可以构造一个恶意的请求地址:https://image.baidu.com/search/detail?objurl=127.0.0.1:3306。如果服务器返回“格式错误”,则代表服务端本地的 3306 端口可用;如果返回“找不到图片”,则代表不可用。我们知道,3306 是 MySQL 对应的端口号,因此,根据这个返回的信息,黑客就能够知道服务端本地是否开启了一个 MySQL 服务。接下来,黑客只需要不断重复这个过程,尝试不同的 IP 和端口号,就能够一点一点探测出整个内网的结构。

2、文件读取

在 URI 中,开头的 http:// 和 https:// 代表需要使用什么协议去进行请求。除了 HTTP 之外,URI 还有很多种协议可以选择,比如 file:// 就是直接读取本地的文件。通过输入 file:///etc/passwd,黑客就能够通过一个请求获取到本地的 passwd 文件,从而知道本地有哪些用户。经过不断地尝试,黑客就能够把整个服务器中的文件内容都给拉取出来,这其中包括密钥、源码等极度敏感的信息。

如何进行ssrf防护

为了防护SSRF攻击,可以采取以下措施:

  1. 输入验证和白名单:对用户输入的URL进行验证和过滤,确保只允许访问可信任的外部资源,并限制访问内部网络。
  2. 使用合适的权限:确保服务器和应用程序的权限设置合理,限制对内部资源的访问权限。
  3. 防火墙和网络隔离:使用防火墙和网络隔离措施,限制服务器对外部网络的访问,并阻止内部网络暴露给公共网络。
  4. 限制重定向和代理:限制服务器的重定向和代理功能,避免将恶意请求转发到内部网络。
  5. 更新和修补漏洞:及时更新和修补服务器和应用程序中的漏洞,以减少攻击者利用的机会。

 

 

 

标签:XSS,请求,用户,攻击者,微博,黑客,08CSRFSSRF,CSRF,服务端
From: https://www.cnblogs.com/Adam-Ye/p/17694882.html

相关文章

  • Django_debug page_XSS漏洞(CVE-2017-12794)漏洞复现
    目录1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞分析3、漏洞验证说明内容漏洞编号CVE-2017-12794漏洞名称Django_debugpage_XSS漏洞漏洞评级影响范围1.11.5版本漏洞描述修复方案1.1、漏洞描述1.11.5版本,修复了......
  • 06当你“被发送”了一条微博时,到底发生了什么?
    背景2011年微博真实出现的一次安全事件。整个事件的核心问题,其实出在这个可以点击的链接上。在这个事件中,黑客并不需要入侵到微博服务器中,只要用户点击了这个链接,就会“被发送”这样的博文。Xss攻击是如何产生的?本质:通过给定异常的输入,黑客可以在你的浏览器中,插入一段恶意的J......
  • 《Web安全基础》05. XSS · CSRF · SSRF · RCE
    @目录1:XSS1.1:简介1.2:防护与绕过1.2.1:HttpOnly1.2.2:WAF绕过1.3:相关资源2:CSRF3:SSRF4:RCE本系列侧重方法论,各工具只是实现目标的载体。命令与工具只做简单介绍,其使用另见《安全工具录》。靶场参考:XSS-Labs,pikachu,DVWS。1:XSS1.1:简介XSS(Cross-SiteScripting),跨站脚本攻击。......
  • 用友NC v6.5 反射型xss
    漏洞描述用友NC6.5版本存在反射型xss漏洞复现fofa语法:app="用友-UFIDA-NC"访问页面:POC:/uapws/pages/error.jsp?msg=<script>alert(1)</script>......
  • Drupal XSS漏洞(CVE-2019-6341)
    目录漏洞复现复现环境:Vulhub环境启动后,访问http://192.168.80.141:8080/将会看到drupal的安装页面,一路默认配置下一步安装。因为没有mysql环境,所以安装的时候可以选择sqlite数据库漏洞复现该漏洞需要利用drupal文件模块上传文件的漏洞,伪造一个图片文件,上传,文件的内容实际......
  • dvwa xss通关
    反射型XSS通关low难度选择难度:直接用下面JS代码尝试:<script>alert(/xss/)</script>通关成功:medium难度直接下面代码尝试后失败<script>alert(/xss/)</script>发现这段代码直接被输出:尝试修改<script>标签的字母大小写,做大小写绕过:<scRipt>alert(/xss/)</scRipt>通关成功:high难度查......
  • xsschallenge通关(11-15)
    level11老规矩,先查看源码,做代码审计:<?phpini_set("display_errors",0);$str=$_GET["keyword"];$str00=$_GET["t_sort"];$str11=$_SERVER['HTTP_REFERER'];$str22=str_replace(">","",$str11);$str33=st......
  • xsschallenge通关(1-10)
    level1这一关很简单,标准的xss注入,打开hackbar,输入<script>alert(/xss/)</script>点击EXECUTE,通关!level2这一关有一个搜索框,输入<script>alert(/xss/)</script>发现直接将这段JS代码当做HTML实体,即普通字符查看源代码,发现有htmlspecialchars()函数,会转换双引号、单引号和尖角号成H......
  • 利用svg标签绕过xss校验
    SVG中的<use>元素用于重用其他元素,主要用于联接<defs>和alike,而我们却用它来引用外部SVG文件中的元素元素通过其id被引用,在<use>标签的xlink:href属性中以'#'井字符开头,外部元素的引用同样如此基本结构如下所示: test.html<svg><usexlink:href='external.svg#rectangle'/></......
  • iwebsec-xss 01 反射型xss
    01、题目分析反射型跨站脚本攻击本质上是构造恶意连接的形式,诱导用户打开,由于链接内所携带的参数会回显于页面中或作为页面的处理数据源,最终造成XSS攻击。02、xss这一题已经提示是反射型xss了,而且还有提示,可以注入的参数为name,所以直接在参数值中输入js代码即可?name=<script......