存储型XSS
长期存储于服务器端;
每次用户访问都会执行脚本代码;
1. 存储型XSS攻击图示
(1)获取被攻击者的cookie;
- 黑客首先向服务器发送js脚本;
- 服务器返回含有js脚本的页面;并将该页面存储在服务器上;
- 当被攻击方访问服务器时,服务器返回存储的js页面;
- 黑客接收到被攻击方的cookie;
(2) 重定向到第三方网站;
- 黑客首先向服务器发送js脚本;
- 服务器返回含有js脚本的页面;并将该页面存储在服务器上;
- 当被攻击方访问服务器时,服务器返回存储的js页面;
- 被攻击方进入第三方网站;
3. 存储型XSS
实验环境
(1)Windows服务器:Windows Server 2003,IP地址:192.168.37.128;
(2) 测试机:Windows7物理机(开启代理,代理服务器为burpsuite)
实验过程
安全级别:Low
(1)设置安全级别
(2)查看源码
(3)源码分析
trim(string,charlist):移除字符串两侧的空白字符或其他预定义字符,预定义字符包括、\t、\n、\x0B、\r以及空格,可选参数charlist支持添加额外需要删除的字符;
mysql_real_escape_string(string,connection):对字符串中的特殊符号(\x00,\n,\r,\,‘,“,\x1a)进行转义;
stripslashes(string):删除字符串中的反斜杠。
从源码中可以看到,对输入的name参数和message参数并没有做XSS方面的过滤与检查,并且数据存储在数据库中,所以存在明显的存储型XSS漏洞;
(4)实验操作
简单应用
4.1> 直接输入yxz;