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

一、漏洞描述

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

二、代码审计

通过GET方式获取参数col的值,之后处理留言的时候,调用case6的extend()方法
PHP代码审计——存储型XSS漏洞(YXcms 1.4.6)_第1张图片
跟踪extend()方法,发现如果是数据,进行先后两次的in方法和deletehtml方法的数据处理操作,如果是字符串便丢进html_in方法进行处理。
PHP代码审计——存储型XSS漏洞(YXcms 1.4.6)_第2张图片
首先查看数组的deletehtml()方法,如果是]?>.?替换为空等等
PHP代码审计——存储型XSS漏洞(YXcms 1.4.6)_第3张图片
接下来查看字符串的html_in方法,,在输出的时候,将过滤后的实体化后的完整JS代码,还原为正常JS代码输出。
PHP代码审计——存储型XSS漏洞(YXcms 1.4.6)_第4张图片
查看RemoveXSS()函数,发现是对XSS的标签进行过滤,每个标签都会变成

你可能感兴趣的:(PHP代码审计)