CSRF知识总结

更多渗透技能 ,公众号:渗透师老A

一.CSRF基础知识


CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,

在第三方网站中,向被攻击网站发送跨站请求。

利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的

csrf与xss区别

XSS:跨站脚本(Cross-site scripting,通常简称为XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。

它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。

这类攻击通常包含了HTML以及客户端脚本语言(最常见如:JavaScript)

XSS更偏向于方法论,CSRF更偏向于一种形式,只要是伪造用户发起的请求,都可成为CSRF攻击。

通常来说CSRF是由XSS实现的

所以CSRF时常也被称为XSRF[用XSS的方式实现伪造请求](但实现的方式绝不止一种,还可以直接通过命令行模式(命令行敲命令来发起请求)直接伪造请求[只要通过合法验证即可])。

XSS更偏向于代码实现(即写一段拥有跨站请求功能的JavaScript脚本注入到一条帖子里,然后有用户访问了这个帖子,这就算是中了XSS攻击了)

CSRF更偏向于一个攻击结果,只要发起了冒牌请求那么就算是CSRF了

csrf漏洞原理

图片

上图中网站 A为存在CSRF漏洞的网站,网站B为攻击者构建的恶意网站,User 为网站A网站的合法用户。

CSRF攻击攻击原理及过程如下:

1.用户user打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;

2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;

3.用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;

4.网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;

5.浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。

二.CSRF分类

Get型

这种类型的CSRF一般是由于程序员安全意识不强造成的。

GET类型的CSRF利用非常简单,只需要一个HTTP请求,所以,一般会这样利用:

<img src=http://example.cn/csrf.php?xx=11 />

在访问含有这个img的页面后,浏览器会自动向http://example.cn/csrf.php?xx=11发出一次HTTP请求。

example.cn就会收到包含受害者登录信息的一次跨域请求。

所以,如果将该网址替换为存在GET型CSRF的地址,就能完成攻击了。

Post型

这种类型的CSRF危害没有GET型的大,利用起来通常使用的是一个自动提交的表单,如:

<formaction=http://example.cn/csrf.phpmethod=POST>

<inputtype="text"name="xx"value="11"/>

</form>

<script> document.forms[0].submit();</script>

访问该页面后,表单会自动提交,相当于模拟用户完成了一次POST操作。

POST类型的攻击通常比GET要求更加严格一点,但仍并不复杂。

任何个人网站、博客,被黑客上传页面的网站都有可能是发起攻击的来源,后端接口不能将安全寄托在仅允许POST上面。

链接类型

链接类型的CSRF并不常见,比起其他两种用户打开页面就中招的情况,这种需要用户点击链接才会触发。

这种类型通常是在论坛中发布的图片中嵌入恶意链接,或者以广告的形式诱导用户中招,攻击者通常会以比较夸张的词语诱骗用户点击,例如:

<ahref=" http://example.cn/csrf.php?xx=11"taget="_hacker">

      百万福利,点击就送!!

<a/>

由于之前用户登录了信任的网站A,并且保存登录状态,只要用户主动访问上面的这个PHP页面,则表示攻击成功。

三.CSRF特点以及危害

csrf特点

1、攻击一般发起在第三方网站,而不是被攻击的网站。被攻击的网站无法防止攻击发生。

2、攻击利用受害者在被攻击网站的登录凭证,冒充受害者提交操作;而不是直接窃取数据。整个过程攻击者并不能获取到受害者的登录凭证,仅仅是“冒用”。

3、跨站请求可以用各种方式:图片URL、超链接、CORS、Form提交等等。

部分请求方式可以直接嵌入在第三方论坛、文章中,难以进行追踪。

4、CSRF通常是跨域的,因为外域通常更容易被攻击者掌控。

但是如果本域下有容易被利用的功能,比如可以发图和链接的论坛和评论区,攻击可以直接在本域下进行,而且这种攻击更加危险。

csrf危害

CSRF攻击会根据场景的不同而危害迥异,比较常见的有:

发送邮件

修改账户信息

资金转账

盗取用户隐私数据

网站被上传网马

作为其他攻击方式的辅助攻击(比如xss)

传播CSRF蠕虫(见下文中的YouTube CSRF漏洞)

等等

四.CSRF实例

WordPress的CSRF漏洞

2012年3月份,WordPress发现了一个CSRF漏洞,影响了WordPress 3.3.1版本,

WordPress是众所周知的博客平台,该漏洞可以允许攻击者修改某个Post的标题,添加管理权限用户以及操作用户账户,包括但不限于删除评论、修改头像等等。

那么这个漏洞实际上就是攻击者引导用户先进入目标的WordPress,

然后点击其钓鱼站点上的某个按钮,该按钮实际上是表单提交按钮,

其会触发表单的提交工作,添加某个具有管理员权限的用户,实现的代码如下:

<html> 

<bodyonload="javascript:document.forms[0].submit()"> 

<H2>CSRF Exploit to add Administrator</H2> 

    <form method="POST" name="form0" action="http://<wordpress_ip>:80/wp-admin/user-new.php">

<inputtype="hidden"name="action"value="createuser"/> 

        <input type="hidden" name="_wpnonce_create-user" value=
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值