首页 > 其他分享 >web基础漏洞-csrf

web基础漏洞-csrf

时间:2023-10-21 19:33:46浏览次数:41  
标签:web 请求 登录 网站 漏洞 token csrf 攻击者

1、定义

csrf,cross script request forgery跨站请求伪造,是受害者用户在登录目标网站A后,攻击者基于社工手段使其在同主机同浏览器环境下,访问攻击者控制的网站B,网站B的页面伪造请求通过该浏览器提交到网站A,同时携带对网站A保存在浏览器中的cookie登录凭证,使得网站A的服务端接收后认为是用户自身发送,且是登录后经过身份验证,从而造成危害。

(1)登录

csrf发生在用户登录后,且必须是cookie登录凭证,不能在url或请求中包含token,也不能在包含其他请求头部内存在类似token的数据。

(2)危害

可以模拟用户操作,从而进行账号操作,但是一般是增改删业务,而不涉及查询。

2、分类

按照请求类型,可以分为get型和post型。

按照攻击方式,可以分为html csrf攻击,json hijacking和flash攻击。

2.1 html csrf

<link href="">
<img src="">
<img lowsrc="">
<img dynsrc="">
<meta http-equiv="refresh" content="0;url=">
<iframe src="">
<frame src="">
<script src="">
<bgsound src="">
<embed src="">
<video src="">
<audio src="">
<a href="">
<table background="">
...

<!-- css样式中-->
@import ""
background:url("")
...

还可以通过js动态生成的标签对象或css对象发起的get请,而发出post请求只能通过form提交方式。

2.2 json hijacking

json劫持 - 挖洞404 - 博客园 (cnblogs.com)

2.3 flash csrf

flash同样遵循同源策略,发起的csrf是基于actionscript脚本,可以

  • 跨域获取隐私数据
  • 跨域提交数据操作

3、利用过程

攻击者发现目标网站某处存在csrf漏洞,直接创建或者控制网站B,创建页面使访问者执行csrf的脚本

在受害者登录目标网站A后,通过邮件、短信等方式使其访问网站B的创建页面

4、测试步骤

(1)登录

(2)检查请求是否存在token,以及非常规的请求字段

(3)ajax一般不作为csrf测试,ajax的跨域并不携带cookie

(4)检查referer和origin是否在服务端被检查

5、防护

(1)设置token机制,或者非常规的请求字段

(2)ajax交互

(3)严格检查referer和origin字段,一般习惯拆分各部分

 

标签:web,请求,登录,网站,漏洞,token,csrf,攻击者
From: https://www.cnblogs.com/wd404/p/17322472.html

相关文章

  • web基础漏洞-url重定向漏洞
    1、介绍url重定向漏洞,是指攻击者可以控制用户的浏览器中的url形式参数,并被解析执行,造成危害。2、场景2.1跳转使用户信任新跳转的站点,进行钓鱼3xxlocation字段js跳转form跳转超链接a2.2引入资源利用:钓鱼,引入脚本,向外部请求提供refererscriptstylelinkiframeim......
  • JavaWeb-初识Spring
    目录Spring简介Spring项目Bean管理基于xml的Bean管理创建对象属性注入基于xml+注解的Bean管理创建对象属性注入基于纯注解的Bean管理内容Spring简介Spring是什么Spring是于2003年兴起的一个轻量级的Java的开放源代码的设计层面框架......
  • javaweb
    web.xml配置文件<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java......
  • 一文1000字彻底搞懂Web测试与App测试的区别
    总结分享一些项目需要结合Web测试和App测试的工作经验给大家:从功能测试区分,Web测试与App测试在测试用例设计和测试流程上没什么区别。而两者的主要区别体现在如下几个方面:1系统结构方面Web项目,B/S架构,基于浏览器的;Web测试过程中,客户端会随服务器端同步更新,所以只需更新服务器......
  • 泛微E-Office init.php SQL注入漏洞
    漏洞简介泛微E-Office协同办公平台/E-mobile/App/Init.php接口存在SQL注入漏洞,攻击者可利用该漏洞执行任意SQL语句,进行增、删、改、查等数据库操作,造成数据库敏感数据信息泄露或被篡改;漏洞复现fofa语法:app="泛微-EOffice"登录页面如下:POC:POST/E-mobile/App/Init.php?m=......
  • 缺少几个'?'引起的WebSQL失效
    原来的数据库只有两列:english,chinese,       db.transaction(function (tx) {                tx.executeSql(                    'INSERT INTO USERS (english,chinese) VALUES (?,?)',              ......
  • java基础漏洞学习----基础命令执行漏洞
    java基础漏洞学习----基础命令执行漏洞基础命令执行常见方法1.ProcessBuilderpackagecom.example.servletdemo;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjavax.servlet.ServletException;importjavax.servl......
  • javaweb-会话跟踪技术
    首先了解什么是会话?会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束,在一次会话中可以包含多次请求和响应 上述图例就是会话。会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自同一浏览器,以便在同一次会话的多次请求中共享数据 ......
  • Web3.0-DApp开发热门技术项目实战课程+智能合约编写+交易所的实战项目
    web1.0~3.0,很多年前,互联网没有那么发达,刚出来的时候,仅仅只能在网上浏览观看信息,这就是1.0,后来出现了很多的软件,人们不仅可以浏览还可以发表自己的看法,手机app百花齐放,每个应用都有自己的数据库,存储数据,这就是2.0,现如今出现了3.0,去中心化的思想摆脱了数据库,即可实现不用数据库也......
  • java基础漏洞学习----文件操作漏洞
    java基础漏洞学习----文件操作漏洞前置基础知识https://www.cnblogs.com/thebeastofwar/p/17760812.html文件上传漏洞文件上传的方式1.通过文件流index.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOC......