## 漏洞简介: ## Dedecms是一款开源的PHP开源网站管理系统。 Dedecms会员功能carbuyaction.php中的address、des、email、postname参数存在存储型XSS漏洞,攻击者可利用漏洞获得管理员cookie。 测试环境:DedeCMS-V5.7-UTF8-SP2 发布日期: 2017-03-15 官方最新版 漏洞利用条件:DedeCMS开启shop模块 ## 漏洞分析 ## 漏洞触发点在 `/plus/carbuyaction.php` 文件 `address`、`des` 、`email`、`postname`参数过滤不严导致xss漏洞触发。 漏洞文件代码在 `carbuyaction.php` 第 111 行 $address = cn_substrR(trim($address),200); $des = cn_substrR($des,100); $postname = cn_substrR(trim($postname),15); $tel= preg_replace("#[^-0-9,\/\| ]#", "", $tel); $zip= preg_replace("#[^0-9]#", "", $zip); $email= cn_substrR($email,255); 这里`$postname`参数最然做了长度限制,但是我们开始可以利用最短xss payload 触发xss漏洞。 继续跟踪cn_substrR函数,在`/include/helpers/string.helper.php` 第24行 if ( ! function_exists('cn_substrR')) { function cn_substrR($str, $slen, $startdd=0) { $str = cn_substr(stripslashes($str), $slen, $startdd); return addslashes($str); } } 这里只用 `stripslashes` 和 `addslashes` 函数进行了过滤,但是没有过滤xss攻击函数,导致漏洞触发 ## 漏洞利用 ## 前台用户登录下单,在街道地址填写xss跨站代码。 `<svg/onload=alert(0)>`...
## 漏洞简介: ## Dedecms是一款开源的PHP开源网站管理系统。 Dedecms会员功能carbuyaction.php中的address、des、email、postname参数存在存储型XSS漏洞,攻击者可利用漏洞获得管理员cookie。 测试环境:DedeCMS-V5.7-UTF8-SP2 发布日期: 2017-03-15 官方最新版 漏洞利用条件:DedeCMS开启shop模块 ## 漏洞分析 ## 漏洞触发点在 `/plus/carbuyaction.php` 文件 `address`、`des` 、`email`、`postname`参数过滤不严导致xss漏洞触发。 漏洞文件代码在 `carbuyaction.php` 第 111 行 $address = cn_substrR(trim($address),200); $des = cn_substrR($des,100); $postname = cn_substrR(trim($postname),15); $tel= preg_replace("#[^-0-9,\/\| ]#", "", $tel); $zip= preg_replace("#[^0-9]#", "", $zip); $email= cn_substrR($email,255); 这里`$postname`参数最然做了长度限制,但是我们开始可以利用最短xss payload 触发xss漏洞。 继续跟踪cn_substrR函数,在`/include/helpers/string.helper.php` 第24行 if ( ! function_exists('cn_substrR')) { function cn_substrR($str, $slen, $startdd=0) { $str = cn_substr(stripslashes($str), $slen, $startdd); return addslashes($str); } } 这里只用 `stripslashes` 和 `addslashes` 函数进行了过滤,但是没有过滤xss攻击函数,导致漏洞触发 ## 漏洞利用 ## 前台用户登录下单,在街道地址填写xss跨站代码。 `<svg/onload=alert(0)>`  下单之后自己的消费中心页面可以看到 xss漏洞 触发  同样在管理员后台也触发xss漏洞  利用此漏洞可以进一步获取管理员cookie。