从某cms的xss漏洞来学习代码审计

Posted 合天智汇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从某cms的xss漏洞来学习代码审计相关的知识,希望对你有一定的参考价值。

     ▼
更多精彩推荐,请关注我们

各位大佬好,小弟的文章主要是通过针对具体的cms(内容管理系统)对一些基本的web漏洞进行挖掘和代码审计,这样学习起来能够理解的更加深刻。如有写的不对的地方请轻拍。


cms选择了efucms:

https://github.com/phplaber/efucms

按照readme中给出的安装方式进行安装;

安装完成后的界面如图所示:


随便点开一个文章:

发现文章最下方有发表评论的内容,那么首先想到的是xss漏洞。

从某cms的xss漏洞来学习代码审计


存储型XSS漏洞验证过程:

在评论的称呼中写入

test</textarea><script>alert(1)</script>

从某cms的xss漏洞来学习代码审计


提交发表,发现已经弹窗执行了脚本(在此之前并没有注入xss脚本);

从某cms的xss漏洞来学习代码审计


登录后台:

从某cms的xss漏洞来学习代码审计

在后台管理界面,点击评论管理可以看到代码也已经执行:

从某cms的xss漏洞来学习代码审计


所以,存在存储型xss漏洞;

漏洞分析

首先,未过滤就存进了数据库:

查看源代码:

从某cms的xss漏洞来学习代码审计


POST到了article/comment中

从某cms的xss漏洞来学习代码审计


跳转定位到对应的位置:

从某cms的xss漏洞来学习代码审计

发现引用了M函数;然后调用create方法,最后在87行写入了数据库;

首先分析M函数是否有过滤:

M函数定义位于:

ThinkPHP\CommonThinkPHP\Common目录下functions.php

从某cms的xss漏洞来学习代码审计

发现没有;


之后创建了一个comment的Model

从某cms的xss漏洞来学习代码审计

也并未进行过滤;


最后通过add方法就存进了数据库;

从某cms的xss漏洞来学习代码审计


在管理员界面显示处也未过滤:

在admin\Run\Cache下生成的一个运行时文件(我这里是:e050f9b27a9bbae1b0a3c73a95217912.php)

直接就进行了echo输出。

最终导致了xss的发生。

下一次将挖掘SQL注入漏洞,并进行代码审计。

以上是关于从某cms的xss漏洞来学习代码审计的主要内容,如果未能解决你的问题,请参考以下文章

记一次小有成就的代码审计

PHP代码审计 | 记一次CMS代码审计

蝉知CMS5.6反射型XSS审计复现

从一个小众cms入门代码审计

小皮1-click漏洞的代码审计学习笔记

一次小破站JS代码审计出XSS漏洞思路学习