常见WEB安全漏洞之CSRF

Posted 搜狗测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见WEB安全漏洞之CSRF相关的知识,希望对你有一定的参考价值。

专注于黑盒测试过程中的一切,包括总结现有的工作成果,发掘新的工作方法,探寻高效的测试工具等,所有与黑盒测试相关的话题都可以在这里讨论

群号:219234105,或者直接扫描上方二维码


今天说下owasp漏洞排行榜前十的成员——CSRF

概念

概念不多说,下面讲原理,CSRF(Cross-site request forgery),中文名称:跨站请求伪造;

背景知识

一、页面内请求:熟悉htnl的同学都知道,页面内请求有好多种方式,常见的例如:ajax、js的onload事件,甚至图片请求<img >,这里不一一介绍了(因为这个不是重点)


二、消费类网站的实现原理:主流的消费类网站应该都是通过请求参数(get或者post)来实现消费;

攻击原理

简单图示:
常见WEB安全漏洞之CSRF
代码举例:

论坛消费请求表单:

<form action="Transfer.php" method="GET">
      <p>收件人: <input type="text" name="name" /></p>
    <p>收件人地址: <input type="text" name="PADRESS" /></p>
    <p>收件人电话: <input type="text" name="PPHONE" /></p>
    <p><input type="submit" value="Transfer" /></p>
</form>
  • 只需要填写收件人信息,就可以提交订单,消费积分兑换奖品

恶意网页中含有这段代码:<img src=http://www.mybank.com/Transfer.php?name=张三&PADRESS=五道口&PPHONE=1333333××××>

所以,在浏览器解释html时,就会发出这条请求,服务端如果没做特殊处理的话,只会校验用户登录时种下的cookie,并完成下单,这样黑客张三就顺利的免费兑换了奖品;

上面的例子比较极端,真正的消费类网站不会这么二的使用get处理支付请求,但是即使换成post又如何呢?如果服务端不做防范的话,“张三只需要稍稍改动恶意网页的代码就能完成同样的工作”

如何防御

常见的防御csrf攻击的方式有以下几种:

  • 在cookie中增加一个包含当前时间戳的加密的token字段,服务端在接收到消费请求时,校验cookie种的token;

  • 消费请求增加图片验证码,服务端检验验证码;

  • 校验消费请求的Refer,过滤非官方域的消费请求;


web安全漏洞的种类繁多,每一种漏洞都涉及到很多前端、服务端的内容,而且有很多变种,欢迎大家留言,共同讨论学习各种安全漏洞的原理及防御方法;



PS:搜狗测试公开课第二讲预告





以上是关于常见WEB安全漏洞之CSRF的主要内容,如果未能解决你的问题,请参考以下文章

Web攻防之XSS,CSRF,SQL注入

Web攻防之XSS,CSRF,SQL注入(转)

安全测试基础之CSRF

Web攻防之XSS,CSRF,SQL注入鹏越·学霸专区

代码审计常见场景之CSRF与变量覆盖

Web系统常见安全漏洞介绍及解决方案-CSRF攻击