OpenVAS Scanner
7.0.1~git
|
Go to the documentation of this file.
26 #include "../misc/ftp_funcs.h"
27 #include "../misc/network.h"
28 #include "../misc/plugutils.h"
41 #include <gvm/util/compressutils.h>
42 #include <gvm/util/kb.h>
48 #define uint32 unsigned int
50 #define NASL_EXIT_DEPRECATED 66
51 #define NASL_EXIT_NOTVULN 99
60 retc->
x.
i_val = lrand48 ();
115 struct sockaddr_in addr;
122 bzero (&addr,
sizeof (addr));
126 retc->x.i_val = ntohs (addr.sin_port);
137 unsigned char buffer[1024];
138 #define iac buffer[0]
139 #define code buffer[1]
140 #define option buffer[2]
147 nasl_perror (lexic,
"Syntax error in the telnet_init() function\n");
149 "Correct syntax is : output = telnet_init(<socket>)\n");
158 if ((
iac != 255) || (n <= 0) || (n != 3))
162 else if ((
code == 253) || (
code == 254))
186 nasl_perror (lexic,
"More than 100 options received by telnet_init() "
187 "function! exiting telnet_init.\n");
196 retc->
x.
str_val = g_memdup (buffer, n + 1);
273 #define BOGUS "are you dead ?"
300 const char *
oid = lexic->
oid;
306 g_snprintf (detail,
sizeof (detail),
"HostDetails/NVT/%s/%s",
oid,
name);
323 while (lexic != NULL)
377 for (j = 0; j < a2->
max_idx; j++)
394 "nasl_make_list: undefined variable #%d skipped\n", i);
399 lexic,
"nasl_make_list: unhandled variable type 0x%x - skipped\n",
432 nasl_perror (lexic,
"make_array: odd number (%d) of argument?\n", vi);
454 nasl_perror (lexic,
"make_array: bad value type %d for arg #%d\n",
475 bzero (&myvar,
sizeof (myvar));
484 for (j = 0; j < a->
max_idx; j++)
504 nasl_perror (lexic,
"nasl_keys: bad variable #%d skipped\n", vi);
565 retc->
size = strlen (s);
580 nasl_perror (lexic,
"defined_func: missing parameter\n");
586 retc->
x.
i_val = (f != NULL);
618 nasl_perror (lexic,
"sort: this function is not reentrant!\n");
639 retc->
x.
i_val = time (NULL);
650 if (gettimeofday (&t, NULL) < 0)
652 nasl_perror (lexic,
"gettimeofday: %s\n", strerror (errno));
655 sprintf (str,
"%u.%06u", (
unsigned int) t.tv_sec, (
unsigned int) t.tv_usec);
657 retc->
size = strlen (str);
675 tictac = time (NULL);
679 ptm = gmtime (&tictac);
681 ptm = localtime (&tictac);
685 nasl_perror (lexic,
"localtime(%d,utc=%d): %s\n", tictac, utc,
692 memset (&v, 0,
sizeof (v));
703 v.
v.
v_int = ptm->tm_mon + 1;
705 v.
v.
v_int = ptm->tm_year + 1900;
709 v.
v.
v_int = ptm->tm_yday + 1;
711 v.
v.
v_int = ptm->tm_isdst;
731 if (tm.tm_year >= 1900)
736 tictac = mktime (&tm);
737 if (tictac == (time_t) (-1))
740 "mktime(sec=%02d min=%02d hour=%02d mday=%02d mon=%02d "
741 "year=%04d isdst=%d): %s\n",
742 tm.tm_sec, tm.tm_min, tm.tm_hour, tm.tm_mday, tm.tm_mon + 1,
743 tm.tm_year + 1900, tm.tm_isdst,
744 errno ? strerror (errno) :
"invalid value?");
748 retc->x.i_val = tictac;
756 int ret, type, forced_type = KB_TYPE_INT;
757 int timeout = 30, tcp = 0;
758 unsigned short port = 88, *port_aux = NULL;
765 if (!
hostname || type != KB_TYPE_STR)
769 &forced_type, NULL, 0);
775 if (port <= 0 || forced_type != KB_TYPE_INT)
779 tcp = GPOINTER_TO_SIZE (tcp_str);
781 if (tcp < 0 || type != KB_TYPE_INT)
802 void *data, *uncompressed;
803 unsigned long datalen, uncomplen;
812 uncompressed = gvm_uncompress (data, datalen, &uncomplen);
813 if (uncompressed == NULL)
817 retc->
size = uncomplen;
827 void *data, *compressed, *headerformat;
828 unsigned long datalen, complen;
838 if (!g_strcmp0 (headerformat,
"gzip"))
840 compressed = gvm_compress_gzipheader (data, datalen, &complen);
841 if (compressed == NULL)
846 compressed = gvm_compress (data, datalen, &complen);
847 if (compressed == NULL)
852 retc->
size = complen;
866 nasl_perror (lexic,
"Syntax : dec2str(num:<n>)\n");
869 char *ret = g_malloc0 (
sizeof (num));
873 retc->
size =
sizeof (num);
887 char *p = (
char *) &w;
tree_cell * nasl_sort_array(lex_ctxt *lexic)
tree_cell * nasl_dec2str(lex_ctxt *lexic)
tree_cell * nasl_get_byte_order(lex_ctxt *lexic)
tree_cell * nasl_do_exit(lex_ctxt *lexic)
tree_cell * nasl_defined_func(lex_ctxt *lexic)
tree_cell * nasl_localtime(lex_ctxt *lexic)
static void simple_register_host_detail(lex_ctxt *lexic, char *name, char *value)
nasl_func * get_func_ref_by_name(lex_ctxt *ctxt, const char *name)
void * plug_get_key(struct script_infos *args, char *name, int *type, size_t *len, int single)
Get values from a kb under the given key name.
int get_var_size_by_name(lex_ctxt *, const char *)
tree_cell * nasl_tcp_ping(lex_ctxt *lexic)
tree_cell * nasl_end_denial(lex_ctxt *lexic)
#define NASL_EXIT_NOTVULN
int open_stream_connection(struct script_infos *args, unsigned int port, int transport, int timeout)
Unix SMB/CIFS implementation. SMB Byte handling.
const char * var2str(anon_nasl_var *v)
struct st_n_nasl_var ** hash_elt
struct timeval timeval(unsigned long val)
tree_cell * nasl_start_denial(lex_ctxt *lexic)
tree_cell * nasl_unixtime(lex_ctxt *lexic)
tree_cell * nasl_ftp_get_pasv_address(lex_ctxt *lexic)
char * get_str_var_by_name(lex_ctxt *, const char *)
#define SIVAL(buf, pos, val)
int ftp_get_pasv_address(int soc, struct sockaddr_in *addr)
tree_cell * nasl_make_array(lex_ctxt *lexic)
struct struct_lex_ctxt * up_ctxt
void dump_ctxt(lex_ctxt *c)
unsigned int plug_get_host_open_port(struct script_infos *desc)
struct st_n_nasl_var * next_var
void nasl_perror(lex_ctxt *lexic, char *msg,...)
tree_cell * nasl_telnet_init(lex_ctxt *lexic)
int add_var_to_array(nasl_array *a, char *name, const anon_nasl_var *v)
int nsend(int fd, void *data, int length, int i_opt)
tree_cell * nasl_rand(lex_ctxt *lexic)
int read_stream_connection(int fd, void *buf0, int len)
tree_cell * nasl_gettimeofday(lex_ctxt *lexic)
tree_cell * nasl_typeof(lex_ctxt *lexic)
tree_cell * var2cell(anon_nasl_var *v)
tree_cell * nasl_gzip(lex_ctxt *lexic)
long int get_int_var_by_name(lex_ctxt *, const char *, int)
int ftp_log_in(int soc, char *username, char *passwd)
int read_stream_connection_min(int fd, void *buf0, int min_len, int max_len)
tree_cell * nasl_dump_ctxt(lex_ctxt *lexic)
long int get_int_var_by_num(lex_ctxt *, int, int)
char * get_str_var_by_num(lex_ctxt *, int)
tree_cell * nasl_mktime(lex_ctxt *lexic)
struct script_infos * script_infos
int open_sock_opt_hn(const char *hostname, unsigned int port, int type, int protocol, int timeout)
static lex_ctxt * mylexic
tree_cell * nasl_ftp_log_in(lex_ctxt *lexic)
long int cell_cmp(lex_ctxt *lexic, tree_cell *c1, tree_cell *c2)
tree_cell * nasl_open_sock_kdc(lex_ctxt *lexic)
void ref_cell(tree_cell *c)
tree_cell * nasl_sleep(lex_ctxt *lexic)
int get_var_type_by_num(lex_ctxt *, int)
Returns NASL variable/cell type, VAR2_UNDEF if value is NULL.
tree_cell * nasl_gunzip(lex_ctxt *lexic)
int add_var_to_list(nasl_array *a, int i, const anon_nasl_var *v)
union st_a_nasl_var::@4 v
void plug_set_key(struct script_infos *args, char *name, int type, const void *value)
int write_stream_connection(int fd, void *buf0, int n)
int close_stream_connection(int fd)
tree_cell * nasl_isnull(lex_ctxt *lexic)
tree_cell * nasl_max_index(lex_ctxt *lexic)
void deref_cell(tree_cell *c)
tree_cell * alloc_typed_cell(int typ)
static int var_cmp(const void *a, const void *b)
tree_cell * nasl_make_list(lex_ctxt *lexic)
tree_cell * nasl_keys(lex_ctxt *lexic)
anon_nasl_var * nasl_get_var_by_num(void *ctxt, nasl_array *a, int num, int create)
tree_cell * nasl_usleep(lex_ctxt *lexic)
int array_max_index(nasl_array *a)
struct st_a_nasl_var ** num_elt