html中csrf漏洞代码, 看图说话:跨站伪造请求(CSRF)漏洞示例

1、CSRF(Cross-site request forgery)跨站请求伪造,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用,可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点(信任站点A)。尽管听起来像跨站脚本(XSS);

8d2f88a10a3e

2、与网站脚本(XSS)相比:

--XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

--CSRF攻击在近年逐渐流行和难以防范,所以被认为比XSS更具危险性。

3、以下实际场景实验,打开靶机,大家可以看到这是一个用户更改自身密码的页面:

8d2f88a10a3e

4、提交新密码new,在浏览器中观察Request 信息可以看到:

Cookie: security=low; PHPSESSID=jm411cn2j65ornbe8sp52gbki3 、

8d2f88a10a3e

5、利用上面发现的Request 信息,可以拼凑出带有跨站请求伪造功能的HTML代码(这里示例将密码更改为678),并保存至页面文件csrf.html:

8d2f88a10a3e

6、将csrf.html保存到CSRF_DEMO站点,发布后访问csrf.html,在浏览器中观察Request 信息可以看到,GET请求变更新密码678,直接使用了原有的Cookie(是不是开始蒙圈),Referer信息标记为新的站点下的CSRF_DEMO/csrf.html:

Cookie: security=low; PHPSESSID=jm411cn2j65ornbe8sp52gbki3、

8d2f88a10a3e

7、上面页面返回除了我们特意alt出来的信息"this is a csrf_demo:change password"外,图片打开失败(必然失败,src指向的并不是图片地址),但是实际已攻击成功,数据库中写入了新密码678的MD5摘要“9fe8593a8a330607d76796b35c64c600”:

8d2f88a10a3e

8、验证一下“9fe8593a8a330607d76796b35c64c600”是不是678的MD5:

8d2f88a10a3e

10、从上面的模拟攻击过程,我们总结以下几点方法,作为常用的CSRF防范方法:

--封闭XSS安全漏洞;

--对于重要的服务,可以尽量使用 XMLHttpRequest,在cookie 之上,建立token机制;

--验证Referer来源;

--写这个系列前,计划每一种类型的演示,不超过10步,还好没有超(这一行与安全无关,友情奉送)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值