PortSwigger靶场之Stored XSS into HTML context with nothing encoded通关秘籍
这个靶场在一个博客的评论功能中包含一个存储型跨站脚本(Stored XSS)漏洞,要成功完成这个靶场,你需要提交一条评论。这条评论必须包含一段恶意脚本,当其他人查看这篇博客文章时,该脚本会自动执行并调用 alert
函数(即在浏览器中弹出一个警告框),首先我们先了解一下存储型跨站脚本再解决这个靶场。
一、存储型跨站脚本 (Stored XSS):
这是一种比反射型XSS更危险的漏洞。
攻击者输入的恶意脚本会被永久地存储在服务器的数据库中(例如,作为一条产品评论、一篇论坛帖子或一条用户名)。
当任何用户(包括其他访问者或管理员)访问包含这些恶意数据的页面时,服务器会从数据库中读取并显示这些数据,导致恶意脚本在他们的浏览器中执行。
攻击是持续性的,不需要像反射型XSS那样诱骗用户点击特制的链接。
二、解决靶场
题目告诉漏洞存在于评论区,我们先打开评论区
存储型跨站脚本漏洞的存在意味着当我们提交评论时,网站后端没有对我们的输入内容进行充分的过滤或编码,就直接将其保存到了数据库。
我们需要在评论框中输入一段包含JavaScript
alert()
函数的HTML脚本。一个最简单的攻击载荷(payload)就是:<script>alert('XSS');</script>
。当你提交这条评论后,这段脚本代码就会被存入数据库。
之后,每当有人加载这篇博客文章和它的评论时,你的脚本就会被执行,导致他们的浏览器弹出一个警告框。只要成功弹出警告框,就意味着你解决了这个靶场。
自此,成功通关!!!!