织梦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后台升级最新版本,目前官方没有修复。

DedeCMS V5.7sp2最新版本parse_str函数SQL注入漏洞的更多相关文章

  1. DedeCMS全版本通杀SQL注入漏洞利用代码及工具

    dedecms即织梦(PHP开源网站内容管理系统).织梦内容管理系统(DedeCms) 以简单.实用.开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,近日,网友 ...

  2. Drupal 7.31版本爆严重SQL注入漏洞

    今早有国外安全研究人员在Twitter上曝出了Drupal 7.31版本的最新SQL注入漏洞,并给出了利用测试的EXP代码. 在本地搭建Drupal7.31的环境,经过测试,发现该利用代码可成功执行并 ...

  3. DedeCMS全版本通杀SQL注入漏洞利用代码

    EXP: Exp:plus/recommend.php?action=&aid=1&_FILES[type][tmp_name]=\'   or mid=@`\'` /*!50000u ...

  4. 企业安全03Django GIS SQL注入漏洞CVE-2020-9402

    Django GIS SQL注入漏洞CVE-2020-9402 一.漏洞描述 Django是Django基金会的一套基于Python语言的开源Web应用框架.该框架包括面向对象的映射器.视图系统.模板 ...

  5. Django GIS SQL注入漏洞(CVE-2020-9402)

    影响版本 Django 1.11.29之前的1.11.x版本.2.2.11之前的2.2.x版本和3.0.4之前的3.0.x版本中存在SQL注入漏洞 提示有admin.vuln.vuln2,3个页面,存 ...

  6. 浅析PHP框架Laravel最新SQL注入漏洞

    PHP知名开发框架Laravel,之前在官方博客通报了一个高危SQL注入漏洞,这里简单分析下. 首先,这个漏洞属于网站coding写法不规范,官方给了提示: 但官方还是做了修补,升级最新版本V5.8. ...

  7. 【漏洞分析】Discuz! X系列全版本后台SQL注入漏洞

    0x01漏洞描述 Discuz!X全版本存在SQL注入漏洞.漏洞产生的原因是source\admincp\admincp_setting.php在处理$settingnew['uc']['appid' ...

  8. dedecms SESSION变量覆盖导致SQL注入漏洞修补方案

    dedecms的/plus/advancedsearch.php中,直接从$_SESSION[$sqlhash]获取值作为$query带入SQL查询,这个漏洞的利用前提是session.auto_st ...

  9. sqlmap查找SQL注入漏洞入门

    1.安装sqlmap sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞.注意:sqlmap只是用来检测和利用sql注入点的,使用前请先使用扫描工具扫出sql注入点 ...

随机推荐

  1. w3wp.exe占用CPU100%的解决办法

    w3wp.exe占用CPU100%的解决办法 说点关于W3WP.EXE的知识. Q : W3WP.EXE,应用程序,应用程序池之间的关系 A : 一个应用程序池可以包含多个应用程序,一个应用程序池创建 ...

  2. input type=number去掉上下箭头

    <input type="number" ...> <style> input::-webkit-outer-spin-button, input::-we ...

  3. 再学UML-深入浅出UML类图(二)

    类与类之间的关系(1) 在软件系统中,类并不是孤立存在的,类与类之间存在各种关系,对于不同类型的关系,UML提供了不同的表示方式.       1. 关联关系 关联(Association)关系是类与 ...

  4. Android(java)学习笔记49:通过反射获取私有构造方法并且使用

    1. 反射获取私有构造方法并且使用: (1)获取字节码文件.class对象:          Class c = Class.forName("cn.itcast_01.Person&qu ...

  5. Android(java)学习笔记44:Map集合的遍历之键值对对象找键和值

    1. Map集合的遍历之 键值对对象找 键和值: package cn.itcast_01; import java.util.HashMap; import java.util.Map; impor ...

  6. Ubuntu不支持rpm安装软件解决方法

    Ubuntu不支持rpm安装软件解决方法 以前经常使用的是RedHat Linux,习惯使用rpm方法安装软件.最近发现Ubuntu系统居然不支持rpm方法安装软件,提示信息如下: root@root ...

  7. luogu P1768 天路

    嘟嘟嘟 01分数规划之最优比率环. 主要是发一下基于dfs的spfa.跑的贼快,原来总用时2000多ms还TLE了两个点,改成dfs后总用时直降43ms! #include<cstdio> ...

  8. STL - priority_queue(优先队列)

    参考:http://www.cnblogs.com/xzxl/p/7266404.html 一.基本定义: 优先队列容器与队列一样,只能从队尾插入元素,从队首删除元素.但是它有一个特性,就是队列中最大 ...

  9. ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(七)之 图文,附件消息(2016-05-05 12:13)

    上一篇介绍了加好友的流程,这里不再赘述,不过之前的聊天只能发送普通文字,那么本篇就教你如何实现发送附件和图片消息.我们先对功能进行分析: 发送图片,附件,需要实现上传图片和附件的功能. textare ...

  10. CentOS6.6上进程挂起的诡异问题和处理

    由于新的服务器不再支持CentOS5.4系统了,我们在新装机器上安装CentOS6.6.随着CentOS6.6机器的增多,我们逐渐注意到一个诡异问题:运行在这些机器上的某些进程,容易莫名其妙地挂起(举 ...