首页 > 其他分享 >RCE绕过

RCE绕过

时间:2024-10-26 19:50:00浏览次数:3  
标签:函数 cat 异或 字符串 RCE 绕过 执行

一 ·漏洞原理:

        可以让攻击者直接向后台服务器直接注入操作命令或者代码,从而实现控制后台系统。

常见的系统命令执行函数:

        system():能将字符串作为OS命令执行,且返回命令执行结果。对某些指令进行执行的函数,比如:ls、cat、whoami、ifconfig等指令;

        exec():能将字符串作为OS命令执行,但是只返回执行结果的最后一行(约等于无回显);

        shell_exec():能将字符串作为OS命令执行与``作用相同,但无回显,需要echo或其他的输出函数使得其回显;

        反引号中的字符会被解析成OS命令

常见的代码执行函数:

       eval():将字符串作为php代码执行;

       assert():将字符串作为php代码执行;

       preg_replace():正则匹配替换字符串;

       create_function():主要创建匿名函数;

       call_user_func():回调函数,第一个参数为函数名,第二个参数为函数的参数;

       call_user_func_array():回调函数,第一个参数为函数名,第二个参数为函数参数的数组;

二·RCE绕过

管道符

管道符

实例

描述

;

A;B

无论真假,A与B都执行

&

A&B

无论真假,A与B都执行

&&

A&&B

A为真时才执行B,否则只执行A

|

A|B

显示B的执行结果

||

A||B

A为假时才执行B,否则只执行A

cat替换命令

more:一页一页输出

less

cat

tac:是cat的反向显示

head:查看头几行

tail:查看尾几行

vi

vim

nl:显示时同时输出行号

od:二进制方式查看

sort

uniq

空格过滤

以下可代替空格

<

<>

%20(即space)

%09(即tab)

$IFS$9

${IFS}

$IFS

{cat,/flag}

        

无回显RCE

    //无回显RCE,如exce()函数,可将执行结果输出到文件再访问文件执行以下命令后访问1.txt

  1.      1.   ls / | tee 1.txt
  2.   cat /flag | tee 2.txt
  3.   //eval()无输出
  4.   eval(print`c\at /flag`;)

无参数RCE

        无参数RCE通常发生在应用程序未能正确验证用户输入的情况下,当攻击者利用精心构造的数据输入触发了意外的执行代码路径。  利用getallheaders()、get_defined_vars()、session_id等;

正则绕过

1.取反绕过

        符号“~”可以将URL编码取反,并且PHP函数中的urlencode可以将字符进行编码,所以我们可以先用命令将其取反,随后使用~再次取反从而实现绕过。以下是php脚本:

<?php
$a = "system";
$b = "('cat /flag')";
echo urlencode(~$a);
print("\n");
echo urlencode(~$b);

2.异或绕过

        在PHP中,对两个字符串进行异或操作,结果仍然是一个字符串。如果正则表达式过滤掉了所有的字母和数字,可以通过选择两个非字母数字的字符进行异或操作,得到任意想要的字母或数字。比如如果想要得到字母a,可以找到两个非字母数字的字符,它们的异或结果为a。在ASCII表中,a的十进制值是97,二进制是01100001。可以选择两个字符,比如@!,它们的ASCII值分别是64和33,二进制分别是0100000000100001。按照异或规则,这两个字符异或的结果正好是a。

黑名单绕过

        关于黑名单绕过,这是一种网络安全领域中常见的攻击手段,用于规避服务器上设置的文件上传限制。通常,服务器会设定一个黑名单,列出不允许上传的文件类型,以防止恶意文件的上传。然而,攻击者可能会尝试使用各种技术来绕过这些限制。

        1.0X0截断:0x开头表示16进制,0在十六进制中是00, 0x00就是%00解码成的16进制。在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束。

        2.双写绕过:攻击者可能会尝试上传文件名中包含重复后缀的文件,例如shell.pphphp,利用服务器处理文件名时的漏洞来绕过黑名单。

        3.大小写绕过:由于某些服务器对文件名的大小写不敏感,攻击者可能会尝试通过改变文件后缀的大小写来绕过黑名单,例如使用.PhP代替.php。

标签:函数,cat,异或,字符串,RCE,绕过,执行
From: https://blog.csdn.net/Fzine/article/details/143255677

