作者:肯尼亚hanhan | 来源:互联网 | 2024-12-04 09:30
一、环境搭建
本文假设读者已具备基本的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系统时应有条不紊地查找潜在的安全漏洞。同时,要注意默认集成的第三方组件,利用工具辅助分析,并关注非标准扩展名文件的信息泄露风险。希望本文能为刚接触代码审计的朋友提供一定的指导。