欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

程序员文章站 2022-07-16 15:36:33
...

墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

方法一:
1.通过探测发现该靶场为DEDE-CMS 靶场为20180109
http://host:post/data/admin/ver.txt
为DEDE版本号位置
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

2.构造请求获取重置密码链接
请求1:http://219.153.49.228:47258/member/resetpassword.php?dopost=safequestion&safequestion=0e1&safeanwser=&id=1
重置密码后发现登录不成功,不存在admin,有可能主页不让直接登录
(注:实验结束后,通过分析后台设置
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

可以发现admin为*别,不能在前台登录)
(注:修改密码后,10分钟后才可以重复修改,此时的bp抓不到可以重置密码的包)
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

观察主页发现 还存在一个用户test
这里修改id的值即可修改对应的用户的密码,admin用户id=1,test用户id=2
请求2:

http://219.153.49.228:47258/member/resetpassword.php?dopost=safequestion&safequestion=0e1&safeanwser=&id=2

3.使用BP抓包
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

如图所示,可以获取到重制密码的链接

http://219.153.49.228:47258/member/resetpassword.php?dopost=getpasswd&id=2&key=ZIvUJGYG

修改为:

http://219.153.49.228:47258/member/resetpassword.php?dopost=getpasswd&id=2&key=ZIvUJGYG

然后就可以直接重置密码了。
但是这个漏洞存在一个缺陷,因为通过分析可以看出来只有没有设置安全问题的用户才会受此漏洞的影响;而且只能修改前台用户的密码。
4.成功通过test用户登录后台
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

通过浏览用户信息,
发现存在用户邮箱,使用该邮箱尝试登录admin账号
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

5.尝试用邮箱登录admin 的管理账户
管理账户登录:http://219.153.49.228:47258/dede/login.php
用户:admin
密码:aaa@qq.com
成功进入后台
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

6.已拿到最高权限,寻找KEY值
在通过对根目录查询发现存在包含KEY的文档
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

实验完成,分析漏洞生成原因
1.寻找漏洞点
在根目录的member文件下的resetpassword.php存在该项漏洞点
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

再通过分析源码,我发现:
在找回密码时,当 d o p o s t = s a f e q u e s t i o n 时 , 通 过 传 入 的 m e m b e r i d 查 询 出 对 应 i d 用 户 的 安 全 问 题 和 答 案 信 息 , 当 我 们 传 入 的 问 题 和 答 案 不 为 空 , 而 且 等 于 之 前 设 置 的 问 题 和 答 案 是 就 进 入 s n ( ) 函 数 。 这 里 如 果 用 户 设 置 了 问 题 和 答 案 , 我 们 并 不 知 道 问 题 和 答 案 是 什 么 , 就 无 法 进 入 s n ( ) 函 数 。 但 是 如 我 此 用 户 没 有 设 置 问 题 和 答 案 呢 ? 此 时 系 统 默 认 问 题 是 ” 0 ” , 答 案 是 空 。 那 么 我 们 传 入 答 案 dopost = safequestion时,通过传入的member_id查询出对应id用户的安全问题和答案信息,当我们传入的问题和答案不为空,而且等于之前设置的问题和答案是就进入sn()函数。 这里如果用户设置了问题和答案,我们并不知道问题和答案是什么,就无法进入sn()函数。但是如我此用户没有设置问题和答案呢?此时系统默认问题是”0”,答案是空。 那么我们传入答案 dopost=safequestionmemberididsn()sn()0safeanswer = “”时:
$row[‘safeanswer’] == s a f e a n s w e r ; 成 立 。 但 是 传 入 问 题 safeanswer;成立。 但是传入问题 safeanswersafequestion = “0”时:
if(empty($safequestion)) s a f e q u e s t i o n = ” , 而 safequestion = ”,而 safequestion=row[safequestion] = “0”
此时$row[safequestion] == s a f e q u e s t i o n ; 不 成 立 。 所 以 要 让 safequestion;不成立。 所以要让 safequestionrow[safequestion] == $safequestion;成立必须绕过if判断
2.绕过if判断
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

(这个函数找不到,使用的是参考链接的图)
可以看到使用”0.0”,”0.”,”0e1”都可以绕过前面的判断,最后进入sn()函数
3.成功绕过进入su函数
Su函数位于member\inc\inc_pwd_functions.php
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

分析代码,发现这里当第一次进行忘记密码操作时,$row应该时空,所以进入第一个if条件发送邮件insert一条记录到dede_pwd_tmp表里;如果之前进行过忘记密码操作,但是时间已经超过10分钟,那么继续进行发送新验证码的操作update dede_pwd_tmp表里面的数据,跟进当前文件的newmail()函数。
4.进入newmail函数
再当前文件下的73-125行
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

在阴影部分可以发现,传入的 s e n d 为 N 的 时 候 便 会 下 发 重 置 密 码 的 链 接 , 进 行 密 码 修 改 操 作 例 如 这 里 第 一 次 进 行 i n s e r t 操 作 ( u p d a t e 操 作 是 一 样 的 ) 时 , 将 8 位 的 随 机 字 符 串 send为N的时候便会下发重置密码的链接,进行密码修改操作 例如这里第一次进行insert操作(update操作是一样的)时,将8位的随机字符串 sendN便insertupdate8randval加密后下乳dede_pwd_tmp表中,然后当 s e n d = N 时 ( 上 面 默 认 传 入 N ) , 将 随 机 字 符 串 send = N时(上面默认传入N),将随机字符串 send=NNrandval拼接到url中返回,可以在源码中看到返回的url为:
resetpassword.php?dopost=getpasswd&id=KaTeX parse error: Expected 'EOF', got '&' at position 4: mid&̲key=randval

漏洞解析参考文章:http://blog.nsfocus.net/dedecms-20180109/

方法二.
1.寻找漏洞注入点
在发表文章的模块下存在两个图片上传位置
① 缩略图处
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

更改后缀名后不会显示文件真实路径,所以不采用此项注入点

② 详细内容的图片上传处,
修改后缀名绕过限制可以爆出文件真实路径
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

1.测试未修改后缀名的文件
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

被拦截
2.合成图片马
正常的图片可以上传
修改后缀名的图片也可以上传
所以上传图片马
图片信息:
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

一句话木马:
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

Cmd命令:
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

生成图片马waf.jpg

3.上传文件
点击上传
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

选择图片马 waf.jpg
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

4.使用Bp抓包
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程
修改图片的后缀名为.p*hp
因为不是管理者,上传该文件类型会被拒绝
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程
修改后
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

5.使用菜刀连接木马
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程
脚本类型选择PHP,即可成功登录后台
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程
可以看到文件上传的位置
通过管理者后台登录也可以发现文件上传成功
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程
6.寻找key
对文件目录的检索发现了含有key值的文档
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

文件拒绝上传的原因:
在服务器根目录下的include目录
存在uploadsafe.inc.php 文件
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程
修改45行处
将 $imtypes = array 改为 $imgtypes = array
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程
墨者学院-CMS系统漏洞分析溯源(第7题)——亲妈级教程

相关标签: 渗透 信息安全