首页 > 其他分享 >RCE漏洞简介

RCE漏洞简介

时间:2024-06-07 23:29:50浏览次数:30  
标签:执行 函数 漏洞 简介 命令 PHP RCE txt

RCE漏洞基本概念

命令执行漏洞是指攻击者可以随意执行系统命令,氛围远程代码执行和系统命令执行,黑客可以直接在web应用中执行系统命令,从而获取敏感信息或者拿下shell权限。

程序应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell exec、passthru、popen、proc _popen等,当用户能控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击

由于开发人员编写源码时,没有针对代码中可执行的特殊函数入口做过滤,导致客户端可以提交恶意构造语句,并提交服务端执行

命令注入攻击中,Web服务器没有过滤类似system、eval和exec等函数,是该漏洞攻击成功的主要原因。

利用条件:

  • 应该调用执行系统命令的函数

  • 将用户输入作为系统命令的参数拼接到了命令行中

  • 没有对用户输入进行过滤或过滤不严

漏洞产生的原因

一、代码层过滤不严

  • 商业应用的一些核心代码封装在二进制文件中,在web应用中通过system函数来调用: system(“/bin/program --arg $arg”);

二、系统的漏洞造成命令注入

  • bash破壳漏洞(CVE-2014-6271)

三、调用的第三方组件存在代码执行漏洞

  • 如wordPress中用来处理图片的imageMagick组件

  • JAVA中的命令执行漏洞(struts2/ElasticsearchGroovy等)

  • ThinkPHP命令执行

php命令执行

Windown 命令连接符

一、&
  • 无论左边是false还是true,右边都执行,按顺序执行

二、&&
  • 具有短路效果,左边是false,右边不执行

三、|
  • 表示A命令语句的输出,作为B命令语句的输入执行。当A为false的时候将不会执

四、||
  • AIIB,表示A命令语句执行失败,然后才执行B命令语句。

Linux 命令连接符

一、&
  • 在后台运行

二、;
  • 分号(;)可以进行多条命令的无关联执行,每一条执行结果不会影响其他命令的执行

三、&&
  • 按照顺序执行,如果前面应该正确就会执行下一个,如果错误那么就不会执行下一个

四、||
  • 如果||左边的命令执行失败(返回1表示失败),才执行|右边的命令,否则不执行右边的命令,具有短路功能。

五、()
  • 如果想执行几个命令,则需要用命令分隔符分号隔开每个命令,并使用圆括号()把所有命令组合起来

rce 绕过

在执行命令的时候可能会过滤空格,或一些命令,这时候就需要绕过

一、空格过滤

1、${IFS}

  • cat${IFS}flag.txt

2、重定向符<>

  • cat<>flag.txt

3、%09(需要PHP环境)

  • cat%09flag.txt

二、黑名单绕过
  • 拼接

    • A=c;b=at;c=fla;d=g.txt;$a$b $c$d

  • base64编码

    • echo 'Y2F0IGZsYWcudHh0==' |base64 -d

  • 单引号、双引号

    • cat ' 't fla " " g.txt

  • 反斜线

    • cat\t fla \g.txt

  • $1,$2等和 $@

三、读文件绕过

当cat命令被拦截时,可以使用其它的一些命令

  • More

  • Less

  • Head

  • Tac

  • Tail

  • Nl

  • 0d

  • Vi

  • Vim

  • Sort

  • Uniq

  • File -f

四、通配符绕过
  • ?字符代表单个字符

  • *字符代表任意数量的字符

  • [...]匹配方括号之中的任意一个字符

  • #存在文件a.txt和 b.txt

  • $ ls [ab].txt

  • a.txt b.txt

  • $ Is *[ab].txt

  • ab.txt a.txt b.txt

五、内联执行绕过
  • 命令和$(命令)都是执行命令的方式

  • 反引号是命令替换,命令替换是指Shell可以先执行中的命令,将输出结果暂时保存在适当的地方输出。语法:command

漏洞防御

  • 尽量少使用执行命令函数或者禁用disable_functions(php.ini)

  • 在进入执行命令的函数之前,对参数进行过滤,对敏感字符进行转义

  • 参数值尽量使用引号包括,并在拼接前调用addslashe进行转义

