线下终于打完了。。。和预想中的挺多不一样的。。。不过不可否认的是这次打得的确不好。。还有很多需要学习和改进的地方
历程:
一开始一上线发现发现无法tar打包在html目录就上线改默认密码,当时大概是把17支左右的队伍后台都拿下了 然后就一直在找上传点 这里要检讨一下,找上传点找得太慢了,导致后面丢失了很多后台控制权,而且还有一点要检讨的就是官方说没有requests库但是其实kali里面是自带requests库的。。。这里没找到导致因为不熟悉urllib2库而写不了脚本 这里要更加检讨一下, 然后这场比赛最重要的一点不足是没有利用好自己的写的不死马 没有上传好(也是因为没有脚本的原因) 导致后面队伍都做好防御的时候就没办法利用了 只能拣屎玩了。。。而且还有一点疑惑是暨大到底是利用了哪一个点能畅通无阻的getshell呢?很想去问一下Orz
然后就是到下午了, 下午是渗透主场。。前晚看了一晚上的跳板鸡代理之类的知识。。。。但是没啥用 shell都没get到。。。
首先是暴露了两个服务器 一个80端口是metinfo的cms,另外一个80端口是一个IIS,88端口是一个weCenter的http服务
这里有点坑。。。。第二个Web服务的80端口的iis竟然是88端口的一个子文件夹。。。。这里有点绕不过来。。。因为在我开发的经验里一般来说一个端口是一种应用。。。而且80端口的东西并没有在88端口有相应的功能点应用得到。。。所以不能理解出题人。。。Orz。。。可能还是自己太菜了。。。所以80端口即使可以PUT东西上去。。但是并没有啥用。。。put上去的asp都是404 然后第一个Web应用没有找到啥能用的东西。。。赛后去询问了一下主办方,正确的思路应该如下:
- Web2的88端口的robots.txt有一个明文flag
- Web1服务里面admin跳转中源码有一个明文flag,需要curl逃逸跳转才能得到
- Web2的80端口把.htaccess的内容Move到一个txt,发现php3是可以执行的,然后再发现80端口的东西在88端口一个图片文件夹内,然后就PUT一个php3的shell上去,getshell,然后在Web2服务器内的mysql数据库内发现Web1的数据库, 获得Web1管理员的账号密码,然后在Web1中getshell,然后再开启反向代理扫一下内网ip和端口,再后面的就不太清楚了。
这次的缺点是缺少渗透的思想,要理解到服务器之间全都是有联系的,一个服务器很难getshell的时候不妨去试试同一ip段下的另一个服务器的服务,说不定就能找到一开始服务器的突破点
还是太菜了。。。继续学习Orz。。。