【问题标题】:Run Netcat from a Browser从浏览器运行 Netcat
【发布时间】:2014-11-16 06:56:15
【问题描述】:

我有一个问题。请您阅读以下场景:

假设 netcat 已经在远程机器上(注意:它没有监听任何端口)。我只有一个选项可以让它开始监听我浏览器的某个特定端口。那么你能告诉我如何让它开始收听,因为从技术上讲,每当你远程访问该文件时,浏览器都会要求你下载/保存它。

但我想要的是,我想在目标机器上运行它,以便我可以完全访问该远程机器。

那么是否可以从目标机器上的浏览器运行netcat???

ThanX 提前

【问题讨论】:

    标签: shell browser netcat listen


    【解决方案1】:

    这是一个安全风险,但可能,像这样。制作一个 CGI 脚本并将其放置在您的服务器希望找到它们的任何位置 - 检查您的 httpd.conf。将以下脚本另存为test.cgi,并使用chmod 使其可执行。

    #!/usr/bin/perl
    
    use strict;
    use warnings;
    use Proc::Daemon;
    
    print "Content-type: text/plain\n\n";
    print "Starting nc...\n";
    Proc::Daemon::Init;
    `/usr/bin/nc -l 2222`;
    

    现在只需将脚本的地址放入浏览器的地址栏中,然后点击Enter。我刚刚让它在端口 2222 上侦听,并且对传入的数据不做任何事情 - 但你可以对收到的数据做任何你喜欢的事情 - 包括将其通过管道传输到 shell 以提高安全风险:-)

    注意如果尚未安装,您可能需要将Proc::Daemon 安装到您的 Perl 发行版中。

    注意您需要设置Options ExecCGI 并执行AddHandler cgi-script .cgi

    注意

    如果你不能,或者不想安装Proc::Daemon,你可以这样破解它:

    #!/usr/bin/perl
    
    use strict;
    use warnings;
    
    print "Content-type: text/plain\n\n";
    print "Starting nc...\n";
    my $pid=fork();
    die "Unable to fork: $!" if !defined $pid;
    
    if($pid==0){
       # This is the child, run netcat
       open STDIN, "</dev/null";
       open STDOUT,">/dev/null";
       open STDERR,">/dev/null";
       `/usr/bin/nc -l 2222`;
    } else {
       print "Child started\n";
    }
    

    【讨论】:

    • 感谢伙伴回复....我要试试这个,但我认为其中有很多麻烦....还有一件事我忘了提到目标机器有 Windows基于操作系统..&它上面运行着 Oracle 应用服务器 11g,我猜这是一个 J2EE 环境。所以,或者我想做的是将 JSP shell 上传到服务器上。我希望应该执行。如果我错了,请纠正我。但现在的问题是我不知道如何获得 JSP Shell 的路径。如果我可以获得管理员上传文件的文件夹,则可以绕过此问题。
    • 像 Xampp 一样,上传文件的默认文件夹是“htdocs”..同样,如果有的话,您是否知道 Oracle 应用服务器 11g 的默认目录。乐于助人的人..ThanX
    • 我怀疑在您的netcat 完成或超时之前,您的网页会出现问题,这就是我采用上述方式的原因。抱歉,我对 Oracle 或 J2EE 一无所知。
    猜你喜欢
    • 1970-01-01
    • 2011-11-29
    • 2019-02-04
    • 1970-01-01
    • 2011-09-29
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    相关资源
    最近更新 更多