HackMyVm靶场之Tryharder

admin 2026-02-06 01:20:26 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详述HackMyVm靶场Tryharder的渗透全流程。通过扫描与源码分析发现隐藏目录,爆破登录后利用JWT无算法漏洞或密钥爆破伪造管理员权限,配合.htaccess上传Webshell。提权阶段涉及隐写术对比脚本解密SSH密码、猜数游戏暴力破解及LD_PRELOAD共享对象劫持技术,最终获取root权限。 综合评分: 88 文章分类: 渗透测试,漏洞分析,实战经验,WEB安全,内网渗透


)

2)爆破用户名和密码

方法一:bp爆破

方法一:使用ai给的cookie

尝试 “None Algorithm” 攻击(无需 Key)

这是一个配置漏洞。有些后端代码只读取 Header 里的算法,如果你告诉它“没有算法”,它可能就不去校验签名部分了。

修改 Header: 把 {“alg”:”HS256″} 改为 {“alg”:”none”}。

修改 Payload: 把 role 改为 admin。

构造 Token:

eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiIxMjMiLCJyb2xlIjoiYWRtaW4iLCJleHAiOjE3Njk4ODAxNzh9. (注意:最后一定要留一个点 .,表示签名为空)

,这个和上一个靶场id里面隐藏信息是一样的操作,学到老活到老,我们去看看/etc/passwd

我们还有看到一个1.c

内容是

#include&nbsp;<stdio.h>#include&nbsp;<stdlib.h>#include&nbsp;<string.h>#include&nbsp;<unistd.h>#define&nbsp;XOR_KEY 0x5AXOR&nbsp;static&nbsp;const&nbsp;char&nbsp;encrypted_forbidden[][6] = {&nbsp; &nbsp; {0x3f,&nbsp;0x22,&nbsp;0x3f,&nbsp;0x39,&nbsp;0x00}, &nbsp; &nbsp; &nbsp; &nbsp;// "exec"&nbsp; &nbsp; {0x35,&nbsp;0x31,&nbsp;0x00}, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// "ok"&nbsp; &nbsp; {0x2a,&nbsp;0x28,&nbsp;0x33,&nbsp;0x34,&nbsp;0x2e,&nbsp;0x00},&nbsp;// "print"&nbsp; &nbsp; {0x3c,&nbsp;0x36,&nbsp;0x29,&nbsp;0x00} &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// "fls"int&nbsp;check_forbidden(const&nbsp;char&nbsp;*arg) {&nbsp; &nbsp;&nbsp;char&nbsp;decrypted[10];&nbsp; &nbsp;&nbsp;const&nbsp;int&nbsp;forbidden_count =&nbsp;sizeof(encrypted_forbidden) /&nbsp;sizeof(encrypted_forbidden[0]);
&nbsp; &nbsp;&nbsp;for&nbsp;(int&nbsp;i =&nbsp;0; i < forbidden_count; i++) {&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;int&nbsp;j =&nbsp;0;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;while&nbsp;(encrypted_forbidden[i][j] !=&nbsp;0) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; decrypted[j] = encrypted_forbidden[i][j] ^ XOR_KEY;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; j++;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; decrypted[j] =&nbsp;0;
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;if&nbsp;(strcmp(arg, decrypted) ==&nbsp;0&nbsp;||&nbsp;strstr(arg, decrypted) !=&nbsp;NULL) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;return&nbsp;i +&nbsp;1;&nbsp;//&nbsp;1-based&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp;&nbsp;return&nbsp;0;&nbsp;//&nbsp;int&nbsp;main(int&nbsp;argc,&nbsp;char&nbsp;*argv[])&nbsp;{&nbsp; &nbsp;&nbsp;if&nbsp;(argc <&nbsp;2) {&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;fprintf(stderr,&nbsp;"find: missing operand\n");&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;return&nbsp;1;&nbsp; &nbsp; }for&nbsp;(int&nbsp;i =&nbsp;1; i < argc; i++) {&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;if&nbsp;(check_forbidden(argv[i])) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;fprintf(stderr,&nbsp;"find: critical error - Segmentation fault (core dumped)\n");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;return&nbsp;1;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp;&nbsp;execv("/usr/bin/f1nd", argv);&nbsp;//&nbsp;&nbsp;find
&nbsp; &nbsp;&nbsp;perror("find: failed to execute");&nbsp; &nbsp;&nbsp;return&nbsp;1;

伪造的报错 &nbsp;if&nbsp;(check_forbidden(argv[i])) {&nbsp; &nbsp;&nbsp;fprintf(stderr,&nbsp;"find: critical error - Segmentation fault (core dumped)\n");&nbsp; &nbsp;&nbsp;return&nbsp;1;} 这段代码证实了我们之前的猜想:所谓的 "Segmentation fault"(段错误)是假的。当你试图使用 find -exec 进行提权时,它会故意打印这个错误信息来恐吓或误导你,让你以为程序崩溃了,其实它只是在后台把你拦截了。 这通常是出于以下两个目的之一: 1. CTF 考点:强制你不能使用 find -exec 这种“作弊”式的方法来寻找或读取 Flag,要求你寻找其他的提权路径。 2. 安全加固:防止系统上的低权限用户通过 find 命令的 -exec 参数直接获取 root 权限(如果 find 被设置了 SUID 位)。

这就是为什么我们去使用find没有提权成功的原因了。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:MS02423 MS02423 MS02423《HackMyVm靶场之Tryharder》

HackMyVm靶场之Tryharder 网络安全文章

HackMyVm靶场之Tryharder

文章总结: 本文详述HackMyVm靶场Tryharder的渗透全流程。通过扫描与源码分析发现隐藏目录,爆破登录后利用JWT无算法漏洞或密钥爆破伪造管理员权限,
Web缓存漏洞扫描器—WCVS 网络安全文章

Web缓存漏洞扫描器—WCVS

文章总结: Web缓存漏洞扫描器WCVS是一款用于防范网页缓存中毒和欺骗的CLI工具,支持无钥匙头部中毒、参数隐形等10种技术及多种欺骗手段。该工具具备爬虫功能
评论:0   参与:  0