Pikachu-CSRF(跨站请求伪造)

CSRF漏洞概述:

  在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击也就完成了,所以CSRF攻击也被称为"one click"攻击。

  我们判断一个网站是否存在CSRF漏洞,其实就是判断其对关键信息(比如密码等敏感信息)的操作(增删改)是否容易被伪造。

  CSRF和XSS的区别:CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限,而XSS是直接盗取到了用户的权限,然后实施破坏。

如何确认一个web系统存在CSRF漏洞:

  1. 对目标网站增删改的地方进行标记,并观察其逻辑,判断请求是否可以被伪造;

   --比如修改管理员账号,并不需要验证旧密码,导致请求容易被伪造

   --比如对于敏感信息的修改并没有使用安全的token验证,导致请求容易被伪造

   2.确认凭证的有效期(这个问题会提高CSRF被利用的概率)

     --虽然推出或者关闭了浏览器,但是cookie仍然有效,或者session并没有及时过期,导致CSRF攻击变得简单

CSRF(get)实验:

  1.根据提示,我们随机选择账号进行登录。在这里,以lucy账号为例,进行登录。登录之后,可以看到lucy的个人信息

  2.更改lucy的住址为shijiazhuang,并在这个过程中进行抓包

  3.所以只需要拿到get请求的这个链接,如果想更改lucy的地址为邢台,只需将get请求中的地址更改为xingtai。然后将这个更改后的get请求以任何方式发送给lucy。

攻击者伪造的链接:127.0.0.1://GET /pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=12345678922&add=shijiazhuang&email=lucy%40pikachu.com&submit=submit发送给lucy,lucy收到后在处于登陆状态时,访问该链接。住址发生了变化

CSRF(post)实验:

  1.登录lucy账号,并改写地址为北京并进行抓包。可以看到请求是通过post方式进行提交的,所以没有办法通过URL来伪造请求

  2.我们要做一个站点,然后在站点上做一个 表单,让被攻击目标去点击我们站点中的恶意表单的URL。通过这个恶意表单向存在CSRF漏洞的页面提交post请求(和post类型的xss方法相同)

CSRF Token:

  Token是如何防止CSRF的:

    CSRF的主要问题是敏感操作的链接容易被伪造。

  解决容易被伪造的方法:

    --每次请求,都增加一个随机码(需要够随机,不容易伪造),后台每次对这个随机码进行验证

  1.在pikachu的CSRF Token页面以lucy的账号进行登录,然后修改地址信息,并进行抓包

  2.每次刷新页面,token值都会发生变化。这样就防止了CSRF

CSRF防范措施:

  

 

posted @ 2020-04-03 22:48  mxm$  阅读(1091)  评论(0编辑  收藏  举报