【web安全学习篇1】VBS脚本基础编写总结

百般思念 提交于 2020-10-21 01:02:50


引言:非科班出身,自学web渗透的小白。初次写博客,不到之处还望多多包涵。学习是个漫长的过程,而且经常产生疑惑,感觉学的东西没什么实际意义,不知道怎么用。个人也比较健忘,笔记一直胡乱地写。看了不少博文,就想着自己也写一些。一来可以整理一下自己的笔记,复习所学的知识。再者就是想跟这里的学者交流一下,这样才有进步。笔记如若有不完整或者错误的地方,欢迎大家在留言栏提出纠正。

VBS初始及变量

VBS是windows内置脚本,用记事本直接编辑,将文件后缀名改为“vbs”即可运行。
第一个脚本:

dim a
a="Hello,world!!"
msgbox a

其中“msgbox”如python的“”print一样是打印的意思。
变量以dim命名,并且可以用“:”号在命名同时赋值。
如:dim a:4
我们可以用“inputbox”进行输入,达到互动效果


dim name
	    name=inputbox("请输入你的名字。")
		msgbox "你的名字叫"&name

常量

常量用“const”命名,目的是为了减少代码量以及增加规范。

const a="nihao,china"
      msgbox a

注释与数学运算

  1. 在每句的开头写入“rem"在或者"’"即可注释掉整行。

如:

dim a,b
    a=46
   'a=15151
rem b=78
	b=77
	msgbox a,b
  1. 数学的运算符大部分在脚本都能通用。

“*”表示乘法
“**”表示平方
“/”表示除法
“+”纯数字表示加法,字符串表示拼接
a=12+5和a=“12”+"5"意义是不一样的



布尔类型

true表示正确;false表示错误

dim a,b
   a=15
   b=12
   msgbox a>b

输出结果为true,可以用布尔类型判断比较结果。

if判断

常见的if判断语句:
if then……end if
if then……else…… end if
if then ……else if……else……end if end if
例子
1.




dim a,b,c,d
a=inputbox("请输入a的值:")
b=inputbox("请输入b的值:")
c=inputbox("请输入c的值:")

d=a*2+b*2
c=int(c)
if c=d then
msgbox "你是对的!!!!"
else 
msgbox "你是错的!!!"
end if
dim a
a=inputbox("请输入一个大于50的数字")
a=int(a)
if a>50 then
msgbox "正确"
else if a=50 then
msgbox "不要输入50!!!!"
else 
msgbox "错误"
end if
end if
dim num:num=0
for i=0 to 9
num=num+1
if num=5 then
exit for
end if
next
msgbox num

有多少个“if”就要有多少的end if结尾!

select语句实现多条件循环

利用select case +变量实现。看个例子就明白,跟DOS命令的goto很像。

dim a
a=inputbox(“请输入小于4的数字”)
a=int(a)

select case a
case 1
msgbox "one"
case 2
msgbox "two"
case 3
msgbox "three"
case else					
msgbox "你输入的数字不符合要求"
end select  

循环结构

  1. do循环

利用do……exit do……loop循环实现

dim password,ctr
ctr=0
const pass ="123456"

do
password=inputbox("请输入密码:")
if password=pass then
msgbox "密码输入成功!"
exit do
else
if ctr=3 then
msgbox "你的输入次数有限,程序将关闭!!!"
exit do
else
ctr=ctr+1
msgbox"密码出错,请重新输入"
end if
end if
loop
  1. for循环
dim count
for count=0 to 10
msgbox count
next

循环嵌套

  1. do循环嵌套while条件语句
dim count
count =0 
do while count<11
msgbox count
count=count+1
loop
  1. for循环嵌套if条件语句
dim num:num=0
for i=0 to 9
num=num+1
if num=5 then
exit for
end if
next
msgbox num
  1. 双for嵌套循环
dim i,j,k
for i=1 to 9
for j=1 to 9
k=i*j
msgbox k
next
next

脚本会逐一输出结果。需要注意的是,两个for循环,第一个每完成一次,第二个会完成全部。

数组的定义与应用

数组由()定义,并且从0开始

如定义数组里有十个元素,并对前三个元素进行赋值:

dim name(9)
name(0)=12
name(1)="mylove"
name(2)=5.26
msgbox name(2)

跟变量一样,数组也可以同时被定义调用:

dim name(2),high(2),mark(2)
dim n
for n= 0 to 2
name(n)=inputbox("请输入第"&n+1&"个学生的名字")
high(n)=inputbox("请输入第"&n+1&"个学生的身高")
mark(n)=inputbox("请输入第"&n+1&"个学生的成绩")
next
msgbox name(0)
msgbox high(1)
msgbox mark(2)

此时通过用户输入来实现数组赋值

定义二维数组及应用

二维是指行跟列
如 dim name(1,1)表示定义一个两行两列的二维数组。第一个数字代表行数,第二个代表列数。
其实就是个表格,可以用来收集用户数据
如:
1.



dim name(2),high(2),mark(2)
dim n
for n= 0 to 2
name(n)=inputbox("请输入第"&n+1&"个学生的名字")
high(n)=inputbox("请输入第"&n+1&"个学生的身高")
mark(n)=inputbox("请输入第"&n+1&"个学生的成绩")
next
msgbox name(0)
msgbox high(1)
msgbox mark(2)
dim msg(1,1)
dim i,j
for i=0 to 1
   for j=0 to 1
dim opt
select case 1
case 0
opt="name"
case 1
opt ="age"
end select
msg(i,j)=inputbox("请输入第"& i+1 &"个人的"& opt)
next
for i=0 to 1
for j= 0 to 1
msgbox msg(i,j)

初识函数

  • 与定义变量差不多,将dim替换成function,最后以end function结束函数的定义。函数内可定义变量,实现更复杂的运算。
    如定义一个函数,需要用户输入名字并且打印一句话。
function fun(name)
name=inputbox("请输入你的名字")
msgbox "吃饭啦!!!!"&name
end function
call fun(name)

用call+函数名调用函数!

定义函数进行互动

dim num1,num2
num1=inputbox("请输入第一个数字")
num2=inputbox("请输入第二个数字")
num1=int(num1)
num2=int(num2) 
function fun(num1,num2)
num=num1*num2
msgbox num
end function
call fun(num1,num2)

内建函数不需要定义,直接能调用。可以百度查找,有很多。

如:

dim a
a=now()/time()/date()
msgbox a

子程序

子程序跟函数差不多,定义时将function换成sub。
如:

sub msg(name,age)
msgbox "hello,word"&name
end sub
call msg("xiaohua",14)

return msg("xioahua",14)

用VBS脚本运行可执行文件

  • 打开cmd:
set ws=wscript.createobject("wscript.shell")
ws.run"C:\Windows\System32\cmd.exe"

这里的ws.run可换成ws.exec,文件路径最好是绝对路径,就是从盘符到文件名都要写清楚。

当然也可以不用绝对路径,前提是你要打开的文件路径可以在脚本执行路径后面追加。

  • 打开记事本:
set ws=wscript.createobject("wscript.shell")
ws.run"notepad.exe"

总结

多敲代码,多练练。其实就入门而言,我发现很多编程语言都有许多相似之处。如python,php,JavaScript等,入门学的内容其实差不多。要注意分号,冒号,花括号等等符号的使用,熟练日常类和函数的使用。代码敲多了,就会有一种触类旁通的快感。


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!