尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

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

【HTB-CPTS】第22章 Command Injections(测验部分) 文章目录前言一、前情回顾二、注入点寻找三、黑名单发现三、构造注入命令四、复盘总结前言本章节属于Tier 2 学院模块但本文并没有直接给出答案只有提示符合HTB的内容分享及发布指南如有侵权请联系博主删除。本文章将记录HTB-CPTS学院路径的第二十二章Command Injections的最终box的通关过程。一、前情回顾请先完成章节知识学习请先完成章节知识学习请先完成章节知识学习测验关卡最简单的一集命令注入其实在大部分场景都很罕见因为很难存在将用户的直接输入当作命令执行的场合。但是可以不用、不能不会吧随便看看抓紧过。二、注入点寻找根本找不到注入点啊喂注入点寻找的方法就是到处点点、url的参数一个一个试试过去。注入点位置在“Move”按钮/index.php?tofrom51459716.txtfinish1move1之后会省略其余参数只写“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}-dY2F0IC9mbGFnLnR4dA)反转绕过需要rev命令以及符号也不简单啊看情况使用吧。%26c\at%09$(revtxt.galf${PATH:0:1})这两个命令的具体构造方法详情参0章节内容。总结最难的部分还是找注入点啊现实可不会告诉你哪里有洞也不会回显错误细节更不会漏放这么多黑名单给你多上手试多想办法绕把所有可能的点都当作漏洞点去试不要怕浪费时间。这话也是对自己说我又没忍住去找wp偷看注入点了
返回列表