首页 > 其他分享 >Web命令执行笔记(持续更新)

Web命令执行笔记(持续更新)

时间:2024-05-02 10:22:46浏览次数:23  
标签:Web 笔记 转义序列 更新 命令 ls 字符串 八进制 Bash

Web命令执行笔记

会将web命令执行的题目放到这篇博客来记录,方便自己日后查阅。

XYCTF-ezRCE(只允许数字、$、<、\)

<?php
highlight_file(__FILE__);
function waf($cmd){
    $white_list = ['0','1','2','3','4','5','6','7','8','9','\\','\'','$','<']; 
    $cmd_char = str_split($cmd);
    foreach($cmd_char as $char){
        if (!in_array($char, $white_list)){
            die("really ez?");
        }
    }
    return $cmd;
}
$cmd=waf($_GET["cmd"]);
system($cmd);
  1. 八进制转义序列: 八进制转义序列以反斜杠 \ 开头,后面跟着一到三个八进制数字(0-7)。例如,\101 表示ASCII字符'A'(十进制的65)。
  2. 十六进制转义序列: 十六进制转义序列以 \x\X 开头,后面跟着一到两个十六进制数字(0-9,A-F,a-f)。例如,\x41\X41 都表示字符 'A'。

$'\154\163'就可以执行ls命令,第一个$用来转义,后面是ls

<<<:这是 Bash 中的 "here string" 语法,它允许你将一个字符串传递给一个命令作为输入,而不是从文件中读取或作为命令行参数。

$0<<<'ls'

$0<<<$'\154\163' #第二行比第一行多一个$,这个$是转义的意思。

$0其实就是脚本本身的名字,在命令行中,它一般是bash

所以$0<<<$'\154\163'其实就是bash<<<$'\154\163'

这行代码 bash<<<$'\154\163' 是在Bash shell中使用Here String的一种方式,用于向Bash直接传递一个包含转义序列的字符串作为输入。

  • bash: 指的是Bash shell本身,这里作为接收输入的命令。
  • <<<: Here String操作符,它允许你将跟在其后的字符串作为命令的标准输入。
  • $'...': 这种引号内的字符串允许使用C语言风格的转义序列。\154\163 分别代表ASCII码的八进制表示,对应字符'l'(小写的L)和's'。

因此,$'\154\163' 解释后就是字符串 "ls"。所以整行命令的意思是直接通过Bash执行字符串 "ls" 作为命令输入,等同于在终端直接输入 ls 命令,通常用于列出当前目录下的文件和目录。

?cmd=$0<<<$'\143\141\164\040\057\52' #就是在执行$0<<<'cat fl*'

更多用法和更详细的解释:https://xz.aliyun.com/t/12242

标签:Web,笔记,转义序列,更新,命令,ls,字符串,八进制,Bash
From: https://www.cnblogs.com/xiaochange/p/18169989

相关文章

  • 《自动机理论、语言和计算导论》阅读笔记:p215-p351
    《自动机理论、语言和计算导论》学习第11天,p215-p351总结,总计37页。一、技术总结1.constrainedproblem2.Fermat'slatstheoremFermat'sLastTheoremstatesthatnothreepositiveintegersa,bandcsatisfytheequationa^n+b^n=c^nforanyintegervalue......
  • 网课-组合数学学习笔记
    排列\[A_n^m=\dfrac{n!}{(n-m)!}\]组合\[\dbinom{n}{m}=\dfrac{n!}{(n-m)!}\]下降幂&上升幂\[\]二项式定理隔板法如果隔板法的每个间隔有下界(下界可以不同),可以先把下界从整体减去。P5520[yLOI2019]青原樱:可将树看作隔板。环排列\(n\)的长度,\(m\)种颜色。可以......
  • 读天才与算法:人脑与AI的数学思维笔记15_声响的数学之旅
    1. 音乐1.1. 巴赫的作品以严格的对位著称,他十分中意对称的结构1.2. 巴托克的作品很多都以黄金比例为结构基础,他非常喜欢并善于使用斐波纳契数列1.3. 有时,作曲家是本能地或者不自知地被数学的模式和结构所吸引,而他们并没有意识到这些数学模式的意义1.4. 有时,他们主动去寻......
  • 19.3 ADG备库,数据文件SCN不更新(Bug: 29056767),导致备库异常重启后,需要重新apply很久
    故障现象:一套19.3ADG备库,备库安装完集群补丁重启后,发现需要重新apply很久以前的归档日志。分析过程:1、备库安装完补丁后,启动备库的日志恢复功能,在启动过程中报错,详细的日志如下所示。2024-04-16T18:34:40.895637+08:00BeginningStandbyCrashRecovery. Startedlogm......
  • Unity 热更--AssetBundle学习笔记 0.7
    AssetBundleAB包是什么?AssetBundle又称AB包,是Unity提供的一种用于存储资源的资源压缩包。Unity中的AssetBundle系统是对资源管理的一种扩展,通过将资源分布在不同的AB包中可以最大程度地减少运行时的内存压力,可以动态地加载和卸载AB包,继而有选择地加载内容。AB包的优势有哪些?......
  • webapi创建和调用WebService
    首先需要引入soapcore包这个包提供了所需的类和soap终结点中间件。引入这个这个包之后,我们需要定义提供的服务。这里我写了一个用于查询省份面积的服务。省份信息服务///<summary>///省份信息服务接口///</summary>[ServiceContract]publicinterfaceIProvinceInfo......
  • ROS2官方文档阅读笔记:Managed nodes
    原文目录ManagednodesstatetransitionManagednodes这篇文章讲解了节点的生命周期蓝色方块里的被称为PrimaryState,即基本状态黄色方块里的被称为transition,即转换state在这里总结一下的节点的各个状态:1.一旦节点被实例化,则到达unconfigured的状态2.经过转换(transitio......
  • Web Audio API
    WebAudioAPI:控制Web上的音频提供了一个功能强大的通用系统,允许开发人员选择音频源,为音频添加效果,创建音频可视化,应用空间效果(如平移)等等(oscillator)振荡器播放声音<buttontype="button"class="btn-play">play</button><script>//WebAudioAPI//创建一个Au......
  • Reverse学习笔记
    Reverse学习笔记rc4rc4通用脚本defrc4(data,key):S=list(range(256))j=0out=[]foriinrange(256):j=(j+S[i]+key[i%len(key)])%256S[i],S[j]=S[j],S[i]i=j=0forcharindata:i=(......
  • C#学习笔记-字段、属性、索引器
    字段字段表示与对象或者类型(类或结构体)关联的变量(成员变量),为对象或类型存储数据。与对象关联的字段称为“实例字段”,隶属于某个对象。与类型关联的字段称为“静态字段”,表示某一个类型当前的状态。静态字段使用static关键字修饰。字段在没有显示初始化的情况下会获得......