DedeCMS-5.5.7-sp2

DedeCMS-5.5.7-sp2

版权申明:本文为原创文章,转载请注明原文出处

原文链接:http://example.com/post/2e50acad.html

DedeCMS-5.5.7-sp2

代码审计第0篇之DedeCMS-5.5.7-sp2

目标一:登录admin账号
step1: 注册新账号

注册新账号查看代码执行过程,找到漏洞点

如图所示,登录我们创建好的111用户,查看浏览器缓存的cookie信息

image-20240227184229382

由此可知我们如果要登录admin账号,就要构造DedeUserID和DedeUserUserID__ckmd5的cookie值。

同时观察到此处的我们新注册的账号userID为2,由此猜测admin账号的userID为1,但我们无法得知DedeUserID_ckMd5的值。

image-20240227183837151

step2: 获取1的chMd5值

查看index.php源码有关于cookie的存放

image-20240227184358057

如图所示,在此处对uid的值是否为空进行了条件跳转,若uid为空直接检查是否为登录状态;若不为空,系统会先认为为登录态,再检查参数last_vid,若为空就将uid赋值给last_vid,然后将last_vid放入cookie

image-20240227184758840

查看cookie函数的放置和检查函数,如图所示,此处的Putcookie我们可以猜测就是将原value和value__ckMd5的cookie存入

image-20240227184850831

而Getcookie也就是检查这两个值

image-20240227185010523

而上面我们分析到若uid不为空而lastvid为空我们就可以得到该uid的ckmd5值,因此此处我们将uid设为1,为lastvid设为空

image-20240227185228742

此处的last_vid__ckmd5就是1的ckmd5值,因此我们设置uid和对应的ckmd5查看是否能成功登录,如图所示,登陆成功

image-20240227185341479

目标二:修改任意目标用户密码
step1: 分析修改密码代码

首先确定修改密码的代码部分

image-20240301215949947

如图所示在修改密码之前对传入的的key的值进行了比较,现在查看row['pwd']是什么

image-20240301220100488

row是__ pwd_tmp表中对应mid行的信息,也就是如果我们能获取我们要修改的id及其在 __pwd_tmp表中的pwd值则可对密码进行更新

现在寻找在 __pwd_tmp表中添加pwd的代码,如下所示,首先随机生成了randval,然后对其散列,最后插入到表中,同时下面还进行了跳转,跳转的域名就包含着存在 __pwd_tmp中的密码,由此如果我们想办法进入到该函数则可以成功在__member修改密码

image-20240301220644379

step2: 找到入口

在sn函数中我们可以成功看到我们想要的函数

image-20240301221037425

而sn算法是在如下情况下使用

image-20240301221129441

由此整个流程是 dopost=safequestion - - -> sn - - - > newmail - - - > 获取修改密码链接

根据分析代码我们构造如下cookie(该攻击前提是要修改密码的用户没有设置安全问题,没有设置安全问题的情况下safequestion为0,safeanswer为空):

image-20240301221433515

最后访问生成的链接

image-20240301221852927

目标三: 一句话木马
step1: 找到漏洞代码

查找上传文件时可能发生的漏洞,在此处是对文件名进行的正则匹配,但是无法避免.jpg.php类型,以此看来该处为漏洞入口

image-20240302111546471

全局查找使用该文件的位置,最终锁定了dede/templets/article_add.htm文件内容中有使用该方法的位置,这里的selectImage函数就是用了上面的正则匹配方式上传文件

image-20240302163247013

根据该路径我们确定是管理员后端的增加文章界面,根据html文件内容我们确定了上传文件的地方

image-20240302163412969

通过本地上传文件之后可以看到上传后的路径

image-20240302163553791

step2: 使用burpsuite上传php文件

找到漏洞入口就可以上传文件了,确定上传

image-20240302170257005

最后打开该文件

image-20240302170423090

可采用类似方式上传一句话木马文件掌握控制权

Author

yyyyyyxnp

Posted on

2024-02-21

Updated on

2024-09-29

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.