PHP代码审计——存储型XSS漏洞(YXcms )

364 阅读1分钟

一、漏洞描述

在留言内容中,将数组和数据分别进行处理,输入字符时实体化存储到数据库中,查看数据时将数据进行还原处理,当管理员查看留言内容时,触发XSS

在我的资源中下载::YXcms-含有存储型XSS漏洞的源码包 下载即可

二、代码审计

通过GET方式获取参数col的值,之后处理留言的时候,调用case6的extend()方法
在这里插入图片描述
跟踪extend()方法,发现如果是数据,进行先后两次的in方法和deletehtml方法的数据处理操作,如果是字符串便丢进html_in方法进行处理。
在这里插入图片描述
首先查看数组的deletehtml()方法,如果是<script[^>] ?>. ?替换为空等等
在这里插入图片描述
接下来查看字符串的html_in方法,,在输出的时候,将过滤后的实体化后的完整JS代码,还原为正常JS代码输出。
在这里插入图片描述
查看RemoveXSS()函数,发现是对XSS的标签进行过滤,每个标签都会变成<script>,其余没有过滤
在这里插入图片描述
在这里插入图片描述

方法一:

传入字符串
因为在过滤中过滤了

方法二:

传入数组
另外根据正则还有一种绕过方法:%26gt;也就是&gt;会被转换成>
在这里插入图片描述
构造数组
在这里插入图片描述
输出后显示成功的XSS注入语句
在这里插入图片描述
在这里插入图片描述

更多web安全工具与存在漏洞的网站搭建源码,收集整理在知识星球。
在这里插入图片描述