1、openvas-nasl -h
2、hello world
编写脚本openvas_hello_world.nasl
display("Hello World \n");
不使用证书和签名,运行脚本
openvas-nasl -X ./openvas_hello_world.nasl
3 、数据类型
数值常量:前缀“0x”表示十六进制数字, 前缀“0”表示8进制
字符串:常规转义
列表:myarray = mske_list(1, "two"); 有 myarray[0] = 1 myarray[1] = two
哈希值:myports = make_array(‘telnet‘, 23, ‘http‘, 80); 有 myports[‘telnet‘] = 23, myports[‘http‘] = 80
局部变量:默认情况下,变量是局部变量,如有需要也可使用local_var精确说明
全局变量: global_var myglobalvariable
4、算术运算符
+ 用于加号。它也可以用来执行字符串连接 -- 用于执行减法。它也可以用于执行字符串减法。例如,‘ cat,dog,mouse‘-‘,dog ‘生成字符串‘ cat,mouse ‘ * 用于乘法 / 用于除法,尝试除以零,NASL返回0 % 用于执行模运算 ** 用于执行幂运算 ++ 变量值加1
5、比较运算符
>< 用于测试字符串中是否存在给定的子字符串。例如,‘ 123‘> <‘abcd123def ‘的计算结果为 TRUE >!< 用于测试字符串中是否不存在给定的子字符串。在这种情况下,‘ 123‘>!<‘abcd123def ‘的值为FALSE =~ 用于匹配正则表达式。使用该运算符类似于调用ereg()函数调用,后者执行类似的操作。例如,仅当str以字符串GET / HTTP / 1.0 / r \ n开头时,语句str =?‘^ [GET / HTTP / 1.0 \ r \ n \ r \ n] [。] *‘)的计算结果为 TRUE 。 \ r \ n !~ 用于测试正则表达式是否 不匹配。它与=?运算符相反
6、赋值运算
= += -+ *= /= %=
7、条件判断
常规 if...else
8、循环
for 循环 foreach 循环,遍历列表 foreach i (myports) { display (i, "\n"); } repeat...until 先执行,后判断,为真则退出 i=0; repeat { display ("Looping!\n"); } until (i == 0); while循环
原文:https://www.cnblogs.com/lw-monster/p/11880437.html