RCE代码执行漏和命令执行漏洞

这篇具有很好参考价值的文章主要介绍了RCE代码执行漏和命令执行漏洞。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前置知识:
漏洞检测:
在了解漏洞概念前,应该先知道一下这个漏洞如何检测的,我们应该或多或少听过白盒测试(白盒),黑盒测试(黑盒)。
白盒测试:
白盒测试是对源代码和内部结构的测试,测试人员是可以知道内部的逻辑和结构的,差不多就是代码审计。
黑盒测试:
黑盒测试是对功能需求的测试,测试人员不知道系统内部如何实现的,只知道相应的功能和性能需求,通过模拟用户使用来进行测试。

了解Windows和Linux基本命令
Windows如
ping #测试连通性
tracert #追踪路由
telnet #远程连接
dir #列出目录
ipconfig #查看 ip
arp -a #查看路由表
calc #打开计算器
regedit #打开注册表
netstat -ano #查看服务器端口信息

Linux如
cd #切换目录
ls #显示当前目录下的文件
ifconfig #查看 IP 地址
cat /etc/passwd #查看 password 文件内容
id #查看当前用户的 id 号
cat /etc/group #查看用户组文件内容
pwd #显示当前目录
uname -a #查看当前系统版本
natstat -pantu #查看当前服务器的端口信息
netstat -nr #查看网关和路由

以及拼接符的使用
| 只执行|后面的语句
|| 如果前面语句是错的就执行后面的语句,否则只执行前面的语句
& &前面和后面的语句都会执行,无论前面真假
&& 如果我前面为假后面的语句就不执行了,如果前面为真则执行两条语句
; 前面都执行,无论前面真假

大致了解php语言(当然偶尔上网查一查很正常)

那么随便记录一下魔法变量吧
FILE(左右都是两个下划线的) 获取当前文件路径
LINE 获取当前代码所在行数
__

漏洞讲解:
漏洞产生原理:
有地方可以让攻击者对服务器进行远程的注入操作系统命令或者代码,从而到达控制后台系统的目的。
漏洞产生条件(利用条件):
1.可控变量(别人的一句话:无论是注入还是RCE都有传参数。。
2.对用户的输入过滤不严格。
3.用户的输入内容直接拼接到命令当中。

命令执行:

常见命令执行危险函数
PHP:exec、shell、system、popen 等
ASP.NET:System.Diagnostics.Start.Process、System.Diagnostics.Start.Process
StartInfo 等
Java:java.lang.runtime.Runtime.getRuntime、java.lang.runtime.Runtime.exec

以上除了PHP的,另外两种我还没有碰到过(抓头)。

讲解一下命令执行函数

system函数
该函数会将执行结果输出并将输出结果最后一行作为字符串返回,执行失败就返回false

<?php
highlight_file(__FILE__);
system('ipconfig',$result);
echo $result;
?>

exec函数
该函数没有输出结果,但是会将执行结果最后一行返回

<?php
highlight(__FILE__);
exec('pwd',$a);//此处$a存放着命令返回值
var_dump($b);
?>

passthru函数
该函数只调用命令,将运行结果输出,但是没有返回值

<?php
highlight(__FILE__);
passthru('pwd');
?>

shell_exec函数
该函数不会输出结果,但返回执行结果

<?php
highlight_file(__FILE__);
var_dump(shell_exec('pwd'));
?>

案例分析:
下面将从pikachu靶场来讲解
pikachu靶场
RCE代码执行漏和命令执行漏洞
输入|dir,|是只执行后面语句,当然你也可以使用其他的拼接符如&等等,具体效果取决于对于用户输入内容过滤的情况
效果得到
RCE代码执行漏和命令执行漏洞
至于拼接符过滤,可以去DVWA靶场根据难度调试来测试

代码执行

常见代码执行危险函数
PHP: eval、assert、preg_replace()、+/e 模式(PHP 版本<5.5.0)
Javascript: eval
Vbscript:Execute、Eval
Python: exec

讲解一下代码执行函数

${}执行代码
该格式会对中间的php代码进行解析

<?php
${phpinfo()};
?>

eval函数
该函数会将字符串当作代码执行,不过需要语句需要完整且以;结尾

<?php
eval('echo "Hello NIKO"; ');
?>

assert函数
该函数判断是否为字符串,如果是则代码进行执行,且可以被可变函数进行调用,不过在php7.0.29之后的版本都不支持动态调用

(可变函数即变量名加括号,PHP系统会尝试解析成函数,如果有当前变量中的值为命名的函数,就会调用。如果没有就报错。
可变函数不能用于例如 echo,print,unset(),isset(),empty(),include,require eval() 以及类似的语言结构。需要使用自己的包装函数来将这些结构用作可变函数。该段话摘抄自https://blog.csdn.net/weixin_43669045/article/details/107093451)

<?php
assert($_POST['a']);
?>
<?php
$a = 'assert';
$a(phpinfo());
?>

array_map函数
该函数是为数组每个元素应用回调函数

构造的payload
?a=phpinfo();
RCE代码执行漏和命令执行漏洞

案例分析

继续使用pikachu靶场
操作exec‘‘eval’’
直接查看那一关的php代码
RCE代码执行漏和命令执行漏洞
发现如果没有报错,代码将会直接执行
可以输出phpinfo();
记住一定要;结尾,因为使用的是eval()函数

也可以使用魔法变量
这种我们也可以用其他的方式来利用这个漏洞,比如用一句话木马,再用蚁剑连接
或者来读取文件内容
1)Windows
C:\boot.ini //查看系统版本
C:\windows\system32\inetsrv\MetaBase.xml //IIS 配置文件
C:\windows\repair\sam //windows 初次安装的密码
C:\program Files\mysql\my.ini //Mysql 配置信息
2)Linux
/etc/passwd //linux 用户信息
/usr/local/app/apache2/conf/httpd.conf //apache2 配置文件
/usr/local/app/php5/lib/php.ini //php 配置文件
/etc/httpd/conf/httpd.conf //apache 配置文件
/etc/my.cnf //Mysql
如这样构造a=var_dump(file_get_contents('C:\program Files\mysql\my.ini'));

