CSRF学习

1、什么是CSRF

CSRF(Cross-site request forgery),中文名称:跨站请求伪造,缩写为:CSRF/XSRF

2、CSRF攻击原理

1、用户访问网站

2、服务器返回cookie

3、攻击者发送包含恶意请求的网页

4、用户点击链接

5、攻击者利用cookie,请求服务器

3、攻击条件

登录受信任网站A,并在本地生成Cookie;在不登出A的情况下,访问危险网站B

4、payload常见种类:

1、GET型:

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

2、POST型:

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

3、超链接型:

构建一个超链接,用户点击后,

5、实训

1、DVWA-low

构造链接法

查看源码,检测两次输入的密码是否一致,查看数据库连接的全局变量和其是否为一个对象。如果是的话,用mysqli_real_escape_string()函数去转义一些字符,如果不是的话输出错误。看出没有防范CSRF的代码。

在测试页面中,登录成功后,得到URL地址,可以使用构造链接的方式修改用户名及密码。发现未GET传参,且页面没有限制CSRF的措施,可以直接在URL中修改。(CSRF攻击就是盗用用户cookie,在没有退出这个页面的时候上次请求的cookie是有效的,可以达到直接修改)

尝试输入不一样的得到了修改密码的连接,现在可以直接修改。

在URL地址中输入一样的数据,页面回显password chaged,在测试页面输入新密码,登陆成功则证明CSRF攻击成功。

构造页面法

构造原理,bp把自己作为恶意服务器,当用户通过已访问过可信任网站的浏览器访问bp恶意服务器时,bp返回给浏览器的代码中含有要求访问可信任网站的代码,当用户点击时,就会对可信任网站造成攻击

利用engagement tools生成CDRF PoC,复制代码地址并打开新页面

点击submit request跳转到更改密码的界面,说明攻击成功(在此过程中,不能关闭首次打开的信任网页,也不能关闭代理,知道点击是才关闭)

2、DVWA-high

添加了Anti-csrf token模块,该模块用于发送随机token,也就于在用户修改密码的时候需要实时验证,如果要成功进行csrf攻击就要绕过token。https://www.cnblogs.com/s1awwhy/p/13974205.html参考文章得知可以使用burpsuit的CSRF Token Tracker插件可以直接绕过user_token验证

安装CSRF Token Tracker插件后直接抓包后repeat

6、防御方式

1、token验证

csrf攻击是因为借用用户cookie,而cookie在一定条件下是不改变的,攻击者可以利用cookie来执行操作,加入token验证后,更具有随机性,攻击者无法获得,就可以减少csrf攻击

2、校验HTTP Referer字段

在HTTP协议中,HTTP_REFERER定义了访问来源,站点可以在后端校验Referer是否来自于正常的站内跳转,referer就是攻击者

  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值