Post on: Jul 8, 2025Last edited: Jul 8, 2025
Words 2189Read Time 6 min

type
status
date
slug
summary
tags
category
icon
password

信息收集

端口扫描

Annunciation

靶机ip:192.168.108.136
攻击机ip:192.168.108.50
靶机地址:https://vulnyx.com/

目录扫描

开放了22和80两个端口,namp显示http支持TRACE方法,可能存在 [Cross Site Tracing (XST)] 漏洞,可以借助 JavaScript 绕过同源策略配合 XSS 读取内容
用浏览器访问80端口是个默认页面,应该是没有东西的
notion image
图片.png
尝试目录扫描,正常目录没扫出东西,隐藏目录发现了一个.dev
访问.dev.dev的源码
notion image
图片.png
notion image
图片.png
没有头绪,继续尝试目录遍历查看是否 .dev/ 是一个目录,第一遍返回很多垃圾,过滤完响应大小后,扫半天终于出了个页面

漏洞利用

代码审计与参数枚举

尝试访问一下debugger.php ,说是只支持post方法
notion image
图片.png
使用post方法,提示我们没有提供适当的参数,使用wfuzz工具进行枚举,发现没用,看PL4GU3大佬的的解题视频,发现原来是要有两个参数,这里爆破太慢了
尝试上传指令
access=whoami 被解析为 imaohw值被反转了,同时 cmd=id 没有被执行,将输入的指令替换成php语言的反转一下再发送,状态码变为200说明执行成功,可以推断出服务器代码可能包含一段逻辑,大致像这样
notion image
图片.png
notion image
图片.png
所有我们尝试传入可以使用cmd执行的函数,例如:
exec()
执行命令,不直接输出,可以捕获结果
passthru()
执行命令并直接输出到页面(适合用来查看命令行输出)
shell_exec()
执行命令并返回完整输出为字符串
system()
执行命令并立即输出每行内容,也可以返回最后一行
backticks(反引号)
这是一种 PHP 语法糖,和 shell_exec() 类似
最后试出来是passthru
(注意这里不能有换行,也会识别进去导致失效)

绕过过滤

先查看当前目录的东西,尝试获取debugger.php页面的源码,发现没回显,尝试查看passwd同样没有回显,怀疑有过滤
notion image
图片.png
notion image
图片.png
notion image
图片.png
尝试base64加密绕过没效果,使用使用 cat + $(...) 混淆 绕过目标/etc/passwd
怀疑/被过滤,常规为
echo .etc.passwd ➜ 输出 .etc.passwd
tr '.' '/' ➜ 替换成 /etc/passwd
cat $(...) ➜ 实际执行:cat /etc/passwd
这里使用tr映射的方法,选取两个范围一致的字符集将 . 和 / 对应起来
notion image
图片.png
notion image
图片.png
notion image
图片.png
再次尝试获取debugger.php页面源码,成功获取
过滤逻辑:会将提交的命令中出现的这些关键字全删掉:
  • 命令:nc, whoami, curl, ping, pwd, hostname, sh, base
  • 符号::, \/,

反弹Shell

有sh,传入混淆并url编码后的shell
notion image
图片.png

权限提升

Cron作业劫持

搜寻一番后无果,上传软件脚本帮助测试
uid表示为非root用户,发现重复执行相同脚本,通过binwalk递归(-M)提取 /opt/RE/walk.zip 中的嵌套文件,将autobin.sh复制出来,写入反弹命令到脚本,再监听一下,成功进入 trumpeter用户,拿到第一个flag

Sudo提权 (CVE-2021-3156)

列出当前用户在该系统上可以使用 sudo 执行的命令
发现可以 sudo 执行 /usr/sbin/findfs,且无需密码(NOPASSWDfindfs 可能会触发底层工具如 blkid 或尝试挂载可以结合恶意文件系统镜像,但无法自动挂载手动又没权限,无果
查看sudo版本发现sudo版本过低,存在CVE-2021-3156
去github上拿个exphttps://github.com/worawit/CVE-2021-3156,得到提权用户

Loading...