相关文章

  • Codeforces Round 980 (Div. 2)
    目录写在前面A签到B贪心,模拟C贪心,结论,思维D图论转化,最短路写在最后写在前面比赛地址:https://codeforces.com/contest/2030。赛时被B硬控1h,后面两题一眼秒了一共写了20min呃呃。还好是小号。A签到讨论一下很容易算出来最优决策。///*By:Luckyblock*/#include......
  • Codeforces Round 981 (Div. 3) 10.24 (ABCDE)题解
    CodeforcesRound981(Div.3)2024.10.24题解A.SakurakoandKosuke题意:\(Sakurako\)与\(Kosuke\)正在玩游戏,一个点在原点\(x=0\)的起始位置。对于第\(i\)次操作,点会移动\(2\asti-1\)步。两人轮流操作,Sakurako先手,每次将点往负方向移动;Kosuke每次将点往正方向移动......
  • Codeforces Round 979 (Div. 2)
    目录写在前面A签到B构造C博弈D模拟E组合数学写在最后写在前面比赛地址:https://codeforces.com/contest/2030。赛时E看错题了变成神题了而且居然还口胡了一个自然根号的做法还写出来了然而样例没过最后才发现读错题了妈的。掉分!A签到\(b,c\)即前缀最小值和最大值,显......
  • 深度学习面试笔试之迁移学习(Transfer)、强化学习(Reinforcement) & 多任务
    深度学习面试笔试之迁移学习Transfer、强化学习Reinforcement&多任务13.迁移学习(Transfer)1.什么是迁移学习2.为什么需要迁移学习?3.迁移学习的基本问题有哪些?4.迁移学习有哪些常用概念?基本定义按特征空间分类按迁移情景分类按迁移方法分类5.迁移学......
  • Codeforces Round 981 (Div. 3)A-D题解
    CodeforcesRound981(Div.3)A.SakurakoandKosukeSakurakoandKosukedecidedtoplaysomegameswithadotonacoordinateline.Thedotiscurrentlylocatedinposition\(x=0\).Theywillbetakingturns,andSakurakowillbetheonetostart.Ont......
  • Codeforces Round 981 (Div. 3) G
    G.SakurakoandChefir因为没有找到类似的题解,顺便记录下来题目给定一棵树,树上有\(n\)个顶点,以顶点\(1\)为根。樱子带着她的猫Chefir穿过这棵树,樱子走神了,Chefir跑开了。为了帮助樱子,浩介记录了他的\(q\)次猜测。在\(i\)次猜测中,他假设Chefir在顶点\(v_i\)迷路,......
  • 【问题排查】-bash: fork: retry: Resource temporarily unavailable 记录一下
    ●最初现象,ssh端口异常,登录机器出现如下,执行每一个命令都会有这个错,最终就是关闭终端后无法在连接,只能重启释放资源●查看kernel.threads-max(每个进程中最多创建的的线程数目)●top-H查看每个线程的资源使用情况,发现达到了当前系统限制30938●修改threads-max,sy......
  • vs编译项目失败,提示 要求“SourceRoot”路径以斜杠或反斜杠结尾
    从git上下载部分项目编译时出现错误,提示如下:严重性代码说明项目文件行禁止显示状态详细信息错误(活动) 要求“SourceRoot”路径以斜杠或反斜杠结尾:“E:\dev_tools\.nuget\packages” MahApps.Metro(net462),MahApps.Metro(net6.0-windows),MahApps.Metro(net8.0-wi......
  • bypass waf测试_rce
    前言以下验证绕过效果都使用开源雷池waf知己知彼百战百胜,想bypasswaf还是得先了解wafwaf是什么WAF(WebApplicationFirewall,WEB应用防火墙)会过滤和监测Web应用程序与互联网之间的HTTP/HTTPS流量,以此来保护Web应用程序安全。它通常会保护Web应用程序免受各种形式的攻击,......
  • 【CodeForces训练记录VP】Codeforces Round 933 (Div. 3)
    https://codeforces.com/contest/1941训练情况50min后罚坐反思C题刚开始思路错了,以为是删字符串最后面,然后漏考虑掉两字符串部分拼接的情况A题直接模拟,求\(a_i+b_j\lek\)的对数。#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;voidsolve......