php无字母数字rce绕过基础操作

1、 source命令

用法:source filename

表示在当前bash环境下读取并执行filename中的命令

该命令通常用命令"."来替代,即 . filename

2、?通配符

主要有星号(*)和问号(?),用来模糊搜索文件

星号"*"指代任意字符数,问号"?"指代1个字符

波浪线"~"则用来将问号和星号转换为普通字符,而不是作为通配符使用

比如我们要cat一个flag东西但是不知道具体名字,只知道以f开头

可以 cat /f* 则会匹配所有以f开头的文件

有时候还会遇到很多字母被过滤了也可以使用?来进行匹配

比如只能使用o这一个字母, /???/??oo?/??o? 就可以匹配到 /var/spool/cron(假设该路径存在)

3、<?=的用法

命令执行方式有:system('ls'); echo('ls');

<?= 是echo()的别名用法

所以 system('ls'); 还可以写成?><?=`ls`;

前面的 ?> 是为了闭合前面的php语句,后面则为执行命令的语句

4、``反引号

反引号``(tab键上面的那个)

在php中,反引号可以直接命令执行系统命令,反引号的作用是命令替换,将其中的字符串当成shell命令执行,返回命令的执行结果。反引号包括的字符串必须是能执行的shell命令,如果不是则会出错。

比如:<?= `ls` ?> 就会执行ls命令

但是如果想要输出执行结果还需要使用 echo 函数

<?php echo `ls`;?> 或者 <?= echo `ls`?>

5、 php标签

在php中,<? ?>称为短标签,<?php ?>称为长标签。

当关键字 "php" 被过滤了之后,此时我们便不能使用<?php ?>了,但是我们可以用另外两种短标签进行绕过,并且在短标签中的代码不需要使用分号(;)。

6、+在url中表示空格

url中的+表示空格,而要表示+号必须得用%2B,即URL编码

相关推荐
JaguarJack9 小时前
为什么 PHP 闭包要加 static?
后端·php·服务端
雨中飘荡的记忆14 小时前
正则表达式入门到实战
正则表达式
ServBay1 天前
垃圾堆里编码?真的不要怪 PHP 不行
后端·php
用户962377954482 天前
CTF 伪协议
php
BingoGo4 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack4 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo5 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack5 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack6 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo6 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php