Sine安全-网络安全背后的巨人,提供服务器安全_服务器维护_网站安全解决方案

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