当前位置: 首页 > 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.cnnetsun.cn/news/4036609.html

相关文章:

  • HCIA认证实验指南:网络配置与排错实战
  • 大模型应用开发实战:LangChain输出解析器解决AI结果结构化难题
  • 大数据处理实战:Python分块清洗与PostgreSQL高速导入四百万行CSV
  • pytracking 部署笔记
  • CMake编译选项深度解析:从CMAKE_CXX_FLAGS到跨平台构建最佳实践
  • Claude文本水印真相:技术原理、影响与应对策略
  • 【原创唯一】基于微信小程序+uni-app+vue的个人博客小程序 课程设计/大作业/期末作业(源码+MySQL数据库+实验报告+PPT+远程部署)
  • 【原创唯一】基于SpringBoot+Vue的个人博客网站系统 课程设计/大作业/期末作业(源码+MySQL数据库+实验报告+PPT+远程部署)
  • Python数据可视化配色全攻略:从Matplotlib到Seaborn与Plotly
  • 实用推荐:5款低查重AI写教材工具,轻松搞定教材编写难题!
  • YOLOv11模型导出全攻略:从ONNX、TensorRT到OpenVINO、Core ML、TFLite与TorchScript的多平台部署实战指南
  • 外卖CPS平台开发推广员上下级关系处理
  • Sentinel 流控规则 · 流控效果
  • 【原创唯一】基于SpringBoot+Vue的学生作业管理系统 课程设计/大作业/期末作业(源码+MySQL数据库+实验报告+PPT+远程部署)
  • RePKG 实战指南:拆开 Wallpaper Engine 的 PKG,把 TEX 纹理转成可编辑的 PNG
  • 告别LaTeX表格手工编码:超强工具实现图形化设计与代码自动生成
  • 2027亚洲AI算力液冷技术展官方市场信任度充足
  • 若依框架项目名称自定义全攻略:从配置到模板的完整实践
  • 外贸企业必看:谷歌SEO优化服务,助力海外订单增长
  • 基于ReAct与Function Calling构建本地AI编程助手:从原理到实战
  • 从零构建具身智能仿真环境:基于Isaac Gym与强化学习的机械臂抓取实战
  • 无血清培养基为什么越来越常用?从批间差异、动物源风险到下游纯化
  • 【学习地图】AI学习 · 文章索引
  • AI长任务处理:SSE、检查点与幂等性构建可靠异步系统
  • OneNote多人共享协作全攻略:从方案选型到问题解决
  • AI 全栈专业名词科普:从入门到理解
  • 构建AI编程助手的代码大脑:知识图谱与语义检索的工程实践
  • K均值聚类评估:SSE与轮廓系数原理、应用与实战
  • Vim正则表达式实战:从基础语法到高效文本处理
  • DeepSeek 深夜开源一个“神经系统“:大模型时代的胜负手,不在模型本身了?