Web安全学习day02

CSRF

1.什么是CSRF?

Cross-Site Request Forgery

跨站请求伪造

CSRF概念:

CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解: 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。 如下:其中Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户。

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

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

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

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

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

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

2.CSRF发生的原理?

CSRF实现流程

用户访问网站时,向服务器发出请求,服务器给予应答返回cookie,用户在此时点击攻击的链接时,对应的服务器发送回包含恶意请求的网页,从而利用本客户端的cookie来实现入侵。

CSRF典型案例

Gmail CSRF漏洞

Weibo CSRF漏洞

CSRF漏洞危害

修改账户信息

利用管理员账号,上传木马文件

传播蠕虫病毒(点击、扩散、点击、······)

和其他攻击手段配合,实现攻击,比如XSS

CSRF与XSS的区别

XSS 可以执行脚本窃取cookie,将脚本代码注入到服务器当中

CSRF是利用用户已经在本地保存的cookie,直接利用第三方网站使用本地的cookie发送请求

3.怎么发现CSRF漏洞?

CSRF常见形式

(1)通过图片的img src属性,自动加载发起GET请求

img src="http://...... " width="0" height=" ">

(2)构建一个超链接,用户点击以后,发起GET请求

<a href="http://........">小姐姐在线聊天!!!<a/>

(3)构建一个自动提交的表单(隐藏),用户访问,发起POST请求

< form action="http://...." method=POST>

<input type="" name="" value="">

<input type="" name="" value="">

<input type="" name="" value="">

</form>

​​

4.CSRF漏洞的防止?

CSRF的防御

1.怎么确定一个接口地址有没有CSRF漏洞呢?

2.具体怎么操作?

3.有没有工具可以使用?

如果自己没有输入账号密码、没有产生cookie的情况下,发起对某个接口的请求,目标网站正常响应了,那么可以认为这个接口存在CSRF漏洞。

防御思路

a、我们能不能区分一个请求是来自于自己的前端页面,还是第三方的网站?

b、怎么让自己的前端页面和伪造的请求变得不一样?

HTTP Request Header

Referer:引用页;来源页面

客户端可以凭借此referer向服务器证明是本人使用,而第三方网站向服务器请求时却无法产生,达到防护目的。

攻击者可以在请求中加入客户端已存在的referer来绕过服务器的检测,从而达到入侵目的;

Cookie Hashing

1.客户端对cookie计算哈希,一起发送给服务端;

2.服务端接收到cookie,计算哈希值,与收到的哈希值进行比较。

3.如果匹配,说明是用户端自己访问的请求

CSRF Token

1.用户使用用户名密码登录,服务端下发一个随机的token字段,并且服务端把这个字段保存在服务端session当中。

2.客户端把这个token保存起来,放到隐藏字段;

3.用户在登陆状态下,在之后访问的时候,都要携带这个token字段。

4.服务端从session中拿出token值进行对比,,如果一致,说明请求合法。

5.用户退出,session销毁,token失效

个人用户建议

1.不要访问不安全的网站;

2.不要随意点开别人发给你的链接;


今日作业

CSRF的预防措施有哪些?

CSRF预防措施

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨落心中一点寒~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值