织梦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. 删除排序数组中的重复数字 - C++

    class Solution { public: /** * @param A: a list of integers * @return : return an integer */ int rem ...

  2. 《浪潮之巅》(第2版):精彩的IT商战史

    2011年看过第一版.以为看新版会跳过大部分看过的内容,结果发现还是从头到尾看了一遍,2011年看过的内容已经记不太确切了:) 另外IT的历史太精彩了,许多故事都知道,再看还是挺有意思.当然作者的文字 ...

  3. March 19 2017 Week 12 Sunday

    If you want it, work for it. It's that simple. 很简单,想要什么,就为之努力吧. Yes, it is very simple. Many of us j ...

  4. scrum 第二次冲刺

    scrum 第二次冲刺 1.本周工作 本周正式开始了开发工作.首先设计了类图,建好了数据库,将整个小组的分工传到了禅道上,我主要负责后台的挂号操作. 本周分工如下: 首先搭建好了ssm框架,其中遇到了 ...

  5. HDU 4278 卡特兰,区间DP

    题意:每个人有一个DI值,现在有一个小黑屋,这些人的顺序可以利用这个小黑屋调整,调整方式是入栈出栈方式,也就是说,这里的方案是有卡特兰数个方式. 调整后使得 d1*0 + d2*1 + d3*2 + ...

  6. Strtus2框架使用HttpServletResponse响应数据

    -----------------------------------------------------------------------------------------jsp-------- ...

  7. 【转】不错的linux下通用的java程序启动脚本

    虽然写起动shell的频率非常不高...但是每次要写都要对付一大堆的jar文件路径,新加jar包也必须要修改起动shell. 在网上找到一个挺好的通用shell脚本. 只需要修改一些配置变量,就可以用 ...

  8. sublime重构变量

    选中变量后按下Ctrl+D可批量修改变量名

  9. 【洛谷P1073】[NOIP2009]最优贸易

    最优贸易 题目链接 看题解后感觉分层图好像非常NB巧妙 建三层n个点的图,每层图对应的边相连,权值为0 即从一个城市到另一个城市,不进行交易的收益为0 第一层的点连向第二层对应的点的边权为-w[i], ...

  10. Android学习笔记_15_网络通信之文件断点下载

    一.断点下载原理: 使用多线程下载文件可以更快完成文件的下载,多线程下载文件之所以快,是因为其抢占的服务器资源多.如:假设服务器同时最多服务100个用户,在服务器中一条线程对应一个用户,100条线程在 ...