一、漏洞描述
在留言内容中,将数组和数据分别进行处理,输入字符时实体化存储到数据库中,查看数据时将数据进行还原处理,当管理员查看留言内容时,触发XSS
在我的资源中下载::YXcms-含有存储型XSS漏洞的源码包 下载即可
二、代码审计
通过GET方式获取参数col的值,之后处理留言的时候,调用case6的extend()方法
跟踪extend()方法,发现如果是数据,进行先后两次的in方法和deletehtml方法的数据处理操作,如果是字符串便丢进html_in方法进行处理。
首先查看数组的deletehtml()方法,如果是<script[^>] ?>. ?替换为空等等
接下来查看字符串的html_in方法,,在输出的时候,将过滤后的实体化后的完整JS代码,还原为正常JS代码输出。
查看RemoveXSS()函数,发现是对XSS的标签进行过滤,每个标签都会变成<script>,其余没有过滤
方法一:
传入字符串
因为在过滤中过滤了
方法二:
传入数组
另外根据正则还有一种绕过方法:%26gt;也就是>;会被转换成>
构造数组
输出后显示成功的XSS注入语句
更多web安全工具与存在漏洞的网站搭建源码,收集整理在知识星球。