csrf

常见的网站攻击手段及预防措施

我与影子孤独终老i 提交于 2020-03-05 21:59:18
XSS XSS攻击的全称是跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表 (Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,是WEB应用程序中最常见到的攻击手段之一。跨站脚本攻击指的是攻击者在网页中嵌入恶意脚本程序, 当用户打开该网页时,脚本程序便开始在客户端的浏览器上执行,以盗取客户端cookie、 盗取用户名密码、下载执行病毒木马程序等等。 有一种场景,用户在表单上输入一段数据后,提交给服务端进行持久化,其他页面上需要从服务端将数据取出来展示。还是使用之前那个表单nick,用户输入昵称之后,服务端会将nick保存,并在新的页面展现给用户,当普通用户正常输入hollis,页面会显示用户的 nick为hollis: <body> hollis </body> 但是,如果用户输入的不是一段正常的nick字符串,而是 <script>alert("haha")</script> , 服务端会将这段脚本保存起来,当有用户查看该页面时,页面会出现如下代码: <body> <script> alert("haha") </script> </body> XSS该如何防御 XSS之所以会发生,是因为用户输入的数据变成了代码。因此,我们需要对用户输入的数据进行HTML转义处理,将其中的“尖括号”、“单引号”、“引号”

基于复杂方案OWSAP CsrfGuard的CSRF安全解决方案(适配nginx + DWR)

…衆ロ難τιáo~ 提交于 2020-03-05 11:15:52
1、什么是CSRF? 已经有很多博文讲解其过程和攻击手段,在此就不重复了。 O(∩_∩)O 不清楚的同学,请自行搜索或按链接去了解: http://blog.csdn.net/Flaght/article/details/3873590 2、CSRFGuard_Project 开源项目 CSRFGuard,介绍了如何使用在 HTTP 请求中加入 token 并验证的方法来抵御 CSRF。 https://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project 3、检测CSRF方法? OWASP上面有一个叫做CSRFTester的工具,可以构建进行测试。 下载链接: https://www.owasp.org/index.php/CSRFTester 教程指引: http://www.zyiqibook.com/article216.html 4、如何防御CSRF? 我们采用CSRFGuard_Project方案 JAVA DOM方式。 配置如下: 1)引入csrfguard-3.1.0.jar到你的工程: 2)配置web.xml: <!-- 基于复杂方案OWASP CsrfGuard的CSRF安全过滤 --> <servlet> <servlet-name>JavaScriptServlet</servlet-name>

CSRF漏洞之——漏洞复现

核能气质少年 提交于 2020-03-04 17:22:59
介绍 CSRF(Cross Site Request Forgery, 跨站请求伪造)是一种网络的攻击方式,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF CSRF漏洞是因为web应用程序在用户进行敏感操作时,如修改账号密码、添加账号、转账等,没有校验表单token或者http请求头中的referer值,从而导致恶意攻击者利用普通用户的身份(cookie)完成攻击行为 原理 用户访问a网址,在a网址的cookie有效期内,又访问了b网址,b网站里含有对a网址进行恶意请求的代码,由于此时a网址的cookie没有过期,所以对不会对这个恶意请求进行过滤 一次CSRF攻击的过程中,受害者需要依次完成两个步骤 1.登录受信任网站A,并在本地生成Cookie 2.在A的cookie存活期内,访问危险网站B CSRF高危触发点 论坛交流、用户中心、反馈留言、交易管理、后台管理 漏洞出现在论坛交流,或者是个人用户中心和反馈留言这些常规的功能处,会造成隐私的泄露; 漏洞发生在交易管理功能的页面,此时可以进行一些类似转账或者是购买物品的操作,那么用户的资产便会存在安全隐患; 漏洞发生在后台管理的功能处,则会威胁到网站本身的安全性。 漏洞危害 CSRF漏洞会导致受害人在不知情的情况下向论坛发帖子、订阅邮件列表、网购或股票交易

How to reduce SameSite cookie attribute back to None in ASP.NET?

若如初见. 提交于 2020-03-03 08:58:06
问题 In order to avoid CSRF (Cross-site request forgery) most browsers are (since late 2019) automatically considering that any cookie which does not define SameSite attribute explicitly will be considered as Lax, instead of None which was the previous default. And more recently (Feb 2020, since Chrome 80) browsers are also ignoring cookies which define SameSite=None and are not secure. How can I change my session cookies to be automatically changed to None (to keep my SSO integrations working) in

跨站点请求伪造(CSRF)学习

假装没事ソ 提交于 2020-03-03 04:53:35
一、CSRF介绍 伪造一个站点,在站点中伪造一个向其他站点的请求,在用户访问该站点时让用户执行 假设有如下URL能删除一篇文章: 攻击者在自己的域中构造一个页面: 内容为: 使用一个img标签,其地址指向了删除博客文章的链接 在用户访问该站点的时候,用户看到了一张无法显示的图片,并且用户删除了该文章 这个删除博客文章的请求,是攻击者伪造的,所以这种攻击就被叫做“跨站点请求伪造” 二、CSRF进阶 2.1 Cookie策略 Cookie分类: 1、Session Cookie:又称为临时Cookie,在浏览器关闭之后,就消失。保存在浏览器的内存空间 2、Thrid-party Cookie:又称为本地Cookie,在服务器设置该类Cookie时,会指定一个Expire时间,代表失效时间。保存在本地 IE默认禁止在<img><iframe><script><link>等标签中发送第三方Cookie,但Firefox会,所以上一节的攻击多半发生在Firefox之上。如果IE等需要攻击成功,还需要引诱用户访问目标网页得到Session Cookie 2.2 P3P头的副作用 如果网站返回给浏览器的HTTP头中包含有P3P头,即使是IE,也将允许浏览器发送第三方Cookie, 2.3 GET?POST? 不一定只能通过<img><iframe><script>等发起get请求

跨站点请求伪造(CSRF)

◇◆丶佛笑我妖孽 提交于 2020-03-03 03:47:45
CSRF即Cross Site Request Forgery(跨站点请求伪造)。 用户在客户端(浏览器)上任何一个操作如提交表单、点击超链接、或者是页面资源的显示都是向服务器发起请求 而得以实现的,所以攻击者往往都是可以通过模拟真实用户的请求来“代替”用户完成操作的。 例如A用户删除id为18的文章的请求地址为:www.eco.com/delete?id=18 那么攻击者可以构造一个html页面,页面中有这样一段代码: *** <img src="http://www.eco.com/delete?id=18" /> *** (当然,用户会看到一张无法显示的图片) 然后引导A用户去访问攻击者的这个html页面,A用户看到了这样一张无法显示的图片,然后回到自己的博客,一看, 自己的id为18的文章不翼而飞了,这,就是跨站点请求伪造。当然了,CSRF肯定不会这么轻易就能成功的,因为大多 数web项目都会对http请求设置一个过滤器,用来验证发出请求的用户身份,使得CSRF的实施变得麻烦起来。 1.浏览器的cookie策略 我应该不止一次地说过,用户注册之后,会设置一个cookie(token)返回给客户端(浏览器),用于之后请求的身份 验证。 浏览器所持有的cookie分为两种,一种是“Session Cookie”、一种是“Third-party Cookie

跨站点请求伪造(CSRF)

可紊 提交于 2020-03-03 03:24:42
CSRF(Cross Site Request Forgery)跨站点请求伪造:攻击者诱使用户在访问 A 站点的时候点击一个掩盖了目的的链接,该链接能够在 B 站点执行某个操作,从而在用户不知情的情况下完成了一次对 B 站点的修改。 CSRF 实现 Cookie 策略 Cookie 分为 Session Cookie(临时 Cookie) 和 Third-party Cookie(本地 Cookie)。本地 Cookie 有失效时间,在失效时间内都可以使用。临时 Cookie 则在浏览器关闭后立即失效。CSRF 攻击过程中,用户浏览器将上传 Cookie 作为认证信息(无需认证的除外)。如果用户同时正在访问 B 站点,那么就有活跃的临时 Cookie 将被上传。然而,如果用户并未打开 B 站点,但存有未失效的本地 Cookie,根据流量器安全策略的不同(IE 默认禁止在<img>、<iframe>、<script>、<link>等标签中发送本地 Cookie,Firefox 默认允许发送本地 Cookie;默认会拦截本地 Cookie 的浏览器:IE 6/7/8,Safari;默认不拦截本地 Cookie 的浏览器:Firefox 2/3,Opera,Google Chrome,Android),本地 Cookie 可能被上传认证,导致攻击成功。【安全建议:及时清除浏览器数据

SpringSecurity的防Csrf攻击

六月ゝ 毕业季﹏ 提交于 2020-03-02 19:51:01
CSRF(Cross-site request forgery) 跨站请求伪造,也被称为 One Click Attack 或者 Session Riding ,通常缩写为 CSRF 或 XSRF ,是一种对网站的恶意利用。尽管听起来像跨站脚本( XSS ),但它与 XSS 非常不同, XSS 利用站点内的信任用户,而 CSRF 则通过伪装成受信任用户的请求来利用受信任的网站。与 XSS 攻击相比, CSRF 攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比 XSS 更具危险性。 CSRF 是一种依赖web浏览器的、被混淆过的代理人攻击( deputy attack )。 如何防御 使用POST请求时,确实避免了如img、script、iframe等标签自动发起GET请求的问题,但这并不能杜绝CSRF攻击的发生。一些恶意网站会通过表单的形式构造攻击请求 public final class CsrfFilter extends OncePerRequestFilter { public static final RequestMatcher DEFAULT_CSRF_MATCHER = new CsrfFilter.DefaultRequiresCsrfMatcher(); private final Log logger = LogFactory

CSRF

我只是一个虾纸丫 提交于 2020-03-02 04:06:58
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。 CSRF的成因就是网站的cookie在浏览器中不会过期,只要不关闭浏览器或者退出登录,以后访问这个网站,都会默认你已经登录状态,而在这个期间,共计者发送构造好的csrf脚本或包含csrf链接,可能会执行一些用户不想做的功能(比如添加账号),说白了就是借用别人的cookie,去发送命令。 靶场演示 来到留言板,留言抓包 右键点击 生成的文件保存下来,点击提交 留言成功。 这里我搭建了一个dede_cms的网站 这个cms有一个后台getshell的漏洞。 原文 http://localhost/dedecms/uploads/dede/sys_verifies.php?action=getfiles&refiles[0]=123&refiles[1]=\%22;eval($_GET[a]);die();//

Django基础七之Ajax

为君一笑 提交于 2020-03-01 10:41:29
一 Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)。     AJAX 不是新的编程语言,而是一种使用现有标准的新方法。     AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。(这一特点给用户的感受是在不知不觉中完成请求和响应过程) AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。       a.同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求;       b.异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。   优点:AJAX除了 异步 的特点外,还有一个就是:浏览器页面 局部刷新 ;(这一特点给用户的感受是在不知不觉中完成请求和响应过程 示例   页面输入两个整数,通过AJAX传输到后端计算出结果并返回。     html文件名称为ajax_demo1.html,内容如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http