《白帽子讲web安全》第三 四章笔记

XSS(Cross Site Script)跨站脚本攻击

  缩写CSS,但是为了和层叠样式表(CSS)有所区别,所以在安全领域叫XSS

  XSS攻击,指通过"HTML注入"篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。

  XSS分类:

    反射型XSS

    存储型XSS

    DOM based XSS

  XSS成功攻击后,攻击者能够对用户当前浏览的页面植入 恶意脚本,这些用以完成各种具体功能的恶意脚本,叫"XSS PayLoad";

  最常见的XSS Payload 就是通过读取浏览器的Cookie对象,从而发起"Cookie劫持"攻击

CSRF

跨站点伪造请求,Cross-Site Request Forgery(CSRF)

攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在未授权的情况下执行在权限保护之下的操作,具有很大的危害性。

攻击过程

  • 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A
  • 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A
  • 用户未退出网站A之前,在同一浏览器中,打开一个标签页访问网站B
  • 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A
  • 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求
  • 网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行
防御:
  验证码:CSRF攻击往往在用户不知情的情况下构造网络请求,验证码强制要求用户进行交互才能完成请求,因此能遏制CSRF攻击;但用户体验较差。
  Referer Check:在HTTP头中有一个字段叫Referer,它记录了该HTTP请求的来源地址。通过检查Referer是否合法来判断用户是否被CSRF攻击;但服务器并非什么时候都能取到Referer。
  Token:CSRF本质是所有参数都是被攻击者可以猜测的。出于这个原因把参数加密,或使用随机数,从而让攻击者无法猜测到参数值,这也是“不可预测性原则”的一个应用;但当网站同时存在XSS漏洞时,XSS可以模拟客户端读取token值,再构造合法请求,这过程又被称为XSRF。

猜你喜欢

转载自www.cnblogs.com/98Lucifer/p/9160849.html
今日推荐