文章总结: 本文详述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 <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#define XOR_KEY 0x5AXOR static const char encrypted_forbidden[][6] = { {0x3f, 0x22, 0x3f, 0x39, 0x00}, // "exec" {0x35, 0x31, 0x00}, // "ok" {0x2a, 0x28, 0x33, 0x34, 0x2e, 0x00}, // "print" {0x3c, 0x36, 0x29, 0x00} // "fls"int check_forbidden(const char *arg) { char decrypted[10]; const int forbidden_count = sizeof(encrypted_forbidden) / sizeof(encrypted_forbidden[0]);
for (int i = 0; i < forbidden_count; i++) { int j = 0; while (encrypted_forbidden[i][j] != 0) { decrypted[j] = encrypted_forbidden[i][j] ^ XOR_KEY; j++; } decrypted[j] = 0;
if (strcmp(arg, decrypted) == 0 || strstr(arg, decrypted) != NULL) { return i + 1; // 1-based } } return 0; // int main(int argc, char *argv[]) { if (argc < 2) { fprintf(stderr, "find: missing operand\n"); return 1; }for (int i = 1; i < argc; i++) { if (check_forbidden(argv[i])) { fprintf(stderr, "find: critical error - Segmentation fault (core dumped)\n"); return 1; } } execv("/usr/bin/f1nd", argv); // find
perror("find: failed to execute"); return 1;
伪造的报错 if (check_forbidden(argv[i])) { fprintf(stderr, "find: critical error - Segmentation fault (core dumped)\n"); return 1;} 这段代码证实了我们之前的猜想:所谓的 "Segmentation fault"(段错误)是假的。当你试图使用 find -exec 进行提权时,它会故意打印这个错误信息来恐吓或误导你,让你以为程序崩溃了,其实它只是在后台把你拦截了。 这通常是出于以下两个目的之一: 1. CTF 考点:强制你不能使用 find -exec 这种“作弊”式的方法来寻找或读取 Flag,要求你寻找其他的提权路径。 2. 安全加固:防止系统上的低权限用户通过 find 命令的 -exec 参数直接获取 root 权限(如果 find 被设置了 SUID 位)。
这就是为什么我们去使用find没有提权成功的原因了。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:MS02423 MS02423 MS02423《HackMyVm靶场之Tryharder》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论