1 CSRF介绍
1.1 定义:
跨站请求伪造,冒充用户在站内的正常操作。
条件:
1.登录受信任网站A,并在本地生成Cookie。
2.在不登出A的情况下,访问危险网站B。
1.2 成因:
1、cookie有时效性
2、Js可发送数据包
CSRF漏洞的成因就是网站的cookie在浏览器中不会过期,只要不关闭浏览器或者退出登录,那以后只要是访问这个网站,都会默认你已经登录的状态。
Js很强大=>异步传输(ajax) =>Js可以操作浏览器,并且可以在不刷新页面情况下发送数据包
信任:访问某个站点就代表信任那个站点上面的一切Js
网站访问的核心:数据包的交互。
1.3 区别于XSS:
1、XSS是盗取Cookie
2、CSRF不能盗取Cookie(同源法则),只是利用Cookie时效性,借助游览器信任机制,从A站点向已登录的B站点发送恶意Js,B网站执行恶意Js,遭受攻击。
2 CSRF攻击
1)判断
看是否存在Token = **:
Token-由 Web 应用程序添加到数据包中,Cookie-由浏览器添加到数据包,之所以会存在 CSRF 是因为浏览器会自动的将本地的 Cookie 添加到数据包,但是Token 浏览器是不知道,所以存在Token就会阻止CSRF。
2)burpsuit抓包构造
抓取数据包,看到改变密码的URL链接,
直接修改该链接是可以改密码的,比如:
http://192.168.159.140:89/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change# 直接访问该URL就可修改密码为123456。
我们介绍更普遍的方法,使用burpsuit自带的工具进行测试:
1)点击“生成CSRF测试POC”选项卡
2)修改参数
3)点击“生成”,并复制URL
4)网页中访问该URL
5)我们点击submit后收到新的修改密码的POST数据包,证明测试成功
安全学习交流群:687398569