DedeCMS V5.7sp2最新版本parse_str函数SQL注入漏洞
织梦dedecms,在整个互联网中许多企业网站,个人网站,优化网站都在使用dede作为整个网站的开发架构,dedecms采用php+mysql数据库的架构来承载整个网站的运行与用户的访问,首页以及栏目页生成html静态化,大大的加快的网站访问速度,以及搜索引擎的友好度,利于百度蜘蛛的抓取,深受广大站长以及网站运营者的喜欢。最近我们发现dedecms漏洞,存在高危的parse_str函数sql注入漏洞。
关于该织梦漏洞的详情,我们一步一步来剖析:
首先来介绍下parse_str函数的机制与作用是什么,简单通俗来讲就是解析网站传过来的字符串,将字符串的值转变成一个固有的变量值,这个函数在传入进来,进行转变的时候并不会验证网站当前变量的值是否含有,最直接的就是导致当前的变量值会被代码里的值给覆盖掉。针对于dedecms存在的sql注入漏洞,我们来分析一下该漏洞是如何产生的,我们该如何去更好的利用这个织梦漏洞。在dedecms最新版里的buy_action.php代码里,存在网站漏洞,dedecms针对于该文件之前更新并修复过网站漏洞,代码里增加了许多函数的安全过滤,但是在过滤的同时编码函数进行解码的时候没有严格的过滤掉传入进来的值,导致可以执行sql语句查询dede的数据库内容,包括可以查询网站的管理员账号与密码。我们对该代码进行人工的安全检测发现,在第4,第6行里调用了一个mchStrCode函数机制,这个函数我来简单跟大家讲解一下原理是什么,该函数是将前端网站用户提交过来的数据进行解码,然后通过parse_str进行赋值变量,变量的同时不会判断当前的值是否存在,而导致可以提交恶意的sql攻击代码进来,拼接进行sql注入攻击。
整个网站漏洞的产生以及dedecms漏洞利用很简单,但是在实际漏洞利用过程中我们发现这个还是挺难实现的,最关键的还是mchStrCode的函数在整个网站编码,控制前端用户提交过来的值中的参数。在dedecms的data目录下的common.inc.php这个代码里已经对get、post、cookies提交的方式进行了安全过滤,限制了非法字符的输入,包括%20,空格,逗号,都会被拦截,那么我们在使用这个织梦漏洞的时候,要对拦截的字符进行编码加密绕过拦截,通过编码让request进行解析,直接解析成我们构造的sql注入语句即可。
dede漏洞利用如下图所示:
每个网站,每个访客的cookie跟user-agent都不一样,要根据实际的值进行伪造与加密生成。
dedecms网站漏洞修复建议:
关于这次的dedecms parse_str函数SQL注入漏洞,需要修复的就是变量的覆盖修复,在对前端输入过来的值进行安全判断,确认变量值是否存在,如果存在将不会覆盖,杜绝变量覆盖导致掺入恶意构造的sql注入语句代码。如果对网站漏洞修复,以及网站安全加固不懂的话,也可以找专业的网站安全公司,国内SINE安全公司,绿盟安全公司,启明星辰安全公司,都是比较不错的,也可以通过dedecms后台升级最新版本,目前官方没有修复。
专注于安全领域 解决网站安全 解决网站被黑 网站被挂马 网站被篡改 网站安全、服务器安全提供商-www.sinesafe.com --专门解决其他人解决不了的网站安全问题.低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
利用Asp.Net Core的MiddleWare思想处理复杂业务流程
最近利用Asp.Net Core 的MiddleWare思想对公司的古老代码进行重构,在这里把我的设计思路分享出来,希望对大家处理复杂的流程业务能有所帮助。 背景 一个流程初始化接口,接口中根据传入的流程类型,需要做一些不同的工作。 1.有的工作是不管什么类型的流程都要做的(共有),有的工作是某一流程特有的。 2.各个处理任务基本不存在嵌套关系,所以代码基本是流水账式的。 3.流程的种类较多,代码中if或者switch判断占了很大的篇幅。 4.这些处理工作大致可分为三大类,前期准备工作(参数的校验等),处理中的工作(更新数据库,插入数据等),扫尾工作(日志记录,通知等) Asp.Net Core中的MiddleWare 注意第二条,流水账式的代码,这让我想到《管道模型》,而Asp.Net Core的MiddleWare正是放在这个管道中的。 看下图: 有middleware1,middleware2,middleware3这三个中间件放在一个中间件的集合(PipeLine,管道)中并有序排列,Request请求1从流向2载流向3,随之产生的Response从底层依此流出。 这个Requ...
- 下一篇
MongoDB云上灾备:如何快速复制阿里异地灾备、多活架构
1. 背景 当前的数据库系统生态中,大部分系统都支持多个节点实例间的数据同步机制 ,如Mysql Master/Slave主从同步,Redis AOF主从同步等,MongoDB更是支持3节点(及以上)ReplicaSet同步,上述机制很好的支撑了一个逻辑单元的数据冗余及HA。 跨逻辑单元(3节点实例、主从实例),甚至跨单元、跨数据中心的数据同步,在业务层有时候就显得很重要,可以支持同城多机房的负载均衡,多机房的互备,甚至是异地多数据中心容灾(比如 光纤被挖断、地震等小概率事件)和多活。 基于以上背景,云数据库MongoDB版本正式推出MongoDB实例间的双向同步产品“MongoDB云上灾备”(也称BLS),助力企业快速复制阿里巴巴异地灾备、多活架构。 产品地址 2. 产品介绍 “MongoDB云上灾备”通过从源数据库拉取
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Hadoop3单机部署,实现最简伪集群
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7,CentOS8安装Elasticsearch6.8.6