如何远程检查 Linux 上是否启用了 HTTP 目录列表?

如何远程检查 Linux 上是否启用了 HTTP 目录列表?

我希望能够自动测试我的所有服务器以确保目录浏览已启用。如何在 shell 脚本中执行此操作?

答案1

两个建议:

  • 创建一个目录,通过 HTTP 获取其内容本地主机(使用curlwget -O /dev/stdoutlynx -dumpw3m -dumpelinks -dump)并查找文件列表。Apache2 的示例通常显示Index of /directory

    cd /srv/http
    name="test-$RANDOM$RANDOM$RANDOM"
    mkdir "$name"
    if curl "http://localhost/$name/" | fgrep -qs "Index of /$name"; then
        echo "enabled"
        rmdir "$name"
    else
        echo "disabled"
        rmdir "$name"
        exit 1
    fi
    

    如果你正在使用 Lighttpd、nginx 或其他程序,请调整grep图案。

  • 替代方案:学习一些grepperl并解析配置文件。具体过程取决于您使用的 HTTP 守护程序 - 它们的配置格式是非常不同的。

相关内容