本文最后更新于 2018年01月19日 16:34 可能会因为没有更新而失效。如已失效或需要修正,请留言!

概述

PHPOKCMS这是一套允许用户高度自由配置的企业站程序,基于LGPL协议开源授权!CMS拥有直观、简洁、轻松愉悦的后台管理 ,完善的功能模块,强大的SEO搜索优化 及营销功能。根据黑盒+白盒的方式进行挖掘漏洞,黑盒思路发现漏洞,白盒方式审计漏洞。当前版本为PHPOKCMS 4.8,漏洞为CNVD-C-2016-81241。

1.2 发现漏洞

首先进入后台页面,然后找到关于我们进行编辑,如图1所示。
PHPOKCMS存储型XSS漏洞挖掘-ChaBug安全
根据页面中的代码,可得知页面进行HTML实体的转换。我将发送的数据包截获,并且修改为URL编码后的JS代码,如图2所示;URL编码前代码如图3所示。
PHPOKCMS存储型XSS漏洞挖掘-ChaBug安全
PHPOKCMS存储型XSS漏洞挖掘-ChaBug安全
在页面中成功执行JS代码,如图4所示。
PHPOKCMS存储型XSS漏洞挖掘-ChaBug安全
查看页面JS代码,如图5所示。
PHPOKCMS存储型XSS漏洞挖掘-ChaBug安全
根据发现漏洞,采用白盒审计的方法,递进查看漏洞产生原因。

1.3浏览存在漏洞的代码

后台管理中关于我们页面的代码,如图6所示:
/data/tpl_admin/1_list_edit.php 第27行。
PHPOKCMS存储型XSS漏洞挖掘-ChaBug安全
页面是采用动态的生成方式,继续查看页面解析的代码,如图7所示
PHPOKCMS存储型XSS漏洞挖掘-ChaBug安全
继续追踪传递参数到ok_f(),如图8所示:
/framework/admin/list_control.php 755行。
PHPOKCMS存储型XSS漏洞挖掘-ChaBug安全
紧接着执行存储方法,如图9所示:
/framework/admin/list_control.php 858行。
PHPOKCMS存储型XSS漏洞挖掘-ChaBug安全
存储语句执行,如图10 所示:
/framework/model/admin/ext_model.php

1.4总结

在页面中进行HTML实体转换,显然不是十分的妥善的。通过一些方法可以绕过。

感谢网友@vr_system投稿

喜欢这篇文章的话就点一点喜欢吧!