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后台升级最新版本,目前官方没有修复。
DedeCMS V5.7sp2最新版本parse_str函数SQL注入漏洞的更多相关文章
- DedeCMS全版本通杀SQL注入漏洞利用代码及工具
dedecms即织梦(PHP开源网站内容管理系统).织梦内容管理系统(DedeCms) 以简单.实用.开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,近日,网友 ...
- Drupal 7.31版本爆严重SQL注入漏洞
今早有国外安全研究人员在Twitter上曝出了Drupal 7.31版本的最新SQL注入漏洞,并给出了利用测试的EXP代码. 在本地搭建Drupal7.31的环境,经过测试,发现该利用代码可成功执行并 ...
- DedeCMS全版本通杀SQL注入漏洞利用代码
EXP: Exp:plus/recommend.php?action=&aid=1&_FILES[type][tmp_name]=\' or mid=@`\'` /*!50000u ...
- 企业安全03Django GIS SQL注入漏洞CVE-2020-9402
Django GIS SQL注入漏洞CVE-2020-9402 一.漏洞描述 Django是Django基金会的一套基于Python语言的开源Web应用框架.该框架包括面向对象的映射器.视图系统.模板 ...
- 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个页面,存 ...
- 浅析PHP框架Laravel最新SQL注入漏洞
PHP知名开发框架Laravel,之前在官方博客通报了一个高危SQL注入漏洞,这里简单分析下. 首先,这个漏洞属于网站coding写法不规范,官方给了提示: 但官方还是做了修补,升级最新版本V5.8. ...
- 【漏洞分析】Discuz! X系列全版本后台SQL注入漏洞
0x01漏洞描述 Discuz!X全版本存在SQL注入漏洞.漏洞产生的原因是source\admincp\admincp_setting.php在处理$settingnew['uc']['appid' ...
- dedecms SESSION变量覆盖导致SQL注入漏洞修补方案
dedecms的/plus/advancedsearch.php中,直接从$_SESSION[$sqlhash]获取值作为$query带入SQL查询,这个漏洞的利用前提是session.auto_st ...
- sqlmap查找SQL注入漏洞入门
1.安装sqlmap sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞.注意:sqlmap只是用来检测和利用sql注入点的,使用前请先使用扫描工具扫出sql注入点 ...
随机推荐
- 栈帧示意图:stack pointer、frame pointer
更多参考:http://www.embeddedrelated.com/usenet/embedded/show/31646-1.php 一: The calling convention descr ...
- Business Component(BC)和Business Object(BO)
Siebel应用架构的一个成功的地方就是在应用里引入了BC,BO的概念,从而使得几千张关系数据表能够按照业务的含义组织成业务对象,对于业务人员而言具有了业务上的含义,而不仅仅是从技术人员的观点来对待数 ...
- leetcode-pascal triangle I&&II
对于第2个pascal triangle,通过观察可以发现,其实只需要2个额外的变量来记录,于是就设了个tmp数组. 整体有点DP问题中的滚动数组的感觉. #include <vector> ...
- 爬虫入门之爬取策略 XPath与bs4实现(五)
爬虫入门之爬取策略 XPath与bs4实现(五) 在爬虫系统中,待抓取URL队列是很重要的一部分.待抓取URL队列中的URL以什么样的顺序排列也是一个很重要的问题,因为这涉及到先抓取那个页面,后抓取哪 ...
- The Tao to Excellent 2
就算自己现在的技术水平很菜,就算自己现在写的代码还是很烂,但我们还是要一直坚持在最前线,一直向上,也许,在前方,就有不一样的风景在等着我们. 因为我深深明白到一件事:人之所以选择混吃等死,是因为他们根 ...
- fastJson简单实用
public class FastJsonText { @Test public void text(){ User user1 = new User(); user1.setName("健 ...
- likelihood(似然) and likelihood function(似然函数)
知乎上关于似然的一个问题:https://www.zhihu.com/question/54082000 概率(密度)表达给定下样本随机向量的可能性,而似然表达了给定样本下参数(相对于另外的参数)为真 ...
- JavaScript内存管理
低级语言,比如C,有低级的内存管理基元,想malloc(),free().另一方面,JavaScript的内存基元在变量(对象,字符串等等)创建时分配,然后在他们不再被使用时"自动" ...
- Java中基本类型和引用类型(简单介绍)
8种基本类型 一.4种整型 byte 1字节 -128——127 short 2 字节 -32,768 —— 32,767 in ...
- dijkstra 最小费用最大流
前言:众所周知:spfa他死了 滑稽 dijkstra同样为最短路算法,为什么不能跑费用流qwq 好像是因为有负权边的缘故 但是如果我们如果使用某种玄学的将边权都拉回到正数的话 就可以跑了dijkst ...