闲聊:我发现有好多东西没有总结,确实不是很好,得开始写写了文章来源地址https://www.toymoban.com/news/detail-825129.html

到了这里,关于RCE代码执行漏和命令执行漏洞的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 4.9、漏洞利用 smb-RCE远程命令执行

    目录 1、samba服务介绍 2、漏洞相关信息 3、探测samba 4、metasploit利用 5、samba历年漏洞 1.1 samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。 1.2 SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域

    2024年02月07日
    浏览(57)
  • HVV爆火漏洞:最新 WPS RCE (远程命令执行) 复现

    最近HVV爆出的很火的WPS命令执行漏洞,其实并不是0DAY,早在2019年就出现了,只不过最近EXP才公开。接下来我们来复现一遍。 WPS Office 2023 个人版 11.1.0.15120 WPS Office 2019 企业版 11.8.2.12085 wps版本: WPS V11.1.0.12300 靶机: windows 10 攻击机: ubuntu 20.04     IP:192.168.2.103 WPS 内置了一

    2024年02月11日
    浏览(41)
  • RCE代码及命令执行(详解)

      RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。   1)调用第三方组件存在的代码执行漏洞。   2)用户输入的内容作为系统命令的参数拼接到命令中。   3)对用户的输入过滤不严格。   4)可控变量或漏洞函数。   像

    2024年02月11日
    浏览(48)
  • Thinkphp5.0.23 rce(远程代码执行)的漏洞复现

    框架介绍: ThinkPHP是一款运用极广的PHP开发框架。 漏洞引入: 其5.0.23以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞。 1、访问靶机地址+端口号 进入首页 2、Burp抓包修改传参方式为Po

    2024年02月06日
    浏览(36)
  • CVE-2021-22204 GitLab RCE之exiftool代码执行漏洞深入分析(二)

    文章写于2022-01-19,首发在天融信阿尔法实验室 1 前言 2 前置知识 2.1 JPEG文件格式 2.2 Perl模式匹配 3 exiftool源码调试到漏洞分析 3.1 环境搭建 3.2 漏洞简介 3.3 exiftool是如何解析嵌入的0xc51b标签 3.4 exiftool是如何调用parseAnt函数 3.5 parseAnt函数分析 3.6 parseAnt漏洞分析 4 漏洞利用 4.1

    2024年02月14日
    浏览(25)
  • 漏洞复现-nginxWebUI runCmd前台远程命令执行漏洞(附漏洞检测脚本)

    文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担

    2024年04月17日
    浏览(24)
  • 【CTF】命令执行RCE

    *方法一* : 查看靶场内容,其中过滤了flag字样,那么也就是说可以执行phpinfo()、system()等的命令。一般目标的敏感文件位于tmp目录下,使用命令c=system(“ls /tmp”)查看tmp目录下的文件,由结果可看出其中有flag.php文件。然后使用命令system(“cat /tmp/flag.php”)即理论上可以查看

    2024年02月03日
    浏览(36)
  • YApi分析从NoSQL注入到RCE远程命令执行.md

    这个是前几个月的漏洞,之前爆出来发现没人分析就看了一下,也写了一片 Nosql注入的文章,最近生病在家,把这个写一半的完善一下发出来吧。 YApi是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台。 YApi 是 高效 、 易用 、 功能强大 的 api 管理平台,旨在为

    2023年04月24日
    浏览(39)
  • C#代码审计实战+前置知识

    菜鸟教程:https://www.runoob.com/csharp/csharp-intro.html C# 基于 C 和 C++ 编程语言,是一个简单的、现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的,由 Ecma 和 ISO 核准认可的。 C# 是由 Anders Hejlsberg 和他的团队在 .Net 框架开发期间开发的。 C# 是专为公共语言基础

    2024年02月05日
    浏览(31)
  • Ctfshow web入门 命令执行RCE篇 web29-web77 与 web118-web124 详细题解 全

    pregmatch 是正则匹配函数,匹配是否包含flag, if(!preg_match(\\\"/flag/i\\\", $c)) , /i 忽略大小写 可以利用system来间接执行系统命令 flag采用 f* 绕过,或者 mv fl?g.php 1.txt 修改文件名,或者 cat 反引号ls反引号 linux通配符:https://www.cnblogs.com/ysuwangqiang/p/11364173.html 多了对system和php的过滤 用

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包