首页 > 解决方案 > 此 Java 代码中的漏洞是什么?

问题描述

漏洞问题

一个。这段代码有什么样的漏洞?为什么?

湾。给出一个简单的示例代码来利用它。

我对一些网络安全问题不熟悉,不知道如何解决这样的问题。感谢您对这个问题的任何帮助,以及我应该了解更多关于整个网络安全的地方。我有点精通 Kali 的使用,但缺乏基于编程知识的问题。

附言。我是 Stack Exchange 的新手,如果我将其发布在错误的部分,请帮助我

谢谢

标签: javasecurity

解决方案


您不解析用户可以提供的参数。此漏洞名称为Command Injection。示例来自Command injection in Java

import java.io.*;

public class Example2 {
    public static void main(String[] args)
    throws IOException {
        if(args.length != 1) {
            System.out.println("No arguments");
            System.exit(1);
        }
        Runtime runtime = Runtime.getRuntime();
        String[] cmd = new String[3];
        cmd[0] = "cmd.exe" ;
                cmd[1] = "/C";
                cmd[2] = "dir " + args[0];
        Process proc = runtime.exec(cmd);

        InputStream is = proc.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);

        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
    }
}

上面的代码可以通过将多个命令链接在一起来注入。


推荐阅读