无字母数字webshell之命令执行
源码
题目限制:
- webshell长度不超过35位
- 除了不包含字母数字,还不能包含
$
和_
这里使用php5来解决
可以围绕以下两点展开:
- shell下可以利用
.
来执行任意脚本 - Linux文件名支持用glob通配符代替
.
或者叫period,它的作用和source一样,就是用当前的shell执行一个文件中的命令。比如,当前运行的shell是bash,则. file
的意思就是用bash执行file文件中的命令
并且用. file
执行文件,是不需要file有x权限的
我们可以发送一个上传文件的POST包,此时PHP会将我们上传的文件保存在临时文件夹下,默认的文件名是/tmp/phpXXXXXX
由于执行该命令也需要用到字母,那此时可以用到glob通配符
1.*
可以代替0个及以上任意字符
2.?
可以代表1个任意字符
这是由于能够匹配上/???/?????????
这个通配符的文件有很多,如果先匹配到别的文件则会出现错误,导致整个流程停止,根本不会执行到我们上传的文件。
通过ASCII码表可得知,大写字母位于@
与[
之间
先创建一个文件(文件名要对上),测试
构造POC,执行任意命令
php生成临时文件名是随机的,最后一个字符不一定是大写字母
复现漏洞还需要用于存放shell命令的文件以及用于提交表单的html
这里把提交的表单数据复制过来
需要将request中的get改为post,因为get提交没有临时文件。这里post作为请求体,而code作为get传参,执行完后才会删除临时文件
code为
`?><?=`. +/???/????????[@-[]`;?>`
get传参需要url编码
第一个?>为闭合,+为空格编码
通过eval()执行反引号从而执行系统命令
在burpsuite中可以不转码
注意:这里的POST与GET参数是并行的
想要查看临时文件是否生成,可以用sleep()函数
相关文章:

无字母数字webshell之命令执行
源码 题目限制: webshell长度不超过35位除了不包含字母数字,还不能包含$和_ 这里使用php5来解决 可以围绕以下两点展开: shell下可以利用.来执行任意脚本Linux文件名支持用glob通配符代替 .或者叫period,它的作用和source一样…...

华为OD笔试
机试总分400。三道题目。100+100+200 华为od考试时间为150分钟,共有三道编程题,分数分别为100、100和200。如果你是目标院校(查看目标院校请戳)的话,及格线是160分,非目标院校则不确…...

HAProxy理论+实验
目录 一、基于cookie的会话保持 1、配置选项 2、配置示例 3、验证cookie信息 二、IP透传 1、layer4 与 layer7 (1)四层:IPPORT转发 (2)七层:协议内容交换 三、haproxy的ACL应用 1、ACL配置选项 (1…...

Spring Boot ⽇志
1. ⽇志概述 为什么要学习⽇志 ⽇志对我们来说并不陌⽣, 从JavaSE部分, 我们就在使⽤ System.out.print 来打印⽇志了. 通过打 印⽇志来发现和定位问题, 或者根据⽇志来分析程序的运⾏过程. 在Spring的学习中, 也经常根据控制台 的⽇志来分析和定位问题. 随着项⽬的复杂…...

最详细!教你学习haproxy七层代理
一、工作原理 (1)包括 监听端口:HAProxy 会在指定的端口上监听客户端的请求。 例如,它可以监听常见的 HTTP 和 HTTPS 端口,等待客户端连接。请求接收:当客户端发起请求时,HAProxy 接收到请求。…...
ElementUI 事件回调函数传参技巧与自定义参数应用
ElementUI 事件回调函数传参技巧与自定义参数应用 在使用elementUI时,事件回调函数传递参数是一个常见的需求。根据搜索结果,我们可以了解到两种主要的方法来传递自定义参数: 使用回调函数:当elementUI组件触发事件时,…...

优化Next的webpack配置
众所周知,next的webpack打包实际上分成了两个部分,一个是服务器端、一个是客户端,我们这里的配置主要是针对客户端的配置。 目的在于降低_app.js包大小,合理划分基础包、工具包、常用方法包、拆分lodash按需引入效果。 拆分lodas…...

Q-Dir vs 传统文件管理器:为何开发者更偏爱这款神器?
前言 在这个信息爆炸的时代,我们每天都在与海量的文件和文件夹打交道;你是否曾经为了找一个文件而翻遍了整个硬盘?是否因为繁琐的文件夹操作而头疼不已?今天,就让我小江湖带你走进一个全新的世界——Q-Dir,…...
日常疑问小记录
1、在抢票过程中,有些人显示服务器崩溃而另一些人仍能访问,可能是由于以下几个原因: (1)负载均衡:服务器可能采用了负载均衡技术,将用户请求分配到多个服务器上。部分用户可能被引导到正常运行…...

Java Web —— 第四天(HTTP协议,Tomcat)
HTTP-概述 概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则 特点: 1. 基于TCP协议:面向连接,安全 2.基于请求-响应模型的:一次请求对应一次响应 3. HTTP协议是无状态的协议: 对于事务处理没有…...

C++ list的基本使用
目录 1.list简要介绍 2. list的构造 3. list中迭代器的使用 (1). 双向迭代器与随机访问迭代器使用区别 4.判空、获取元素个数 5. list头、尾元素的访问 6. 插入与删除操作 (1). 头插头删,尾插尾删 (2). 插入,删除与清空 (3). 交换 7. list容器迭代…...
云中韧性:Spring Cloud服务调用重试机制深度解析
标题:云中韧性:Spring Cloud服务调用重试机制深度解析 在微服务架构中,服务间的调用可能会因为网络问题、服务不可达、资源竞争等原因失败。Spring Cloud作为微服务架构的主流实现框架,提供了一套完整的服务调用重试机制…...

83.SAP ABAP从前台找字段所在表的两种方法整理笔记
目录 方法1:F1查看技术信息 F1 技术信息 方法2:ST05开启跟踪 Activate Trace Input and save data Deactivate Trace Display Trace 分析你想要的表 方法1:F1查看技术信息 从前台找一个屏幕字段所在表,一般通过按F1来查找…...
docker为普通用户设置sudo权限
在 Linux 上使用 Docker 命令时,默认情况下需要 sudo 权限。这是因为 Docker 守护进程(Docker daemon)通常运行在 root 用户下,而访问和管理 Docker 守护进程的权限也默认被限制给 root 用户。 然而,为了方便日常使用…...
Nginx + PHP 8.0支持视频上传
在 Ubuntu 20.04 上配置 Nginx PHP 8.0 的架构以支持视频上传,需要从 Nginx 和 PHP 两个方面进行配置,以确保服务器能够处理大文件上传。以下是详细的步骤: 1. Nginx 配置 1.1 增加上传文件大小限制 默认情况下,Nginx 对上传文…...
MySQL基础详解(3)
文章目录 索引普通索引创建索引修改表结构(添加索引)创建表的时候直接指定删除索引的语法 唯一索引创建索引修改表结构创建表的时候直接指定 使用ALTER 命令添加和删除索引使用ALTER 命令添加和删除主键显示索引信息 约束非空约束:唯一约束:主键约束&…...

傅里叶变换结合数学形态学进行边缘增强和边缘提取
一、前言 傅里叶变换是图像变换的一种常用方法,傅里叶变换在图像处理中扮演着核心角色,它通过将图像从空间域转换到频率域,获取图像的频率成分,因为有些特征在空间域很难处理,但在频率域比较容易处理。这一转换有助于分…...

Haproxy的ACL介绍及应用实例
一、ACL介绍 访问控制列表ACL,Access Control Lists) 是一种基于包过滤的访问控制技术 它可以根据设定的条件对经过服务器传输的数据包进行过滤(条件匹配)即对接收到的报文进行匹配和过 滤,基于请求报文头部中的源地址、源端口、目标地址、目…...
final finally finalize 区别?
final: final 是一个修饰符,可以用于类、方法和变量。当final修饰类时,表示该类不能被继承。当final修饰方法时,表示该方法不能被子类覆盖(重写)。当final修饰变量时,表示该变量是一个常量,其值…...

C语言常用的内存函数
在上一篇博客中我为大家分享了一些常用的字符串函数,以及它们的用法和模拟实现。通过字符串函数中的strcpy,我们能够做到将一个字符串中的内容拷贝到另一个字符串上,可如果有一天我们想把一个整型数组中的内容拷贝到另一个整型数组中呢&#…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...