当前位置: 首页 > news >正文

【HTB-CPTS】第22章 Command Injections(测验部分)

文章目录

  • 前言
  • 一、前情回顾
  • 二、注入点寻找
  • 三、黑名单发现
  • 三、构造注入命令
  • 四、复盘
  • 总结

前言

本章节属于Tier 2 学院模块,但本文并没有直接给出答案(只有提示),符合HTB的内容分享及发布指南,如有侵权请联系博主删除。

本文章将记录HTB-CPTS学院路径的第二十二章:Command Injections的最终box的通关过程。


一、前情回顾

请先完成章节知识学习!请先完成章节知识学习!请先完成章节知识学习!

测验关卡最简单的一集!

命令注入其实在大部分场景都很罕见,因为很难存在将用户的直接输入当作命令执行的场合。但是,可以不用、不能不会吧,随便看看抓紧过。

二、注入点寻找

根本找不到注入点啊喂

注入点

寻找的方法就是到处点点、url的参数一个一个试试过去。
注入点位置在“Move”按钮:/index.php?to=&from=51459716.txt&finish=1&move=1

(之后会省略其余参数,只写“to=”之后的payload,并没有在url中删除只是省略!)

点击之后有回显命令,说明url中的“to”和“from”参数可能会直接当作命令行参数执行。

然后,使用/index.php?to=;ls测试,明显回显拒绝的信息,说明确实可以尝试注入

三、黑名单发现

首先需要确定哪些字符是不在黑名单里的。
我把这一章中出现过的命令中存在的字符全都列了一下,先都试一遍看看。

; %3b %0a ${LS_COLORS:10:1} \n %0a & %26 | %7c && %26%26 || %7c%7c `` %60%60 $() %24%28%29 - %09 ${IFS} {ls,-la} / ${PATH:0:1} <<< rev bash base64 $ ( )

BP抓包,发送到intruder,在to参数的位置上枚举上述字符:

根据之前尝试的经验以及这一次枚举的返回内容,可以明显看到报错规律:页面存在“Malicious”文字就表明该字符被过滤了。

设置过滤规则:

最终得到没被黑名单过滤的字符:

三、构造注入命令

可以看到,没有被过滤的字符是非常非常多啊,空格方面有%09和${IFS}、斜杠方面有${PATH:0:1},base64、bash和rev三巨头也是说放就放,需要注意的是代表分号字符的%3b和%0a都被过滤了,可以考虑使用&(合运算符)的%26代替:

空格 -> %09 或 ${IFS} 斜杠 -> ${PATH:0:1} & -> %26

前面忘说了,这是个linux系统,nmap扫一下就知道了

先简单试一手 &ls /,按照上述方法替代:

%26l\s${IFS}${PATH:0:1}

哦,我们已经可以看到flag.txt了,居然就在根目录下。

直接cat /flag.txt,依旧按照上述方法替代:

%26c\at%09${PATH:0:1}flag.txt

没错,结束了,就换了一个空格、换了一个左斜杠、加了一个右斜杠,easy?!

四、复盘

别急,我的base64、bash和rev三巨头还没玩够呢!这里还有编码绕过和反转绕过两种办法:

其中编码绕过我个人认为是最通用的,但需要不禁止base64、bash命令以及<<<符号,要求较高。

%26bash<<<$(base64${IFS}-d<<<Y2F0IC9mbGFnLnR4dA==)

反转绕过需要rev命令以及<<<符号,也不简单啊,看情况使用吧。

%26c\at%09$(rev<<<"txt.galf${PATH:0:1}")

这两个命令的具体构造方法详情参0章节内容。

总结

最难的部分还是找注入点啊!
现实可不会告诉你哪里有洞,也不会回显错误细节,更不会漏放这么多黑名单给你,多上手试多想办法绕,把所有可能的点都当作漏洞点去试,不要怕浪费时间。
(这话也是对自己说,我又没忍住去找wp偷看注入点了)

http://www.jsqmd.com/news/1397296/

相关文章:

  • Agent意图识别分层架构:从规则到大模型的完整设计与落地
  • 暑假一周总结:其六
  • 楼家泰防水分享:南宁多雨环境下防水修缮注意事项 - 收录优先
  • 学生必备:实测有效的免费AI降重工具与技巧
  • 手机秒变开发机:vscode_for_android 本地部署完整实战指南
  • Kimi Code:AI编程助手如何通过自然语言操控电脑提升开发效率
  • 2026年AI短剧制作工具选型:产能、成本、品质三维对比测评
  • 理想汽车自研云端推理芯片解析:数据流架构与车云同构计算图调度实操
  • WIM与GHO系统镜像恢复全攻略:从原理到实战避坑指南
  • Vue2 学习笔记系列:从 Vue Router 路由到 Vuex 状态管理
  • CentOS 8上MySQL 8.0.22安装配置与性能调优实战指南
  • 奇点大会后,技术领导怎么带团队穿越AI hype周期
  • 兰州管道疏通附近快修|本地管道堵死、返臭、冻堵原因及专业解决方法 - 信息分享
  • 吉安市门窗定制工厂怎么选?源头工厂选购指南,避开门窗定制那些坑 - 收录优先
  • 正式审核员注册流程众智商学院怎么走? - 众智商学院职业教育
  • 灵活用工数字化合规运营与SaaS系统选型参考报告
  • 电脑桌面整理工具,一键自动分类
  • GEO优化公司怎么选?从品牌监控、内容协同和服务边界看
  • Kimi API黑产倒卖技术解析与Python合规接入指南
  • AI Agent技能系统:模块化设计与Python实现指南
  • 长期认知资产模型:食品品牌如何建立可复用选择判断系统
  • 大模型应用开发实战:LangChain输出解析器解决AI结果结构化难题
  • 2026推荐西安高性价比楼盘开发商,荣民壹号凭何稳居高新置业主流视野 - 装修教育财税推荐2026
  • 零成本PotPlayer实时字幕翻译指南:5步让外语影片字幕自动变中文
  • Google三篇论文如何奠定大数据基石:GFS、MapReduce与BigTable解析
  • 代码比较工具全解析:从Git Diff到IDE与协作平台实战指南
  • 结构智能文明:基于公理推导的认知、智慧与文明统一理论—— 第十二至十二章:从认知结构到文明方程的哲学与技术统一论
  • React Native移动端测试实战:从静态分析到构建验证的完整质量保障体系
  • 开发者注意力管理:从工程化视角优化编程效率与深度工作
  • 把 OData 请求拆到最小颗粒度,SAP Gateway Client 的调试方法与实战思路