无参REC

REC我个人理解就是命令执行函数的意思
在这里插入图片描述

无参rce,其实就是没有函数并且执行函数命令的情况,大多数就是因为上面的这一类的数的出现而直接不能使用参数,所以让我们只能使用a(b());的形式而不能是a(‘5’);,
而用什么来传递参数呢?,一般就是get和post是最常见的,其次就是httpheaders,
上面图片里面的,就是把参数都匹配成空,所以我们只能使用一些没有参数也能执行的函数来执行命令

?exp=highlight_file(next(array_reverse(scandir(current(localeconv())))));
输出获取的文件(输出下一个的元素(相反顺序返回元素(列出目录和文件(返回元素的值(返回目标的数组)))))
localeconv():返回包含本地数字级货币格式的数组,把数组返回来
current():返回数组中当前元素的值,把值给返回来
scandir的使用是至少必需要有一个directory的
array_reverse():以相反元素顺序返回数组scandir():成功就返回文件和目录的数组
next():将内部指针指向数组的下一个元素,并输出,将数组中的内部指针向前移动一位
highlight_file:返回输出高亮的文件

?exp=highlight_file(array_rand随机取出一个单元(array_flip(scandir(current(localeconv())))));这个也是一样的,
反正两个链都是能成功输出的,而且并没有用到什么参数

array_reverse ( array $array [, bool $preserve_keys = FALSE ] ) :
arrayarray_reverse() 接受数组 array 作为输入并返回一个单元为相反顺序的新数组。
array_flip() 交换数组的键和值
array_rand() 从数组中随机取出一个或多个单元,不断刷新访问就会不断随机返回

session_id可以获取PHPSESSID的值,而我们知道PHPSESSID允许字母和数字出现,而flag.php符合条件.因此我们在请求包中cookie:PHPSESSID=flag.php,使用session之前需要通过session_start()告诉PHP使用session,php默认是不主动使用session的。session_id()可以获取到当前的session id。这样可以构造payload:?
exp=readfile(session_id(session_start()));
读取该文件《——获取session《——开始获取session
达到任意文件读取的效果:(不过这个好像有时候不太好用,我觉得可能是session的问题)

1、getallheaders()
配合implode能够直接将getallheaders()返回的数组转化为字符串。
2、get_defined_vars()
get_defined_vars():把定义变量的数组全都返回
Current:返回当前单元

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值