无参RCE函数

无参RCE

无参RCE就是无法使用参数,只能使用函数来达到命令执行的效果

函数

localeconv()

这个函数可以获取当前地区的数字和货币信息

**传入值:**无需传入参数

**返回值:**返回内容是一个包含众多格式化设置的关联数组

数组中的第一个元素是点

1
localeconv()

image-20250416003019393

current()

获取数组的当前元素

**传入值:**一个数组

**返回值:**这个函数会返回数组中的当前元素,在每一个数组中都有一个内部指针指向这某个元素,默认情况下指向第一个元素

这个可以与localeconv()搭配使用,从而获取localeconv()返回的数组中的第一个元素点.

1
current(localeconv())

image-20250416004146301

pos()

这个函数是current() 的别名函数,和其作用一样是获取数组的当前元素

**传入值:**一个数组

**返回值:**这个函数会返回数组中的当前元素,在每一个数组中都有一个内部指针指向这某个元素,默认情况下指向第一个元素

1
pos(localeconv())

image-20250416134932036

scandir()

这个函数可以获取当前目录的文件和子目录

**传入值:**接收参数是要扫描的路径

**返回值:**返回值是该目录包含的文件和目录的数组

1
scandir('.')

image-20250416002528162

因为是无参RCE,所以引号和点这些符号可能会禁用,就要和localeconv()current搭配使用

1
scandir(current(localeconv()))

image-20250416004214299

glob()

这是一个用于文件路径名模式匹配的函数,可以获取包含匹配文件路径的数组

**传入值:**要匹配的文件路径名

**返回值:**一个包含匹配文件路径的数组

1
glob('*')

image-20250416145431516

getcwd()

获取当前工作目录的绝对路径

**传入值:**这个函数无需传入参数

**返回值:**会返回当前工作目录的绝对路径

1
getcwd()

image-20250416004954555

dirname()

获取路径中的目录部分

**传入值:**这个函数会接收一个路径参数

**返回值:**返回路径中的目录部分

可以和getcwd()搭配使用

1
dirname(getcwd())

image-20250416004933056

array_flip()

这个函数可以交换数组中键和值的位置

**传入值:**会接收一个数组

**返回值:**返回一个键和值交换位置的数组

可以和scandir(current(localeconv()))搭配使用

1
array_flip(scandir(current(localeconv())))

image-20250416005304766

array_reverse()

这个函数会将数组中的元素颠倒过来

**传入值:**接收一个数组

**返回值:**返回一个颠倒的数组

当要选取的文件在靠后的位置时,可以使用这个函数使其提前

可以和array_flip(scandir(current(localeconv())))搭配使用,

1
array_reverse(array_flip(scandir(current(localeconv()))))

image-20250416010045017

array_rand()

这个函数可以从一个数组中随机抽取一个或多个键

**传入值:**会接收一个数组,如果没有指定选取键的数量会默认为1

**返回值:**会返回随机选取的键

可以和array_rand(array_flip(scandir(current(localeconv()))))搭配使用,从而达到随机选取文件的效果

1
array_rand(array_flip(scandir(current(localeconv()))))

image-20250416005715362

chdir()

这个函数会改变当前脚本的工作目录

**传入值:**需要接收目标目录的路径

**返回值:**返回值是布尔类型

1
chdir()

image-20250416134329290

strrev()

这个函数可以将字符串反转

**传入值:**要进行反转的字符串

**返回值:**反转后的字符串

1
strrev("Hello")

image-20250416134617004

end()

可以将数组内部指针移动到最后一个元素

**传入值:**要操作的数组

**返回值:**返回数组的最后一个元素的值

1
end(scandir(current(localeconv())))

image-20250416150215077

image-20250416150230880

next()

可以将数组的内部指针向前移动一位

**传入值:**要操作的数组

**返回值:**返回移动后内部指针所指向的元素的值,如果超出数组范围会返回false

1
next(scandir(current(localeconv())))

image-20250416150716805

prev()

将数组的内部指针倒回一位

**传入值:**要操作的数组

**返回值:**返回倒回后内部指针指向的元素的值,如果超出数组范围会返回false

reset()

将数组内部指针重置到第一个元素

**传入值:**要操作的数组

**返回值:**返回重置后的内部指针指向的元素的值,即数组第一个元素的值

each()

可以获取当前数组内部指针指向的元素的键和值,并将指针向后移动一位

**传入值:**要操作的数组

**返回值:**返回一个包含四个元素的数组,键 0key 对应元素的键,键 1value 对应元素的值。如果数组指针已经超出数组范围,返回 false

1
each(scandir(current(localeconv())))

image-20250416152519020

ord()

获取字符串中第一个字符的ASCII码值

**传入值:**要处理的字符串

**返回值:**字符串中第一个字符的ASCII码值

1
ord(end(scandir(current(localeconv()))))

image-20250416152845903

chr()

ord()函数功能相反,这个函数是将ASCII码值转化为字符

**传入值:**ASCII码值

**返回值:**返回ASCII码值对应的字符

1
chr(ord(end(scandir(current(localeconv())))))

image-20250416153117794

getallheaders()

这个函数可以获取全部的 HTTP 请求头

**传入值:**无需传入参数

**返回值:**会返回一个包含请求头的数组,键为请求头,值为请求头的值

不过这个函数只能在 Apache 环境中使用,其他环境不能用

image-20250416002041599

get_defined_vars()

这个函数可以返回所有已定义变量的数组,包括全局变量、局部变量、超全局变量等

**传入值:**不需要传入参数

**返回值:**返回一个包含所有已定义变量的关联数组

不过这个函数只能在 Apache 环境中使用,其他环境不能用

1
get_defined_vars()

image-20250416161045908

session_id()

这个函数可以获取或设置当前会话的 Session ID

**传入值:**不需要传入参数

**返回值:**返回当前会话的 ID,如果没有就会返回一个空字符串

1
session_id()

image-20250416161445970

读取文件内容函数

  • highlight_file()
  • show_source()
  • readfile()

无参RCE函数
https://yschen20.github.io/2025/04/29/无参RCE函数/
作者
Suzen
发布于
2025年4月29日
更新于
2025年4月29日
许可协议