DVWA篇之XSS存储型

Low级别

创新互联建站,为您提供成都网站建设公司成都网站制作、网站营销推广、网站开发设计,对服务湿喷机等多个行业拥有丰富的网站建设及推广经验。创新互联建站网站建设公司成立于2013年,提供专业网站制作报价服务,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏心悦目的作品。 与客户共同发展进步,是我们永远的责任!

  • 当我们在表格中输入名字和内容就会存储到数据库,并在页面显示出来
    DVWA篇之XSS存储型
  • 同样的我们输入一个名字,然后在内容中输入我们的payload语句,分析是否能***成功。

DVWA篇之XSS存储型
***成功。这时我们的语句被存储在数据库中。

  • 我们查看一下是否真的被存储在数据库中
    DVWA篇之XSS存储型
    可以看到在第三行的记录就是我们的payload语句,没有被任何过滤,完完整整的存储在数据库中。
    因为是存储性的,当我们再次访问的时候肯定会直接出现弹框,这个可以刷新测试。

  • 接下来分析一下造成这个结果的原因,我们查看源代码。
    DVWA篇之XSS存储型
    trim()函数,用于去除字符串左右两侧的空格
    stripslashes()函数,用于去除字符串中的反斜杠
    MySQLi_real_escape_string()对sql语句中的特殊字符进行转义。
    从源码上看,此处,只是对输入的name,message做了防止sql注入的过滤,并没有对输入的字符串进行安全性过滤和处理。
    当字符串写入数据库的时候,如果存在特殊字符,也会被转义,但是在当我们从数据库中调出的时候,并不影响特殊字符的功能。

Medium级别

  • 在这个级别下我们还是用同样的方式测试一下结果。
    DVWA篇之XSS存储型
    出现了弹框,但是弹出的是1,因为在数据库中我没有将low下存储的payload删除。但是可以看出,我们输入的内容变成了alert(2),