标签:执行,函数,漏洞,简介,命令,PHP,RCE,txt
From: https://blog.csdn.net/qq_74342020/article/details/139396314

相关文章

  • 解决Docker遇到error NU1301: Unable to load the service index for source https://
    解决Docker容器内无法通过HTTPS访问外部网络的问题在使用Docker构建.NET项目时,有时会遇到无法通过HTTPS访问外部网络的问题,导致dotnetrestore命令无法从NuGet源下载依赖项。本文将介绍一种通过修改Docker配置文件config.json来解决该问题的方法。问题描述在......
  • DVWA靶场学习(一)—— Brute Force
    BruteForce暴力破解其实就是利用不同的账户和密码进行多次尝试。因为用户在设置密码时可能会选用比较容易记忆的口令,因此,可以使用一些保存常用密码的字典或者结合用户的个人信息进行爆破。DVWA安全等级有Low,Medium,High和Impossible四种,随着安全等级的提高,网站的防护等级和攻击......
  • (FM)Formality 基础知识简介-SVF
            在Formality中,SVF(SetupVerificationforFormality)文件扮演着重要的角色,能够帮工具理解和处理由于其他工具的使用而引入的设计变更。Formality是一个形式验证工具,用于完成表面逻辑的验证,确保在导入RTL代码和DC综合后的门级网表前后逻辑的一致性。而SVF文件,是D......
  • PHP CGI Windows下远程代码执行漏洞
    PHPCGIWindows下远程代码执行漏洞CVE编号:CVE-2024-4577危害定级:高危漏洞标签:发布预警公开漏洞披露日期:2024-06-07推送原因:标签更新:[公开漏洞]=>[发布预警公开漏洞]信息来源:https://www.oscs1024.com/hd/MPS-wk9q-5g71漏洞描述PHP是一种在服务器端执......
  • 分布式事务 实战 - 分布式事务简介
    分布式事务是指涉及多个参与方的系统,其中每个参与方都可能执行多个操作,而这些操作需要在各个参与方之间保持一致性。这种情况下,确保数据的一致性变得复杂而关键。在分布式系统中,由于网络延迟、节点故障等原因,确保所有操作的一致性变得更加具有挑战性。为了处理这种情况,有几......
  • Codeforces Round 950 (Div. 3)G. Yasya and the Mysterious Tree(字典树处理区间异或
    Problem-G-Codeforces存个字典树板子。1#include<bits/stdc++.h>23usingi64=longlong;45constexprintN=1E7;67inttrie[N][2];8intcnt[N][2];910inttot=0;11intnewNode(){12intx=++tot;13trie......
  • Codeforces Round 949 (Div. 2)D. Turtle and Multiplication(欧拉路径、线性筛、思维
    Problem-D-Codeforces  按照官方正解做即可,顺带存个jiangly板子。1#include<bits/stdc++.h>23usingi64=longlong;4std::vector<int>minp,primes;56voidsieve(intn){7minp.assign(n+1,0);8primes.clear();910......
  • 永恒之蓝 MS17-010漏洞复现
    注意:使用Kali机为攻击机,被攻击电脑为win7系统的虚拟机,关闭防火墙扫描端口启动模块查询并使用第一个那个设置攻击负载,设置被攻击的ip,设置攻击者kaliiprun启动等待一下,当显示WIN的时候就是说明已经获得了对方的shell控制权限此时就是获得了一个meterpreter会......
  • Codeforces Round 950 (Div. 3) A B C D E
    A.ProblemGeneratortimelimitpertest:1secondmemorylimitpertest:256megabytesinput:standardinputoutput:standardoutputVladisplanningtoholdm......
  • Codeforces Round 951 (Div. 2)
    A.GuesstheMaximum题意:给定一个数组,求一个k值,k满足对于任意的这个数组的区间的最大值max,k<max。求满足条件的最大k。思路:只考虑长度为2的区间即可。参与到比较中的数值一定是两个数中的大数,从所有大数中选出最小的一个即可。总结:赛时很快就A掉了,但是思考的不够细节,思维太......