存储型XSS漏洞与利用
【实训目的】
1.掌握手工检测存储型XSS漏洞的方法;
2.掌握存储型XSS漏洞与反射型XSS漏洞的区别;
【实训步骤】
步骤1、登录DVWA系统。
在DVWASecurity当中选择low选项,并提交。然后选择XSSstored。如下
图所示:在Name、Message提示框中输入信息之后,将保存在数据库,并在红
色框标注区中显示出来,每次输入的信息都会显示出来,类似于留言板。
图4-7DVWA存储型跨站脚本漏洞界面
步骤2、检测XSS漏洞。
在name提示框中输入:
xsscriptalert(/xss/)/script,但提示框中仅显示“xsscri”,说明name
可能做了10个字符的长度限制;再将其输入到message提示框,然后点击Sign
Guestbook按钮,则出现警告提示框,如下图所示:
图4-8DVWA存储型跨站脚本漏洞利用结果
说明存在跨站漏洞,message显示为xs,也说明其后的
scriptalert(/xss/)/script被浏览器当作Javascript代码执行。点击确定之后,警
告提示框消失。
步骤3、察看源代码。
点击ctrl+u可打开源代码所在页面。查看源代码,会看到divName:test2
br/Message:xsscriptalert(/xss/)/scriptbr//div,进一步验证了存在
XSS漏洞。
步骤4、获取cookie。在message提示框中输入:
xsscriptalert(document.cookie)/script,点击SignGuestbook按钮,则出
现警告提示框,,其中显示了security和PHPSESSID两个cookie的值。
图4-9利用存储型跨站脚本漏洞读取cookie结果
步骤5、查看存储型跨站脚本的时效。
切换到其它页面之后,再切换回来,又依次弹出两个警告提示框,说明
scriptalert(/xss/)/script、scriptalert(document.cookie)/script已被存入数据
库,在浏览该网页,又被读取出来执行。从分析可以看出:存储型跨站攻击会影
响浏览该网页的所有用户,而反射型跨站仅影响到执行跨站的该用户,因此存储
型跨站漏洞造成的危害要比反射型跨站漏洞大。
【实训总结】
通过实训可以看到:
1.存储型XSS漏洞形成的原因与反射型XSS漏洞形成的原因一致,都是在
于应用程序没有对所输出的内容进行过滤,而所输出的内容又是用户输入的,从
而导致HTML中可被注入JavaScript脚本。
2.存储型跨站漏洞造成的危害要比反射型跨站漏洞大,针对其攻击会影响
到浏览该网页的所有用户。