diff --git a/nse_main.lua b/nse_main.lua index 14d3722f7..7a6cc74ad 100644 --- a/nse_main.lua +++ b/nse_main.lua @@ -212,8 +212,7 @@ local function tcopy (t) end local REQUIRE_ERROR = {}; -stdnse.require = require; -- add real require to stdnse so it can be called if desired -function _G.require (...) +rawset(stdnse, "silent_require", function (...) local status, mod = pcall(require, ...); if not status then print_debug(1, "%s", traceback(mod)); @@ -222,7 +221,7 @@ function _G.require (...) else return mod; end -end +end); local Script = {}; -- The Script Class, its constructor is Script.new. local Thread = {}; -- The Thread Class, its constructor is Script:new_thread. diff --git a/nselib/stdnse.lua b/nselib/stdnse.lua index 5ffcd7bfb..a57809d73 100644 --- a/nselib/stdnse.lua +++ b/nselib/stdnse.lua @@ -869,13 +869,15 @@ do end -- no function here, see nse_main.lua --@return coroutine Returns the base coroutine of the running script. do end -- no function here, see nse_main.lua ---- The (Unmodified) Lua Require Function. +--- The Lua Require Function with errors silenced. -- --- See the Lua manual for description. NSE replaces the standard function --- in the global namespace to improve error handling. +-- See the Lua manual for description of the require function. This modified +-- version allows the script to quietly fail at loading if a required +-- library does not exist. -- ---@name require +--@name silent_require --@class function +--@usage stdnse.silent_require "openssl" do end -- no function here, see nse_main.lua diff --git a/scripts/http-cakephp-version.nse b/scripts/http-cakephp-version.nse index b47d198be..aa7a7001b 100644 --- a/scripts/http-cakephp-version.nse +++ b/scripts/http-cakephp-version.nse @@ -27,6 +27,8 @@ categories = {"discovery","safe"} require "http" require "shortport" +require "stdnse" +stdnse.silent_require "openssl" portrule = shortport.http diff --git a/scripts/http-favicon.nse b/scripts/http-favicon.nse index 2cb312d5f..8da00e39b 100644 --- a/scripts/http-favicon.nse +++ b/scripts/http-favicon.nse @@ -37,7 +37,8 @@ require "http" require "stdnse" require "datafiles" require "nsedebug" -require "openssl" +require "stdnse" +stdnse.silent_require "openssl" portrule = shortport.http diff --git a/scripts/http-php-version.nse b/scripts/http-php-version.nse index 6e5b5e813..6accf4932 100644 --- a/scripts/http-php-version.nse +++ b/scripts/http-php-version.nse @@ -28,6 +28,8 @@ categories = {"discovery", "safe"} require "http" require "shortport" +require "stdnse" +stdnse.silent_require "openssl" portrule = shortport.http diff --git a/scripts/mysql-brute.nse b/scripts/mysql-brute.nse index 66c2aae74..be7ddf1e2 100644 --- a/scripts/mysql-brute.nse +++ b/scripts/mysql-brute.nse @@ -17,7 +17,7 @@ require 'shortport' require 'stdnse' require 'mysql' require 'unpwdb' -require 'openssl' +stdnse.silent_require 'openssl' -- Version 0.3 -- Created 01/15/2010 - v0.1 - created by Patrik Karlsson diff --git a/scripts/mysql-databases.nse b/scripts/mysql-databases.nse index d82bc5e48..503686038 100644 --- a/scripts/mysql-databases.nse +++ b/scripts/mysql-databases.nse @@ -27,7 +27,7 @@ categories = {"discovery", "intrusive"} require 'shortport' require 'stdnse' require 'mysql' -require 'openssl' +stdnse.silent_require 'openssl' dependencies = {"mysql-brute", "mysql-empty-password"} diff --git a/scripts/mysql-users.nse b/scripts/mysql-users.nse index 43a51f891..e96f9494d 100644 --- a/scripts/mysql-users.nse +++ b/scripts/mysql-users.nse @@ -30,7 +30,7 @@ categories = {"discovery", "intrusive"} require 'shortport' require 'stdnse' require 'mysql' -require 'openssl' +stdnse.silent_require 'openssl' dependencies = {"mysql-brute", "mysql-empty-password"} diff --git a/scripts/mysql-variables.nse b/scripts/mysql-variables.nse index 837cde2c7..8420d6acc 100644 --- a/scripts/mysql-variables.nse +++ b/scripts/mysql-variables.nse @@ -38,7 +38,7 @@ categories = {"discovery", "intrusive"} require 'shortport' require 'stdnse' require 'mysql' -require 'openssl' +stdnse.silent_require 'openssl' dependencies = {"mysql-brute", "mysql-empty-password"} diff --git a/scripts/oracle-brute.nse b/scripts/oracle-brute.nse index e8d8a299a..0af677158 100644 --- a/scripts/oracle-brute.nse +++ b/scripts/oracle-brute.nse @@ -37,7 +37,8 @@ categories = {"intrusive", "auth"} require 'shortport' require 'brute' -require 'openssl' +require 'stdnse' +stdnse.silent_require 'openssl' require 'tns' portrule = shortport.port_or_service(1521, "oracle-tns", "tcp", "open") diff --git a/scripts/oracle-enum-users.nse b/scripts/oracle-enum-users.nse index eaee6dc3c..052258973 100644 --- a/scripts/oracle-enum-users.nse +++ b/scripts/oracle-enum-users.nse @@ -34,7 +34,8 @@ categories = {"intrusive", "auth"} require 'shortport' require 'unpwdb' -require 'openssl' +require 'stdnse' +stdnse.silent_require 'openssl' require 'tns' portrule = shortport.port_or_service(1521, 'oracle-tns' ) diff --git a/scripts/pgsql-brute.nse b/scripts/pgsql-brute.nse index 0f80e73e0..eefe7ff9f 100644 --- a/scripts/pgsql-brute.nse +++ b/scripts/pgsql-brute.nse @@ -29,7 +29,7 @@ categories = {"intrusive", "auth"} require 'shortport' require 'stdnse' require 'unpwdb' -require 'openssl' +stdnse.silent_require 'openssl' -- Version 0.3 -- Created 01/15/2010 - v0.1 - created by Patrik Karlsson diff --git a/scripts/ssh-hostkey.nse b/scripts/ssh-hostkey.nse index 43f4f8b75..3f97759f4 100644 --- a/scripts/ssh-hostkey.nse +++ b/scripts/ssh-hostkey.nse @@ -56,7 +56,7 @@ categories = {"safe","default","discovery"} require("shortport") require("stdnse") -require("openssl") +stdnse.silent_require("openssl") require("ssh1") require("ssh2") diff --git a/scripts/ssh2-enum-algos.nse b/scripts/ssh2-enum-algos.nse index 2a0bb08f9..6cb8641a9 100644 --- a/scripts/ssh2-enum-algos.nse +++ b/scripts/ssh2-enum-algos.nse @@ -57,7 +57,7 @@ categories = {"safe", "discovery"} require "shortport" require "stdnse" -require "openssl" +stdnse.silent_require "openssl" portrule = shortport.port_or_service(22, "ssh")