热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

KKCMS代码审计初探

本文主要介绍了KKCMS的安装过程及其基本功能,重点分析了该系统中存在的验证码重用、SQL注入及XSS等安全问题。适合初学者作为入门指南。

一、环境搭建

本文假设读者已具备基本的Web开发环境配置能力,因此安装步骤将不会详述。安装完成后,启动网站,您将看到如下界面,该CMS平台支持发布卡片和影视资源采集播放等功能,非常适合初学者学习使用。

技术分享图片

接下来,我们将重点讨论几个关键文件。

技术分享图片

二、验证码安全问题

系统通过比较session中的值与用户输入的验证码来验证身份。然而,由于Burp Suite默认不解析Javascript,导致存在验证码复用的安全隐患。

技术分享图片

进一步调查发现,$_SESSION['verifycode']仅在verifycode.php中定义,生成四位数字验证码。值得注意的是,这种验证码重用的问题在多个网站中普遍存在。

三、文件上传漏洞分析

KKCMS使用了KindEditor编辑器,默认情况下允许上传多种类型的文件,包括HTML和TXT文档。尽管如此,但这些上传的文件并不能用于获取shell权限。

技术分享图片

更多关于文件上传漏洞的细节可参考外部资料,本文不再深入探讨。

四、SQL注入风险探讨

在后台登录模块中,未对用户名和密码进行适当的预处理,初步判断可能存在SQL注入的风险。然而,实际尝试万能密码和SQLMap均未成功,原因在于系统对特殊字符进行了转义处理。

技术分享图片

进一步审查代码发现,inc.php文件中启用了addslashes函数,用于防止SQL注入。尽管如此,addslashes并非绝对安全,建议采用更先进的防护措施。

五、前端SQL注入实例

通过/vlist.php接口输入特殊字符,观察到返回结果异常,表明该接口存在SQL注入风险。由于参数类型为整数,且未使用引号包裹,直接嵌入SQL语句中,使得SQL注入攻击成为可能。

技术分享图片

虽然addslashes被启用,但由于未使用引号,因此对其效果有限。手动注入测试显示,确实存在SQL注入漏洞。

六、后台SQL注入案例

在后台管理界面,尤其是在处理数字类型参数时,容易出现SQL注入漏洞。例如,在会员管理模块中,ID参数未经适当处理,导致SQL注入风险。

技术分享图片

尽管SQLMap未能检测到漏洞,但通过手动测试确认存在盲注。此外,后台删除功能中也存在类似的SQL注入问题。

七、跨站脚本攻击(XSS)分析

在多个页面中发现了XSS漏洞,主要是由于GET请求参数未经过滤即被输出到页面。例如,movie.php、tv.php等文件中,存在未过滤的m、cat、page等参数,导致反射型XSS。

技术分享图片

留言板功能中也存在存储型XSS,用户提交的内容未经严格检查即存入数据库并直接显示,构成安全隐患。

八、留言板的XSS双杀

除了反射型XSS外,留言板还存在存储型XSS。用户提交的内容需包含汉字,否则将被视为非法。绕过验证码后,恶意代码可直接存储至数据库并在前端显示,形成持久化的XSS攻击。

技术分享图片

后台留言管理同样受到影响,显示未经处理的用户输入,增加了系统的安全风险。

九、友链申请的XSS风险

友链申请功能中,用户提交的数据仅通过addslashes简单处理后存入数据库,导致存储型XSS漏洞。管理员在友链管理界面查看时,可能遭受攻击。

技术分享图片

十、数据库信息泄露

在测试过程中意外发现data.sql文件,其中包含了数据库的结构和初始化信息。这类信息的公开可能导致严重的安全问题。

技术分享图片

十一、结语

对于初学者而言,审计CMS系统时应有条不紊地查找潜在的安全漏洞。同时,要注意默认集成的第三方组件,利用工具辅助分析,并关注非标准扩展名文件的信息泄露风险。希望本文能为刚接触代码审计的朋友提供一定的指导。


推荐阅读
author-avatar
肯尼亚hanhan
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有