xss-存储型
将用户输入的数据存储在服务器端。用户访问了带有xss得页面代码后,产生安全问题。
low级别
随便输入发现输入信息被输出到前端
老规矩来个发现一样存在xss
stripslashes(string) 函数删除字符串中的反斜杠。
mysql_real_escape_string(string,connection) 函数会对字符串中的特殊符号(\x00,\n,\r,\,‘,“,\x1a)进行转义。
trim(string,charlist) 函数移除字符串两侧的空白字符或其他预定义字符,预定义字符包括、\t、\n、\x0B、\r以及空格, 可选参数charlist支持添加额外需要删除的字符
分析源码发现没做啥针对script有用限制就直接将插入数据库,导致每次用户访问这个页面都会触发xss弹窗
medium级别
strip_tags() 函数剥去字符串中的HTML、XML以及PHP的标签,(未过滤使用标签)。
addslashes() 函数返回在预定义字符(单引号、双引号、反斜杠、NULL)之前添加反斜杠的字符串。
可以看到,由于对message参数使用了htmlspecialchars函数进行编码,因此无法再通过message参数
注入XSS代码,但是对于name参数,只是简单过滤了
我们可以用双写绕过,发现name参数只能输入10个字符,不过可以直接修改100
然后<sc
high级别
分析发现源码对script的每个字母做了过滤,直接用img就好
漏洞原理:对用户提交的数据没有做限制,对后端数据处理时没有严格的过滤转义就存进数据库
方法:script标签,img标签,大小写,双写绕过
防御,对数据输入点经行过滤,对后端输出的东西经行转义,即输入有过滤,输出有转义
ipt标签,img标签,大小写,双写绕过
防御,对数据输入点经行过滤,对后端输出的东西经行转义,即输入有过滤,输出有转义