来自:知乎,作者:Ret2Rttr
链接:https://www.zhihu.com/people/bai-gei-a
今天这篇文章来源于知乎上一个叫R1et2Rttr的分享,作者自称是一名六年级的小学生。文章主要记录的是他针对自己学校网站的一次渗透测试,过程非常有趣,所以分享给各位读者朋友。
上周三,闲着无聊,准备上学校网站看看,想我这种Pwn狗,自然是对Web没啥希望了。。但是,我还是觉得上学校网站看看 说不定呢~ 所以 我上了学校网站 开始了渗透…
一、信息收集
**
**
无聊的我登录上了学校主站 说实在找不到啥突破点 连个能交互的地方都没有…
主站这条路死了
所以我准备从其他角度来思考这个问题。于是,我打开了fofa看看有没有啥子域名之类的。结果,hiehie 找到了学校培训部门的一个网站。
根据我对学校的理解,我们学校是肯定不可能自己做模板的 应该是运用了其他的cms来建站的,而所谓cms也就是其他的一些网站模板,具体可以是博客、商业化站之类的。打开了代理,dns开了,就用御剑扫描工具扫了一些。hhh 还真的扫描出来了!
dedecms?! 织梦csm,非常古老的的cms了。**我记得可能在我出生之前可能就存在了。**那么,问题就出现了。越古老的模板一般都会拥有一些通用性的漏洞。而通用性的漏洞 可能会导致网站机密性、完整性的威胁。其中,我们把这些通用性漏洞这样分开:
-
0day 指被发现但未被修复过的漏洞
-
1day 指被发现且被修复,但是由于漏洞发现时间比较早,补丁普及不完整的漏洞
-
nday 指发现且被修复的漏洞,通用性较低,因为漏洞修复已经较长时间,一般只有长期不更新的厂家才会中招** 于是,我开始了我的漏洞寻找之路。
版本号确定?
一开始,我就被网站的留言板块吸引了。一般来说都会存在XSS漏洞。XSS攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的 也就是说XSS漏洞就像是一个捕兽夹,当具有管理员权限的站长访问被植入XSS脚本的网页时,可能会被盗取权限。
**准备了攻击载荷,虽然可能性小但是还是准备试一试。**但是在留言之后有一段动画。我看了看,好像爆了CMS版本!我打开手机慢动作,拍了下来上面写着:
**确认了版本号,找针对这个版本的通用性漏洞就不难了。**所以,我打开了珍藏已久的DEDEcms扫描器~ 看看有没有nday漏洞。
二、漏洞利用
经过漫长的等待 好像似乎扫描到了一个nday 于是 我打开了nday扫描中的url 似乎好像有信息泄露漏洞!
INSERT INTO `dede_member` VALUES('1','xxxx','admin','2604ccf7b8a4a852cxxxxxxxx','admin','xxx','100','0','0','0','xxxxxxx@qq.com','10000','10','0','','0','','xxxxxx','','xxxxxxx79','xxxxxxx','-1');
这好像是sql数据库的备份 里面记录了 admin 账号的登录md5加密后密码 其实 一般网站的登录密码校正就是和数据库中使用同一加密算法加密过的密文来做比对 所以说 我们只需要逆向破解这串md5密文 我们就可以获得admin账号密码
通过md5解密之后,我们成功的获得了账户的密码。其中为了机密性考虑,我没有办法把密文给你们看。但是,我们已经获得了账户的密码。现在,我们可以登录刚刚我们御剑扫描到的子站后台了。
不出意料的我们登录了后台。但是,我们的渗透还没有结束。现在,我们需要获得整个网站的shell权限,也就是服务器的权限。
三、后渗透
**
**
在前面我们提及到nday这个概念,而像这个版本的织梦cms,nday可能是无法避免的。而还是不出意料的我们搜索到了后台getshell的nday。远程命令执行 (rce漏洞) 攻击者可以通过精心构造的语句来远程控制网络服务器,可以执行任何命令。
(其实应该是nday)
接下来,我们就开始漏洞利用吧。
漏洞利用
关于漏洞的原理不再多说。–>DedeCMS V5.7 SP2后台存在代码执行漏洞 - 0DayBug - 博客园 (cnblogs.com)。首先,我们需要登录一个上传的接口,获取我们的token值。其中Token就在html当中
获取了Token值,我们就可以构造Payload了 。payload结构如下。
域名 + /dede/tpl.php?filename=moonsec.lib.php&action=savetagfile&content=<?php[PHP语句]?>&token=[Token值]
输入payload后 访问
域名+/include/taglib/moonsec.lib.php
**可以回显执行的任何php命令。**在这里我们可以插入一句话木马。
成功获得Shell!
四、总结
我画了个思维导图
补充:之后的Webshell和获得信息泄露的不是同一个站,是一个可以说是镜像站,但是密码还是登进去了。