[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

时间:2022-04-13 13:06:58

0x00 前言

本来呢,这套CMS都不想审的了。下载下来打开一看,各种debug注释,排版烂的不行。

贴几个页面看看

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

感觉像是新手练手的,没有审下去的欲望了。

但想了想,我tm就是新手啊,然后就继续看了下去。

随便点了一下seay工具自动审出来的几个关键点。发现有注入,既然有注入,就好好看看了。

phpstorm,seay源代码审计,本地demo搭起来~

看完之后,想写篇文章总结一下,标题都写好了:

DM企业建站系统v201710 存在sql注入

可能是因为代码格式不想写了,又或者其他原因

。。。

不知多少分钟之后,无意在cnvd上看到有人提交了这个系统的相关报告,而且还是两个?!

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

这才下定决心想捋一捋这个系统。

0x01 CNVD 的报告和厂商的补丁

先看看 CNVD 上的报告是怎么写的吧?

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

报送时间 10-23 号,挺早的呀。。。

get 到一个点,后台登录处存在sql注入~

在看看另外一份怎么写的?

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

哎呀,24 号,你两真有缘。

这份报告应该是系统的审了,发现了多个参数。怕是日穿了,厂商也出了补丁。

最新版是 12.1 号的。

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

0x03 新旧版本对比

因为我之前已经看过了旧版本的代码,也知道旧版本多参数存在注入的问题所在。

旧版本的参数过滤都是使用了这么个函数

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

这个函数是作者自定义的,跟进去

global.common.php

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

会发现用的是 htmlentities来过滤,注意函数后面第二个参数用得是 ENT_NOQUOTES。这意味着什么呢?

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

用函数 htmlentitiesdm 过滤的都是只将<,>编码为实体字符而已。而单双引号完美被忽视了。

那么这个过滤有何意义啊?或许作者是想着来防xss的?!

也就是说用这个函数过滤的输入,只要带到数据库前没有做过滤的都是存在注入的。。

比如CNVD第一份报告说的,后台登陆存在注入??

看到代码login.php

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

只是用 htmlentitiesdm 过滤了一下就不再过滤了,直接带进数据库,注入杠杠的。

还有第二份报告所说的多个参数注入,怕就是用了这个函数进行过滤的各个参数吧,这里就不再一一去找了。

让我们把目光放到新版本上。

打开神器beyond compare,加载新旧两个版本。

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

会发现做了很多更改。

我们单刀直入直接看看 global.common.php,看看函数 htmlentitiesdm 有没有做修改?

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

会发现从 ENT_NOQUOTES 变成了 ENT_QUOTES。

也就是从不编码任何引号变成了编码所有引号。

也就是说这一改变把CNVD上面的两个洞都修复了。

login.php 后台登陆注入的

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

以及其他的输入参数,都是换成了用 htmlentitdm 来过滤了。

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

不一一举例。

0x04 新版依旧存在sql注入

在对比完新旧版本之后,我就开始笑了。因为我找的几个sql注入漏洞,都没有修复。

哈哈,我也有手握0day的时候了!

1,常见的getip()函数过滤不全或者没有过滤,导致sql注入

先看旧版的 global.common.php , 很明显没有任何过滤

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

看看哪里用了这个函数?在前台找到两个地方

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

其中 file_formpost_concat 是用来留言的,file_order_post.php是用来下单的。‘

在我测试发现,只有留言这个功能可以用。

看代码,旧版是content和tokenhour参数都有注入的

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

新版的过滤掉了。

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

但获取ip这里是没有变的。

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

那么这里是可以拿到一个布尔类型的注入。(因为这里没有回现位)

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

直接 sqlmap 跑了

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

2,后台认证判断存在注入,可直接绕过登陆

看最新版本后台认证处 admindm-yourname/config-a/common.inc2010.php

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

左新右旧,可以看到是没有什么改变的。

而我们仔细分析一下这段代码:

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

因为这里的cookie是可控的,我们可以直接进行注入,甚至不用注出密码,直接进行绕过登陆了。

我们分析代码,可以得出这样的结论。

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

为什么userps 也是可控的呢?因为这里存在注入啊。

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

通过注入,我们可以让返回的密码为我们自己输入的。

那么就可以直接构造cookie,以管理员的身份登陆进去了。

比如,我们用ps 为1 ,id 为 注入语句的cookie。

根据公式

usercookiecompare = userid-md5(userps,cookiesecet)

先构造md5部分:

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

那么我们的usercookie就是

7' and 1=2 union select null,null,null,null,null,1,null,null,null,null,null,null,null #-7b0bbade54ef65e2a830c034d0d14e61

把三个cookie搬上,访问一下/admindm-yourname/mod_common/index-welcome.php?lang=cn 便可直接进入后台

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入

时间原因,就不再看其他问题了。

肯定还有其他很多问题,代码这么乱,出错的几率也增高了不少。

0x05 总结

总的来说,这是一套比较简单的cms,适合我们这种新手。

不知道为什么这么简单的CMS,还可以刷CNVD,CNVD真的这么简单吗?!

[代码审计]DM企业建站系统v201710 sql注入漏洞分析 | 新版v201712依旧存在sql注入的更多相关文章

  1. DM企业建站系统v201710 sql注入漏洞分析 &vert; 新版v201712依旧存在sql注入

    0x00 前言 本来呢,这套CMS都不想审的了.下载下来打开一看,各种debug注释,排版烂的不行. 贴几个页面看看 感觉像是新手练手的,没有审下去的欲望了. 但想了想,我tm就是新手啊,然后就继续看 ...

  2. PHPCMS &bsol;phpcms&bsol;modules&bsol;member&bsol;index&period;php 用户登陆SQL注入漏洞分析

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述2. 漏洞触发条件 0x1: POC http://localhost/p ...

  3. Beescms&lowbar;v4&period;0 sql注入漏洞分析

    Beescms_v4.0 sql注入漏洞分析 一.漏洞描述 Beescms v4.0由于后台登录验证码设计缺陷以及代码防护缺陷导致存在bypass全局防护的SQL注入. 二.漏洞环境搭建 1.官方下载 ...

  4. SpringBoot SpEL表达式注入漏洞-分析与复现

    目录 0x00前言 0x01触发原因 0x02调试分析 0x03补丁分析 0x04参考文章 影响版本: 1.1.0-1.1.12 1.2.0-1.2.7 1.3.0 修复方案:升至1.3.1或以上版本 ...

  5. 【代码审计】大米CMS&lowbar;V5&period;5&period;3 SQL注入漏洞分析

      0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www ...

  6. 【代码审计】五指CMS&lowbar;v4&period;1&period;0 copyfrom&period;php 页面存在SQL注入漏洞分析

      0x00 环境准备 五指CMS官网:https://www.wuzhicms.com/ 网站源码版本:五指CMS v4.1.0 UTF-8 开源版 程序源码下载:https://www.wuzhi ...

  7. 【代码审计】五指CMS&lowbar;v4&period;1&period;0 后台存在SQL注入漏洞分析

      0x00 环境准备 五指CMS官网:https://www.wuzhicms.com/ 网站源码版本:五指CMS v4.1.0 UTF-8 开源版 程序源码下载:https://www.wuzhi ...

  8. 【代码审计】iZhanCMS&lowbar;v2&period;1 前台IndexController&period;php页面存在SQL注入 漏洞分析

      0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...

  9. 【代码审计】iZhanCMS&lowbar;v2&period;1 前台GoodsController&period;php页面存在SQL注入漏洞分析

      0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...

随机推荐

  1. &lbrack;Note&rsqb; changing building platform from vs 2013 to vs community 2015

    The error turned out as "undefined linkage"(The same as you haven't use some function that ...

  2. java中创建线程的几种方法及区别

    1,实现Runnable接口创建线程 特点: A:将代码和数据分开,形成清晰的模型 B:线程体run()方法所在的类可以从其它类中继承一些有用的属性和方法 C:有利于保持程序风格的一致性 2,继承Th ...

  3. iphone获取当前磁盘信息

    获取iphone磁盘总大小.已使用空间.空闲空间 [代码]悦德财富:https://www.yuedecaifu.com 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

  4. 如何在UIAlertView中显示进度条

    今天这个问题是,在一个iPhone程序中,我要在后台做大量的数据处理,希望在界面上显示一个进度条(Progress Bar)使得用户了解处理进度.这个进度条应该是在一个模态的窗口中,使界 今天这个问题 ...

  5. linux 配置apache&plus;subversion

    http://apr.apache.org/download.cgi http://subversion.tigris.org/servlets/ProjectDocumentList?folderI ...

  6. python hook监听事件

    python hook监听事件 作者:vpoet mail:vpoet_sir@163.com # -*- coding: utf-8 -*- # # by oldj http://oldj.net/ ...

  7. JAVA Metrics 度量工具使用介绍

    转载: http://blog.csdn.net/scutshuxue/article/details/8350135 http://koven2049.iteye.com/blog/968143 h ...

  8. 均方根误差(RMSE)与平均绝对误差(MAE)

    RMSE Root Mean Square Error,均方根误差 是观测值与真值偏差的平方和与观测次数m比值的平方根. 是用来衡量观测值同真值之间的偏差 MAE Mean Absolute Erro ...

  9. 12&period;0-uC&sol;OS-III任务调度

    调度器,决定了任务的运行顺序. uC/OS-III是一个可抢占的, 基于优先级的内核.根据其重要性每个任务都被分配了一个优先级.uC/OS-III支持多个任务拥有相同的优先级. 1.抢占式调度 uC/ ...

  10. 【工具相关】Web-ionic-npm的安装

    一, 一般最新版本的Node.js集悲剧了npm.在命令行下,输入命令: "npm-v",可以测试npm是否安装.如下图所示: 二,上图显示了npm的版本号,即代表已经安装了npm ...