pikachu靶场-存储型xss

517 阅读2分钟

概述

  • 存储型xss漏洞又称为持久型xss漏洞,该漏洞出现的原因主要是对用户输入的信息数据未进行安全过滤,从而使得用户输入的恶意脚本保存到了服务器的数据库或文件中。
  • 当用户访问网站特定网页时,由于网页需要调用其数据库中的信息并展示,从而触发了被保存的恶意脚本。只要用户访问了被攻击的网页,就会受到恶意脚本的攻击。

攻击特点

  • 持久性攻击、无需伪装:该类型漏洞将恶意的脚本攻击存储到服务器的数据库中,用户只要访问就会被攻击。
  • 危害性大:当网站被注入了存储型xss恶意代码后,访问该网站的所有用户都将存在被攻击的可能性。

攻击流程

  1. 找到网站存在存储型xss漏洞的输入框,将准备好的恶意代码通过该输入框提交到网站。
  2. 用户访问该网站中被注入恶意代码的页面时,都会发送正常的请求给服务器。
  3. 服务器接收到http请求后,获取数据库数据,包括存储的恶意代码并响应到浏览器。
  4. 浏览器解析网页中恶意的xss代码,一般用来窃取个人信息。例如ip地址、cookie、个人信息等。

防御方法

存储型xss漏洞只能预防或尽量避免

  1. 对用户提交的数据进行严格的输入验证,例如限制输入长度、格式等。
  2. 过滤用户输入的特殊字符。如<><script>等。
  3. 设置HttpOnly属性,避免攻击者利用跨站脚本漏洞进行Cookie劫持攻击。

靶场实验

打开pikachu靶场,存储型css部分。这里的功能是一个留言板

image.png
尝试在输入框中输入简单的js测试代码:<script>alert(111)</script>,出现弹框即说明存在xss漏洞。尝试刷新页面,如果还出现弹框,说明存在存储型xss漏洞。