危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2289 浏览18982388

对某高校的一次渗透测试

最近危险漫步一直在看代码,渗透很久没做了,刚好离开学还有几天,闲来无事就练习练习,渗透这玩意儿,太久不做就会退步的。

一、确定目标

这次的目标是某高校的电子工程系的website,该学校的计算机和电子一类的东东在全国可都是很有名的,所以这次就选了它为目标,测试下安全状况如何。

二、收集信息

好了开工,既然是渗透,信息收集是个必不可少的前奏,而且还相当重要,一次渗透的成功与否很大程度上取决于前期的信息收集,这次的渗透,虽然最终获取了shell,但还是有所欠缺的,前期的信息收集就做的不够好,否则中途也不会费那么多事了。

先收集主机信息,主机信息主要包括开放的端口服务一类,这里我个人比较喜欢用nmap,毕竟nmap是目前公认最好的端口扫描器。

三、开始渗透

差不多就这样吧,从结果显示开放了的端口不少,可惜小菜我手上又没什么0day,看来这下只能从web入手了,先看看8080有什么东西,或许运气好能有什么惊喜,可惜,似乎运气不是那么好只有一个管理登陆页,而且还是个教务系统的,还是闪人吧,扯上教务系统可没什么好事。

看看80,希望脚本里面出点什么偏差…随手点开个新闻链接:http://xxx.xxx.xxx.cn/school/news/news_l.php?id=171,单引号报错,连路径也爆了,并得知是mysql的数据库。

看来有戏,测试**/and/**/1=1和/**/and/**/1=2分别返回正常和错误页面,确定有注。既然是mysql的库,那就先看看字段吧,一直order by 14正确,order by 15出错,确定字段数为14,接下来看能回news/news_1.php?id=-171/**/union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14/*,得到回显。

结果显示2,7,9三个位置可以回显数据,用group_concat(version(),()x3 a,user(),()x3 a,database())函数取得当前数据库用户,数据库版本,数据库名的信息。

很走运啊,居然是root权限的,数据库还是mysql-5.0以上的这样可利用的东西就很多了。先来load_file()试试,由先前爆出的路径得知系统是linux的,看看能不能爆/etc/passwd吧。

看来load_file()没有问题,root权限嘛,那就尝试读数据库连接密码吧!由于已经得知网站路径,所以我直接读news_1.php文件的源码,顺利得到数据库的连接账号密码,接下来就是mysql过去了。可是问题来了,mysql默认是不能外链的,虽然有些网站设置成了可以外链,但是这台服务器并没有这样做。

这样一来得到的root就暂时没什么用了,并且此时我尝试寻找phpmyadmin也没找到(后文将提到,没找到并不是没有)。既然如此,那就老老实实爆数据吧,好在是5.0以上的,不用太麻烦,但问题并没有我想的那么简单,在手工爆了十几个表之后还没找到与管理有关的表,没办法,回到windows平台下,用穿山甲帮忙吧。一用当时就惊了,居然有160多个表,幸亏我没有手工去一个个爆,要不然还不知道什么时候能爆完。这160多个表里面,找到所有与管理相关的表之后,一一爆列名,爆数据。

爆出数据后管理界面也找到了,直接添加/admin目录就跳出来了,但问题又来了,爆出的所有数据在管理登陆页都无法登陆。这下陷入困境了,似乎所有能走的路线都没用了,正打算放弃的时候,猛然想起一开始信息收集时根本没对web做一个全面的探测。好吧,再试试,拿出wwwscan一扫,得到一个ftp目录,看到这个目录我突然想起爆出的一个表是ftpuser,会不会这其中有联系呢?马上爆出此表数据,得到管理账号,顺利登入了。

ftp的用户还真多,但是找来找去没找到可供上传的地方,无奈之下找到本网站对应的用户,点击右边的修改,结果看到了phpmyadmin。

途中用红线框起来的即是,晕,原来是大小写的问题。也是,linux下是区分大小写的,看到了phpmyadmin,终于感觉看到胜利的曙光了,马上来到phpmyadmin登陆页,用一开始读到的账户密码登陆,然后就是老步骤了:建表→插入一句话→select into outfile,顺利得到webshell。

虽然写出来过程简单,但由于先前的信息收集没有做到位,所以导致中途走了很多弯路,由此也可见,信息收集对于渗透是多么重要,同时在渗透的过程中更需要细心,恒心。当你想放弃的时候,不妨告诉自己再坚持一下,冷静想想,或许胜利就在下一秒等着你。 

相关推荐