从某cms的xss漏洞来学习代码审计
本文为原创文章,转载请注明出处!
各位大佬好,小弟的文章主要是通过针对具体的cms(内容管理系统)对一些基本的web漏洞进行挖掘和代码审计,这样学习起来能够理解的更加深刻。如有写的不对的地方请轻拍。
cms选择了efucms:https://github.com/phplaber/efucms
按照readme中给出的安装方式进行安装;安装完成后的界面如图所示:
随便点开一个文章:发现文章最下方有发表评论的内容,那么首先想到的是xss漏洞。
存储型XSS漏洞验证过程:在评论的称呼中写入test</textarea><script>alert(1)</script>
提交发表,发现已经弹窗执行了脚本(在此之前并没有注入xss脚本);
登录后台:
在后台管理界面,点击评论管理可以看到代码也已经执行:
所以,存在存储型xss漏洞;
漏洞分析
首先,未过滤就存进了数据库:查看源代码:
POST到了article/comment中
跳转定位到对应的位置:
发现引用了M函数;然后调用create方法,最后在87行写入了数据库;
首先分析M函数是否有过滤:
M函数定义位于:
ThinkPHP\CommonThinkPHP\Common目录下functions.php
发现没有;之后创建了一个comment的Model
也并未进行过滤;
最后通过add方法就存进了数据库;
在管理员界面显示处也未过滤:
在admin\Run\Cache下生成的一个运行时文件(我这里是:e050f9b27a9bbae1b0a3c73a95217912.php)
直接就进行了echo输出。最终导致了xss的发生。下一次将挖掘SQL注入漏洞,并进行代码审计。
本文仅用于普及网络安全知识,提高小伙伴的安全意识的同时介绍常见漏洞的特征等,若读者因此做出危害网络安全的行为后果自负,与合天智汇以及原作者无关,特此声明。